Structured data
Product and Offer Schema for AI shopping: an implementation checklist
Product schema describes what an item is; Offer schema describes a seller-specific commercial proposition. For AI shopping, connect them only when the page visibly confirms the same variant, currency, price, availability, condition and seller. Generate markup from the commerce system at request or build time, not from manually maintained copy. Product and Offer schema must match visible page facts and is not a guaranteed AI ranking factor, shopping placement or recommendation signal.
Identify the exact product and variant
Use a stable Product @id and include the public name, brand, image and description without stuffing search terms. Add GTIN, MPN, SKU or another identifier only when it is assigned to that exact item. A size, color, capacity or bundle may have a different identifier and offer, so do not attach every variant's price to one ambiguous node. On variant-selecting pages, ensure the structured data and visible state agree for the canonical or selected configuration. Clearly distinguish a product family from a purchasable unit.
Make every Offer commercially complete
- Set price and priceCurrency from the same current source shown to the shopper.
- Use availability values that reflect the offered variant and update when stock changes.
- Identify the seller when a marketplace, partner or third party fulfills the purchase.
- State itemCondition for used, refurbished or open-box inventory.
- Use url to point to the page where the stated offer can actually be obtained.
- Add price-valid dates, shipping or return details only when maintained accurately and supported visibly.
Create JSON-LD through the schema generator, then test representative products with the schema validator. Validation cannot tell whether a price is commercially true, so add data-level checks against the catalog, inventory and checkout. Do not publish a low "from" price when the corresponding configuration is unavailable, hide mandatory fees, or aggregate offers from sellers the page does not display. If a product cannot be purchased, remove or revise the Offer rather than leaving stale InStock markup.
Build a deployment test around shopping questions
- Sample simple products, variants, sale items, subscriptions, bundles and out-of-stock pages.
- Compare identifiers, seller, currency, price and availability in JSON-LD with visible content.
- Complete a checkout-path check to reveal mandatory costs or regional restrictions.
- Validate rendered markup after consent, personalization and client-side variant changes.
- Ask assistants product-fit, price and availability questions with explicit region and variant context.
- Save cited sources and timestamps, then repair controlled contradictions before expanding markup.
Use an AI visibility scan to establish how assistants currently describe priority products, then monitor stable shopping prompts in ModelSaid. Track identifier accuracy, offer accuracy, omitted restrictions and source freshness separately from whether the brand is mentioned. A correct product mention with the wrong currency can still harm a buyer. Annotate catalog releases and compare repeated observations, but do not claim the markup caused a recommendation: feed data, merchant programs, publisher evidence and model behavior may all contribute.
Regional and subscription offers need explicit modeling decisions. A price available only to logged-in members, first-time buyers or one country should not look universal in the markup. Show the eligibility near the price and make the Offer URL resolve to the same context. For subscriptions, state the billing interval, trial transition and mandatory setup cost in visible content; do not flatten a recurring commitment into a one-time-looking price. When tax treatment varies, explain whether displayed amounts include tax for the user's region. These qualifications may reduce apparent simplicity, but they prevent machines and shoppers from comparing materially different propositions as though they were equivalent. Test currency switching and location detection in a clean browser so cached personalization does not conceal a mismatch between the default HTML, selected offer and checkout.
Treat commerce markup as a live data product
Assign owners for catalog identity, pricing, inventory and schema templates. Monitor missing identifiers, invalid currencies, improbable price movements, stale availability and offers whose destination no longer succeeds. Retest after promotions, regional launches and platform migrations. Keep policy text, merchant feeds, visible pages and JSON-LD aligned from a governed source. Correct Product and Offer schema gives machines a cleaner description of an existing commercial truth; it does not create demand, prove quality or guarantee that ChatGPT, Claude, Gemini, Perplexity or a shopping engine will select the item.
Is your business visible in AI search?
Run a free check and see what ChatGPT, Claude, Gemini and Perplexity actually say about you right now.
Check your business for free