Skip to content
Leadee
Tutorial · Ecommerce · Structured data

Product Schema for AI Shopping Answers

Product schema is a block of code that labels a product page for machines: name, brand, barcode, price, currency and stock. For AI shopping answers it is clean labelling, not a switch. Google says its AI features need no special markup, and OpenAI does not say ChatGPT reads it. So add Product and Offer markup that matches the visible page, keep it in step with your product feed, and check it after every change.

By the Netbase JSC team · Updated

Key facts

Google Search Central, 2025 (checked 2026-11-13)
Google says there is "no special schema.org structured data that you need to add" to appear in AI Overviews or AI Mode, and lists "making sure your structured data matches the visible text on the page" as a good practice (doc last updated 2025-12-10). (Google Search Central, 2025 (checked 2026-11-13))
Google Search Central, 2026 (checked 2026-11-13)
For Google merchant listings, a Product needs name, image and offers, and the Offer needs price and priceCurrency; the price must be greater than zero (doc last updated 2026-09-08). (Google Search Central, 2026 (checked 2026-11-13))
OpenAI, 2026 (checked 2026-11-13)
The ChatGPT product feed has nine required fields, including brand and seller_name; a GTIN must be exactly 8, 12, 13 or 14 digits, and a missing GTIN or MPN must not be invented. (OpenAI, 2026 (checked 2026-11-13))
OpenAI, 2026 (checked 2026-11-13)
OpenAI's crawler page, its web search guide and its product feed spec do not mention schema.org, JSON-LD or structured data (absence checked on all three pages). (OpenAI, 2026 (checked 2026-11-13))
Leadee test, Nov 2026
Tested by the Netbase JSC team on 2026-11-09: the CMSmart product designer pages (CMSmart is part of Netbase JSC) carry SoftwareApplication markup with a USD 290 offer; one of them also declares rating markup. (Leadee test, Nov 2026)

Does your product page markup say what the page says?

Paste the address of one product page. The ChatGPT Schema Validator reads the JSON-LD on it and explains in plain English which product, offer and brand facts a machine can see. Free, no account.

Leadee is not affiliated with, endorsed by, or sponsored by OpenAI. “ChatGPT”, “GPTBot” and the other names on this page are OpenAI's own, used only to describe what this tool measures.

What is product schema, and what does it do for AI shopping answers?

Product schema is structured data: a block of JSON-LD code in the page that says "this is the product name, this is the brand, this is the price, this is in stock". The words come from schema.org, a shared vocabulary that search engines read. An AI shopping answer is the short list of products an assistant such as ChatGPT or Google AI Mode gives when a shopper asks "best running shoes for flat feet under $120" (Example). Product markup does not put you in that list by itself. It makes your facts unambiguous for any machine that reads the page.

This guide is about Product and Offer markup on store product pages. Company-level markup (Organization, Service, BreadcrumbList) for B2B and manufacturing sites is in our schema markup guide for B2B. The full store picture, from feeds to reviews, is in our main guide to AI visibility for ecommerce stores.

Do ChatGPT and Google AI read product schema?

Google is clear about its own AI features. Its AI features guide says there are no extra requirements for AI Overviews or AI Mode and "no special schema.org structured data that you need to add". The same page asks you to make sure your structured data matches the visible text. For classic shopping results, Google's product documentation says some experiences combine on-page structured data with Merchant Center feeds when both exist.

OpenAI says nothing either way. Its crawler documentation, its web search guide and its product feed spec do not mention schema.org or JSON-LD; we checked on 2026-11-13. ChatGPT gets structured product data through the feed instead. So write markup for accuracy, not as a ChatGPT lever. The facts in the page text and in the feed matter at least as much.

Step 1: Use one Product with one Offer per product page

Give each product page one Product block. Use Product for physical goods; software sold as a product uses SoftwareApplication, as our guide to getting products recommended by ChatGPT explains. Inside the Product, add an Offer: the price, the currency and the stock status for buying it from you. Most store platforms and themes print a Product block already. Check that there is only one, because a theme and a plugin can each print their own.

Google's merchant listing documentation sets the minimum for pages where people can buy. The Product needs name, image and offers. The Offer needs price and priceCurrency, and the price must be greater than zero. Write the price as a plain number and the currency as a three-letter code such as USD.

Step 2: Add brand, GTIN and SKU

Identifiers let a machine match your product to the same item on a marketplace or a review site. The brand is the maker's name; Google's merchant listing documentation asks for at most one brand name. The GTIN is the barcode number (UPC, EAN or ISBN), and Google recommends the most specific GTIN that applies. The SKU is your own stock code. The MPN is the maker's part number, and it only makes sense next to the brand.

Never make one up. OpenAI's product feed spec says a GTIN is exactly 8, 12, 13 or 14 digits with a valid check digit, and asks merchants not to invent an MPN to replace a missing GTIN. Leave the field out instead. The same rule is safe for page markup: a wrong barcode ties your page to the wrong product.

Step 3: Keep the price and stock in the Offer true

An AI answer that quotes a price quotes whatever it last read. If the markup says one price and the page shows a sale price, a shopper may see the wrong one. Print the markup from the same data that prints the visible price, on the server, so both change together. Do not hard-code a price into a template or a tag manager script.

Stock works the same way. Use the schema.org availability values, such as InStock and OutOfStock, and update them when the page changes. A sold-out product that still says InStock is one of the fastest ways to lose a shopper's trust in an answer. If a product is gone for good, say so on the page rather than leaving an old offer behind.

Step 4: Add shipping and return details

Shoppers ask "free shipping" and "easy returns" questions, so make those facts plain. Write shipping times, costs and return terms as text on the product page or on a linked policy page first. Then describe them in markup: Google's merchant listing documentation lists shippingDetails and hasMerchantReturnPolicy as recommended Offer properties.

Google also recommends one store-wide shipping policy in your Organization markup instead of repeating it on every product. When the same policy is set in several places, Google uses its own order: Merchant Center feeds first, product markup after them and Organization markup last. So if you run a Merchant Center feed, fix the policy there before you touch the markup.

Step 5: Mark up sizes and colours as one product group

A shirt in four sizes and three colours is one product to a shopper and twelve items to a warehouse. Google's product variant documentation handles this with ProductGroup: one group for the shared name and description, the properties that differ (variesBy, such as size or colour) and one Product per variant through hasVariant. Each variant carries its own SKU, GTIN and Offer.

Keep the same logic in your feed. The OpenAI feed spec says a GTIN identifies one trade item, not the variant group, and that the group ID must differ from each item ID. A store that puts one barcode on a whole product group, or prices every size the same when they differ, sends mixed facts to every machine that reads it.

Step 6: Add ratings only from real reviews shown on the page

Rating markup (the aggregateRating and review properties) is recommended in Google's merchant listing documentation, and shopping questions often ask for "best rated". Add it only when real buyer reviews are visible on that page, and let the numbers come from those reviews. Never mark up a rating the page does not show, and never copy a rating from another site.

Leave out reviews of your store or your service. OpenAI's feed spec says its review count must exclude seller and store reviews, and that a rating should be left out when there are no reviews. Following the same rule in your markup keeps the page, the markup and the feed in agreement.

Step 7: Make the markup, the page and the feed say the same thing

Most stores now publish the same product facts in three places: the visible page, the markup and one or more product feeds. Shopping systems compare them. Treat the visible page as the source of truth and generate the other two from the same product data. The table below shows where each fact lives; the field names come from schema.org and from the ChatGPT product feed spec.

ChatGPT product feeds are open to approved partners only, so many stores do not send one yet. Map the fields anyway. The day you apply, most of the work is done, and the same mapping keeps your Google Merchant Center feed honest.

Where each product fact lives (field names from schema.org and the ChatGPT product feed spec, read 2026-11-13)
Fact on the pageProduct markup propertyChatGPT feed field
Product namenametitle
Short product descriptiondescriptiondescription
Main photoimageimage_url
Maker or brandbrand (name)brand
Barcode numbergtingtin
Price and currencyoffers: price + priceCurrencyprice (amount and currency in one field)
In stock or notoffers: availabilityavailability
Who sells itoffers: sellerseller_name
Page addressurlurl

How do you check that your product schema works?

Open a product page, view its source and search for "application/ld+json". You should find one Product block with the brand, the GTIN where you have one, the current price, the currency and the stock status. Paste the page into the free ChatGPT Schema Validator to read the markup in plain English. If you need to write a block from scratch, the ChatGPT Schema Generator builds one you can edit.

Then compare the price and stock in three places for a few products: the page, the markup and your feed. They must be the same. Repeat the check after every theme update, new plugin or price import, because those are the moments markup breaks without anyone noticing.

What did we find in the product markup of a Netbase JSC store?

CMSmart (cmsmart.net, part of Netbase JSC) sells WooCommerce plugins, including a product designer for print shops. On 2026-11-09 we read two of its product pages. Both carry SoftwareApplication markup with an offer of USD 290. One also declares rating markup; we did not audit the reviews behind it. On 2026-10-25, OpenAI's gpt-5 with web search had named CMSmart in 2 of 3 runs for "best WooCommerce product designer plugin for print on demand".

This does not show that the markup caused the mentions. CMSmart also has years of content and links from other sites, and one tracker round is small. It shows only that a product named in AI answers had clean product and offer markup on its pages. The full test is in our guide to getting products recommended by ChatGPT, and our methodology page explains how runs are counted.

Which product schema mistakes confuse AI shopping answers?

  • Two Product blocks on one page, one from the theme and one from a plugin, with different prices.
  • A price in the markup that was hard-coded and never updated after a sale.
  • InStock in the markup for a product the page shows as sold out.
  • No brand, or a brand field that holds the store name instead of the maker.
  • Invented or copied barcode numbers in the GTIN field.
  • Rating markup with no reviews on the page, or store reviews counted as product reviews.
  • Markup added only by JavaScript after the page loads, so crawlers that read raw HTML never see it.

When should a store get help with product markup?

A small catalogue on a standard theme can follow these steps in-house. Help pays off when the catalogue is large, when several plugins print markup, or when you want numbers before and after the fix. Leadee is an AI-native platform that stands on the shoulders of giants: it asks the engines themselves through the official APIs of OpenAI, Google and Perplexity, and reads your pages the way their crawlers do.

How the work runs for a store, step by step, is on our AI visibility for ecommerce stores page. To pick a tool that tracks shopping questions over time, see our overview of AI visibility tools, which covers Leadee and other market players side by side. Running WooCommerce? Start with GEO for WooCommerce stores.

What have we not verified?

  • Whether ChatGPT search reads product markup on a page: OpenAI does not document it.
  • Whether complete markup raises how often a store is named in AI answers: we have not run a before-and-after test.
  • How Google AI Mode weighs markup against Merchant Center data: Google does not publish it.
  • Whether the CMSmart mentions came from its markup, its content or its links: one round cannot separate them.

Check this on your site

Compare the AI visibility tools that track shopping questions for a store, or see how Leadee runs the full ecommerce setup as a service.

Tools & technical readiness

ChatGPT Schema Markup Validator

Answers: Check whether your JSON-LD, microdata and RDFa is valid and complete enough for an AI engine to parse — the same check as Leadee's general validator.

No sign-upCheck schema markup — ChatGPT Schema Markup Validator

Questions

Does ChatGPT use product schema markup?

OpenAI has not said. Its crawler, web search and product feed documentation do not mention schema.org or JSON-LD. ChatGPT gets structured product data from approved merchant feeds. Markup still helps any machine read your page without guessing, so keep it accurate.

Do I need special schema to appear in Google AI Overviews or AI Mode?

No. Google says there is no special schema.org structured data to add for its AI features. Normal product markup that matches the visible page, plus an up-to-date Merchant Center account, is what Google asks for.

What is the difference between Product and Offer markup?

Product describes the item: name, image, description, brand and identifiers such as the GTIN. Offer describes buying it from you: price, currency, stock status, shipping and returns. A product page for sale needs both, with the Offer inside the Product.

Should I use Product or SoftwareApplication for a plugin or an app?

Use SoftwareApplication for software, with an Offer for the price, and Product for physical goods. Both can carry brand and rating markup. Pick the type that matches what the page sells.

Can I add star ratings to my markup if I have reviews on another site?

No. Mark up only the reviews shown on that page. Ratings from marketplaces or review sites help in their own place, because AI answers often cite those sites directly, but they do not belong in your page markup.

Will product schema guarantee my products show up in AI answers?

No. Nobody controls which products an AI engine names, and answers change from run to run. Accurate markup removes one source of confusion. Clear page text, real reviews, an accurate feed and honest measurement over repeated runs do the rest.

Can GEO guarantee results?

No. AI answer engines change their output frequently, and no vendor — including Leadee — can guarantee a ranking or a mention. Leadee publishes confidence intervals on every metric so you can see how much a result can vary run to run.

How does Leadee measure AI visibility?

Leadee runs your prompt set against each AI engine on a weekly to daily schedule, depending on plan, through official vendor APIs (OpenAI, Gemini, Perplexity, Anthropic, DataForSEO) — never by scraping consumer chat interfaces — and reports mention rate, citation rate, average position, share of voice and sentiment with a 95% confidence interval.

Who do I talk to?

Email support@leadee.ai or use Talk to an expert at https://leadee.ai/contact-sales — the Netbase JSC team behind Leadee replies by email or WhatsApp — or WhatsApp the CEO directly at https://wa.me/84937869689.

See where your own site stands

Run a free scan to check this (and everything else Leadee tracks) on your own site.

Run a free scan