By Steve Merrill, Founder of WRKNG Digital — September 13, 2026
What Product Schema Do AI Shopping Assistants Actually Read?
AI shopping assistants read Product and Offer JSON-LD. That's the format ChatGPT Shopping, Perplexity, and Google AI Overviews trust when they pull price, availability, brand, and product identifiers off a page. Get those fields right and you become quotable. Get them wrong and you're invisible.
Most Shopify stores already have some schema. Their theme dropped it in. The problem is it's usually half-built, and the half that's missing is the half assistants need.
I've seen this exact pattern in dozens of store audits. The markup exists. It just doesn't say anything useful.
Which Schema Fields Actually Matter for AI Product Discovery?
Six fields carry most of the weight: name, image, price, priceCurrency, availability, and a product identifier like GTIN. Assistants use these to confirm the product is real, in stock, and worth recommending. Skip them and the assistant has nothing to cite.
This clean Product block hits the fields that count.
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Merino Wool Runner - Charcoal",
"image": "https://yourstore.com/cdn/shop/runner-charcoal.jpg",
"description": "Lightweight merino wool sneaker with a natural rubber sole.",
"brand": { "@type": "Brand", "name": "Trailhead" },
"sku": "TH-RUN-CHAR-10",
"gtin": "0819992021456",
"offers": {
"@type": "Offer",
"price": "118.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"priceValidUntil": "2026-12-31",
"url": "https://yourstore.com/products/merino-wool-runner-charcoal"
}
}
Notice the Offer node. Price as a plain number. Currency spelled out. Availability as a full schema.org URL, not the word "yes." That's what parses.
The gtin matters more than people think. It's the barcode number on the box. Assistants use it to match your product across the whole web and confirm it exists. A product with a GTIN gets trusted faster than one without. Shopify's own docs cover how structured data feeds AI surfaces in their structured data documentation.
Why Does AI Product Schema Break So Often on Shopify?
It breaks because the schema and the page disagree. The markup says $118. The page shows $99 after a sale. Google's rules are blunt about this: your structured data has to match what the shopper sees, or it gets ignored. That's spelled out in Google's product structured data guidelines.
On Shopify the usual culprits are sale prices, variant switching, and apps. A discount app changes the visible price but not the JSON-LD. A review app injects its own broken schema on top of the theme's. Now you've got two Product blocks fighting each other.
I made a version of this mistake on a client store last year. Two apps, two Product schemas, both wrong. The Rich Results Test lit up red. Took an afternoon to untangle. Not fun.
How Do You Add Product Schema to a Shopify Store, Step by Step?
You add it to the product template in your theme, then validate. Here's the order I run every time.
- Open your product template. In the theme editor, find
product.liquidor the product section. This is where the page-level schema lives. - Drop in the Product block. Use the structure above. Wire the values to your Liquid variables so price and availability pull live:
{{ product.price | money_without_currency }}for price, and logic for in-stock versus out-of-stock. - Build the Offer node. Price, priceCurrency, availability, priceValidUntil, and the product URL. This is the part assistants read to decide if they can recommend you today.
- Handle variants. If a product has sizes or colors at different prices, use an
AggregateOfferwith lowPrice and highPrice, or output one Offer per variant. Don't leave a single hardcoded price on a product with a $40 spread. - Add reviews only if they're real.
aggregateRatingandreviewhelp, but only when actual reviews show on the page. Faking this gets you penalized. - Kill the duplicates. Search your rendered HTML for every Product JSON-LD block. If a review app or SEO app added its own, disable one. One clean block beats three broken ones.
- Validate before you ship. Run the page through the tools in the next section. Fix every error. Not warnings-optional. Errors zero.
How Do You Validate Schema So AI Assistants Can Read It?
Use two tools. Google's Rich Results Test tells you if the page qualifies for product rich results and shows the exact fields it detected. The Schema.org Validator catches structural errors like wrong types or malformed nesting. Run both.
Paste your live product URL into each. Read what they detected. If the price field is empty or availability is missing, your Liquid isn't wiring correctly. Fix it and re-run.
Then do the real test. Ask ChatGPT Shopping and Perplexity about your product by name. See if the price, brand, and stock status come back right. That's the check that actually matters. A validator says the code is legal. The assistant tells you if it's useful.
What Are the Most Common Product Schema Mistakes?
Price mismatch is the biggest one. The schema says one number, the page shows another, and the whole block gets thrown out. Second is missing availability, so the assistant can't tell if you're in stock and skips you. Third is duplicate blocks from stacked apps.
A few more that show up in almost every audit:
- Currency as a symbol. Use "USD," not "$". priceCurrency wants the ISO code.
- Availability in plain English. "In stock" won't parse. Use the full URL,
https://schema.org/InStock. - No image, or a broken image URL. Assistants and rich results both want a working product image link.
- Stale priceValidUntil. A date in the past tells Google the offer expired. Roll it forward.
- Review data that doesn't exist on the page. Self-serving or invisible reviews break the whole product block.
None of these are hard to fix. They're just easy to miss, and one broken field can sink the rest.
Does This Actually Get You Cited by AI?
Clean schema won't win on its own. It's the entry ticket. Assistants need to trust your data before they'll put your product in an answer, and structured data is how they read it fast. No schema, no read, no citation.
The stores getting pulled into ChatGPT Shopping and Perplexity results share one thing. Their product data is machine-readable, matches the page, and doesn't fight itself. Boring, correct, complete. That's the whole game right now, and most stores haven't done the boring part yet.
Frequently Asked Questions
Does AI shopping schema need to match what's on the page?
Yes. The price, availability, and product name in your JSON-LD must match what a shopper sees. Google requires it, and mismatches get your markup ignored or flagged as spam.
Do I need GTIN and SKU for AI product discovery?
GTIN helps assistants match your product across sources and confirm it's real. SKU tracks variants. Add both when you have them. A product with a GTIN gets trusted faster.
Can I fake reviews in aggregateRating schema?
No. Only add aggregateRating and review markup when real reviews are visible on the page. Fake review data violates Google's policy and can get your rich results pulled.
How do I check if AI assistants read my schema?
Run the page through Google's Rich Results Test and the Schema.org validator first. Then ask ChatGPT Shopping and Perplexity about the product and see if the price, brand, and availability come back correct.
Should I use one Offer or AggregateOffer for variants?
Use AggregateOffer with lowPrice and highPrice when variants span a price range. Use a single Offer when the price is the same across variants. Never hardcode one price on a product with a wide spread.
Get Your Product Schema Read by AI
If your Shopify store isn't showing up in AI shopping answers, broken or missing product schema is usually the reason. We audit it, fix it, and get your products into the answers customers actually see. See how WRKNG Digital gets Shopify stores cited by AI shopping assistants.

