UNPKG

gatsby-plugin-next-seo

Version:
237 lines 7.97 kB
import { FC } from 'react'; import { Product } from 'schema-dts'; import { DeferSeoProps } from '../types'; import { AggregateRating, Overrides } from '../utils/shared-types'; interface ReviewRating { bestRating?: string; ratingValue: string; worstRating?: string; } interface Review { author: string; datePublished?: string; reviewBody?: string; name?: string; reviewRating: ReviewRating; } declare type OfferAvailability = 'Discontinued' | 'InStock' | 'InStoreOnly' | 'LimitedAvailability' | 'OnlineOnly' | 'OutOfStock' | 'PreOrder' | 'PreSale' | 'SoldOut'; declare type ItemCondition = 'DamagedCondition' | 'NewCondition' | 'RefurbishedCondition' | 'UsedCondition'; interface Offers { /** * The price of the product. */ price: string; /** * The currency used to describe the product price, in three-letter ISO 4217 * format. */ priceCurrency: string; /** * The date (in ISO 8601 date format) after which the price will no longer be * available. * * @remarks * * Your product snippet may not display if the priceValidUtil property * indicates a past date. */ priceValidUntil?: string; itemCondition?: ItemCondition; /** * Value is taken from a constrained list of options, expressed in markup * using URL links. * * @remarks * * Google also understands their short names (for example InStock or * OutOfStock, without the full URL scope.) This property is required for the * Related Items feature in Google Images and is recommended for Google * Search. */ availability?: OfferAvailability; /** * A URL to the product web page (that includes the Offer). */ url?: string; /** * The person or organization selling the good. */ seller?: { type?: 'Person' | 'Organization'; name: string; }; } /** * Component props for the Product JSON LD. * * @public */ export interface ProductJsonLdProps extends DeferSeoProps, Overrides<Product> { /** * @deprecated * * Use `name` instead. */ productName?: string; /** * The name of the product. */ name?: string; /** * The URL(s) of a product photo. Pictures clearly showing the product (for * example, against a white background) are preferred. * * @remarks * * This property is required for Google Images and recommended for Google * Search. * * Additional image guidelines: * * - Every page must contain at least one image (whether or not you include * markup). Google will pick the best image to display in Search results * based on the aspect ratio and resolution. * - Image URLs must be crawlable and indexable. * - Images must represent the marked up content. * - Images must be in .jpg, .png, or. gif format. * - For best results, provide multiple high-resolution images (minimum of 50K * pixels when multiplying width and height) with the following aspect * ratios: 16x9, 4x3, and 1x1. * * For example: * * ```js * const props = { * "image": ["https://example.com/photos/1x1/photo.jpg", * "https://example.com/photos/4x3/photo.jpg", * "https://example.com/photos/16x9/photo.jpg" * ] * } * ``` */ images?: string | string[]; /** * Product description. */ description?: string; /** * The brand of the product. */ brand?: string; /** * A nested Review of the product. * * @remarks * * Follow the * {@link https://developers.google.com/search/docs/data-types/review-snippet#guidelines | Review snippet guidelines} * and the list of required and recommended * {@link https://developers.google.com/search/docs/data-types/review-snippet#review-properties | review properties}. */ reviews?: Review[]; /** * A nested aggregateRating of the product. */ aggregateRating?: AggregateRating; /** * An offer to sell the product. Includes a nested Offer or AggregateOffer. */ offers?: Offers; offersType?: 'Offer' | 'AggregateOffer'; /** * A Global Trade Item Number * ({@link https://www.gs1.org/standards/id-keys/gtin | GTIN}). * * @remarks * * GTINs identify trade items, including products and services, using numeric * identification codes. The {@link http://schema.org/gtin | gtin} property * generalizes the earlier {@link http://schema.org/gtin8 | gtin8}, * {@link http://schema.org/gtin12 | gtin12}, * {@link http://schema.org/gtin13 | gtin13}, and * {@link http://schema.org/gtin14 | gtin14} properties. The GS1 * {@link https://www.gs1.org/standards/Digital-Link/ | digital link specifications} * express GTINs as URLs. A correct {@link http://schema.org/gtin | gtin} value * should be a valid GTIN, which means that it should be an all-numeric string * of either 8, 12, 13 or 14 digits, or a "GS1 Digital Link" URL based on such * a string. The numeric component should also have a * {@link https://www.gs1.org/services/check-digit-calculator | valid GS1 check digit} * and meet the other rules for valid GTINs. See also * {@link http://www.gs1.org/barcodes/technical/idkeys/gtin | GS1's GTIN Summary} * and * {@link https://en.wikipedia.org/wiki/Global_Trade_Item_Number | Wikipedia} * for more details. Left-padding of the gtin values is not required or * encouraged. */ gtin?: string | string[]; /** * The GTIN-12 code of the product, or the product to which the offer refers. * * @remarks * * The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. * Company Prefix, Item Reference, and Check Digit used to identify trade * items. See * {@link http://www.gs1.org/barcodes/technical/idkeys/gtin | GS1 GTIN Summary} * for more details. */ gtin12?: string | string[]; /** * The GTIN-13 code of the product, or the product to which the offer refers. * * @remarks * * This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit * UPC codes can be converted into a GTIN-13 code by simply adding a * preceeding zero. See * {@link http://www.gs1.org/barcodes/technical/idkeys/gtin | GS1 GTIN Summary} * for more details. */ gtin13?: string | string[]; /** * The GTIN-14 code of the product, or the product to which the offer refers. * * @remarks * * See * {@link http://www.gs1.org/barcodes/technical/idkeys/gtin | GS1 GTIN Summary} * for more details. */ gtin14?: string | string[]; /** * The {@link http://apps.gs1.org/GDD/glossary/Pages/GTIN-8.aspx | GTIN-8} code * of the product, or the product to which the offer refers. * * @remarks * * This code is also known as EAN/UCC-8 or 8-digit EAN. See * {@link http://www.gs1.org/barcodes/technical/idkeys/gtin | GS1 GTIN Summary} * for more details. * */ gtin8?: string | string[]; /** * The Manufacturer Part Number (MPN) of the product, or the product to which * the offer refers. */ mpn?: string | string[]; /** * The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a * product or service, or the product to which the offer refers. */ sku?: string | string[]; } /** * Add markup to your product pages so Google can provide detailed product * information in rich Search results — including Google Images. * * @remarks * * Users can see price, availability, and review ratings right on Search * results. * * @public */ export declare const ProductJsonLd: FC<ProductJsonLdProps>; export {}; //# sourceMappingURL=product.d.ts.map