Resources · AI Search for Ecommerce

How to Use Product JSON-LD So AI Can Understand Your Products, Prices, and Offers

To use Product JSON-LD so AI can understand your products, mark up each product page with its name, brand, description, images and identifiers such as SKU and GTIN. Include an offers block stating price, currency, availability and URL. Add shipping and return details where you sell directly, and variant markup where products come in sizes or colours. Keep every value identical to the visible page and to your shopping feed. Structured data does not guarantee AI recommendations, but it removes ambiguity about the facts shoppers ask most: what it is, what it costs, whether it is in stock and how it is delivered.

What does Product JSON-LD do for AI and search?

Product markup expresses product facts in a standard, machine-readable format. Search engines use it for rich results and shopping features, and Google uses it, with your Merchant Center feed, to understand and verify prices and availability, which feeds its AI shopping answers. According to Google, providing both structured data on your pages and a Merchant Center feed maximises eligibility for its shopping experiences and helps Google correctly understand and verify your data.

The limits are worth stating plainly: markup reinforces clear page content; it does not replace it, and Google says no special markup is needed for its AI features. AI assistants that fetch your page during a chat are different: in tests, ChatGPT, Claude, Perplexity, Gemini and AI Mode read only the visible text and ignored JSON-LD, so every price, stock status and delivery fact must also be in the visible page.

Which Product properties matter most?

Property What to include Why it matters
name The product name customers use Matching questions to the product
brand The brand, as a Brand or your Organization Separates your product from look-alikes
description Plain description with key specs Context for what it is and who it suits
image High-quality product images Visual results and identification
sku, gtin, mpn Your SKU and global identifiers Links the product to the same item elsewhere
offers.price, offers.priceCurrency Current price and currency Price questions
offers.availability In stock, out of stock, pre-order Availability questions
offers.url The product page URL Where to buy
aggregateRating, review Genuine ratings and reviews shown on the page Quality signals

What is the difference between product snippets and merchant listings?

Google defines two sets of requirements:

  • Product snippets are for pages with product information where people cannot buy directly, such as review pages or manufacturer pages that link to retailers.
  • Merchant listings are for pages where customers can buy from you. They support more detail, such as apparel sizing, shipping details and return policies, and make products eligible for richer shopping experiences.

If you sell directly, follow the merchant listing requirements; Google notes that doing so generally also makes pages eligible for product snippets. Both support product variants.

Is WooCommerce's built-in schema enough for AI search?

It is a reasonable start, not the full picture. WooCommerce outputs basic Product structured data, typically covering the name, description, images, SKU, price, availability and ratings where reviews exist. What is often missing:

  • brand and global identifiers such as GTIN, unless you fill them in: WooCommerce 9.2 and later has a built-in GTIN, UPC, EAN or ISBN field on the Inventory tab, 9.6 and later has core Brands, and both then appear in the markup automatically (older versions need a plugin);
  • shipping details and return policy;
  • variant markup for products with options;
  • consistency checks against your Merchant Center feed.

You can fill the gaps with a reputable SEO or product feed plugin, or with custom JSON-LD in your theme. Whichever you choose, check the output in the page source; plugins sometimes produce duplicate or conflicting Product blocks.

How does Offer markup help AI understand price and availability?

For Google AI Overviews and AI Mode, it helps: Google reads Offer markup when it indexes the page and, with a Merchant Center feed, uses it to verify price and availability. For ChatGPT it matters less: when ChatGPT reads a page it uses the visible text, and merchants can send prices and stock directly through OpenAI's product feed. Keep the same values in the page, the markup and every feed.

The offers block states price, currency and availability as exact values rather than text that has to be interpreted. That helps with the most common product questions, such as "How much is it?", "Is it in stock?" and "Where can I buy it?". To make it work:

  • update price and availability in the markup whenever they change on the page;
  • use priceValidUntil for time-limited prices;
  • mark sale prices clearly, and show the same price in the visible page;
  • keep the same values in your Merchant Center feed and on marketplaces.

Engines that see conflicting prices across your page, feed and third-party listings may state the wrong one. Consistency matters more than any single property.

What does OfferShippingDetails mean, and why does it matter?

OfferShippingDetails is a schema.org type that describes shipping for an offer: the destinations, the shipping cost, and delivery times split into handling time and transit time. It attaches to an offer through the shippingDetails property. It matters because shoppers often ask about total cost and delivery: "Is delivery free to Ireland?" or "Can I get it by Friday?". Without clear shipping information on the page and in markup, answers may omit delivery costs or guess.

Google also recommends describing store-wide shipping and return policies with markup nested under your Organization, such as a merchant return policy, so they apply across products without repeating them on every page.

How do you use SoftwareApplication JSON-LD for software products?

For software, SoftwareApplication (or WebApplication and MobileApplication) describes the product more precisely than Product markup:

  • applicationCategory, such as "BusinessApplication" or "FinanceApplication";
  • operatingSystem, such as "Web", "Windows", "iOS";
  • offers with price and currency, including a price of 0 for free plans;
  • aggregateRating from genuine reviews shown on the page;
  • publisher pointing to your Organization's @id.

Linking the product to the organisation, and stating the category, helps engines place the product in the right market; see how to add Organization schema so AI can identify your business.

What should ecommerce sites add beyond Product schema?

  • Organization markup with store-wide return and shipping policies.
  • Variant markup for products sold in sizes, colours or other options, so each variant's price and availability are clear.
  • Breadcrumb markup that reflects the category structure.
  • LocalBusiness markup for physical stores, with opening hours and addresses.
  • A Merchant Center feed that matches your page data.

Beyond markup, the visible content still does most of the work: detailed specifications, sizing, compatibility and FAQs on the page; see how to add FAQs and detailed specs to product pages.

What does a minimal Product JSON-LD example look like?

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Trailline 2-Person Tent",
  "brand": { "@type": "Brand", "name": "Trailline" },
  "sku": "TL-2P-GRN",
  "gtin13": "0000000000000",
  "description": "Two-person backpacking tent, 1.6 kg packed weight, three-season, 20-minute pitch.",
  "image": "https://www.example.com/images/tl-2p.jpg",
  "offers": {
    "@type": "Offer",
    "url": "https://www.example.com/tents/tl-2p",
    "price": "249.00",
    "priceCurrency": "GBP",
    "availability": "https://schema.org/InStock"
  }
}
</script>

The product and identifiers are placeholders. Use real values that match the page exactly.

How do you check your product markup?

  • Validate with Google's Rich Results Test and the Schema Markup Validator.
  • Check Search Console's merchant listing and product snippet reports for errors.
  • Compare prices and availability in the markup, the visible page and your feed for a sample of products.
  • Ask AI assistants about a few products' prices and availability, and trace any wrong answers to their source.

What do people ask about Product schema and AI?

Does Product schema make ChatGPT recommend my products?

Not by itself. It helps systems read your product facts accurately. Recommendations also depend on reviews, comparisons and presence on the sites assistants cite.

Should out-of-stock products keep their markup?

Yes, with availability set to out of stock, so answers do not claim the product is available.

Can I mark up prices that differ by country?

Yes, but give each currency its own URL: Google's merchant listing guidelines ask for a distinct URL per currency, and the markup on each URL should state the one price and currency shoppers see there.

Is FAQ markup useful on product pages?

The visible question-and-answer content is what matters most. Markup is optional support.

Published by The Kovmere Team · updated Sep 28, 2026 · More resources