{
  "id": "G09",
  "url": "https://cartforagents.com/guides/machine-readable-product-data",
  "title": "Machine-readable product data: keep JSON twins matching the visible page",
  "description": "Use a versioned product-evidence JSON example and parity checks for values, scope, sources and unknowns; no special-file ranking promise.",
  "answer": "If you publish a JSON version of a product's facts, generate it from the same source as the visible page and test that the two agree on every value, unit, condition, scope, source, unknown and date before each release. Version the file so a reader can tell which page it matches. We run the same parity checks on every page of this site.",
  "take": "A JSON twin that drifts from the page is worse than none, because it hands agents a second, wrong answer. Generate both from one source and test them together.",
  "summary": "A JSON copy of your product facts is only useful if it says exactly what the page says. Here is a versioned example, the parity checks that keep the two in step, and how we run the same checks on this site.",
  "claims": [
    {
      "text": "Google says site owners don't need to create new machine-readable files, AI text files or markup to appear in AI Overviews or AI Mode, that no special schema.org structured data is needed, and lists making sure structured data matches the visible text on the page among its best practices.",
      "source_title": "Google Search Central: AI features and your website",
      "source_url": "https://developers.google.com/search/docs/appearance/ai-features",
      "source_date": "2026-10-27",
      "method": "documented",
      "limitation": "Living documentation for Google Search AI features only."
    },
    {
      "text": "Shopify says every store serves /agents.md, /llms.txt and /llms-full.txt automatically, that Shopify Catalog is the authoritative product data feed to agentic channels, and that these discovery files are separate from Catalog and don't replace any of its capabilities.",
      "source_title": "Shopify Help Center: Shopify Catalog and product discovery for agentic storefronts, store information that AI agents can find",
      "source_url": "https://help.shopify.com/en/manual/online-sales-channels/agentic-storefronts/products",
      "source_date": "2026-10-27",
      "method": "documented",
      "limitation": "Living merchant documentation. It does not say how any assistant uses the discovery files."
    },
    {
      "text": "Shopify says ChatGPT and Microsoft Copilot find products through Shopify Catalog, while products reach Google AI Mode and Gemini through the Google & YouTube sales channel, and marks the Global Catalog description and its generated specification, feature and selling-point fields as Inferred, generated or enriched by Shopify.",
      "source_title": "Shopify Help Center: Shopify Catalog and product discovery for agentic storefronts; Shopify: Global Catalog MCP, Inferred response fields",
      "source_url": "https://help.shopify.com/en/manual/online-sales-channels/agentic-storefronts/products",
      "source_date": "2026-10-27",
      "method": "documented",
      "limitation": "Living documentation. The Inferred labels are listed on https://shopify.dev/docs/agents/catalog/global-catalog. Google AI Mode and Gemini are described as rolling out to eligible stores."
    },
    {
      "text": "OpenAI's merchant page answers \"Do I need a product feed if ChatGPT already crawls my site?\" with \"No, but feeds give you greater control over how your products appear\", and says Shopify and Etsy catalogs are already integrated.",
      "source_title": "OpenAI: Power product discovery in ChatGPT (merchant page), FAQ",
      "source_url": "https://chatgpt.com/merchants/",
      "source_date": "2026-10-27",
      "method": "documented",
      "limitation": "A merchant marketing page. It describes control and accuracy, not ranking."
    },
    {
      "text": "OpenAI's product feed reference says to omit unknown optional values rather than use placeholders such as \"null\", \"unknown\" or \"n/a\", that an empty value does not mean zero or false, and that neither top-level attributes nor the variant map reconcile conflicting values.",
      "source_title": "OpenAI Commerce: Products feed reference (Stable), value conventions and variants",
      "source_url": "https://developers.openai.com/commerce/specs/file-upload/products",
      "source_date": "2026-10-27",
      "method": "documented",
      "limitation": "Rules for OpenAI file-upload feeds, not for a JSON file on your own site."
    },
    {
      "text": "In our Shopify agent-catalog snapshot of October 26, 2026, one humidifier's description said runtime \"up to 32 hours\" while its generated spec list said \"Up to 36 hours\"; a backpack's description said \"Depth: 2.4lbs\" while its generated spec said \"Depth 2.4 in\"; and a snowsuit's description rated the hood's insulation to -30°C while its generated spec rated \"Insulation\" to -30°C with no mention of the hood.",
      "source_title": "Cart for Agents: Receipts cited by our guides (Shopify agent-catalog snapshot, Oct 26, 2026)",
      "source_url": "https://cartforagents.com/research/agent-shopping-research#receipts-cited-by-our-guides",
      "source_date": "2026-10-26",
      "method": "observed",
      "limitation": "Copies inside one catalog record, not a page and its twin. We cannot see what Shopify generated them from, and do not know which value is right."
    },
    {
      "text": "Our first analysis script counted every absent product rating as 0 reviews, which made 28 of 162 searches show a median of 0 reviews; across the 1,620 results there were 440 absent product ratings and no explicit zeros.",
      "source_title": "Cart for Agents: Missing review data, distinguish absent fields from zero reviews",
      "source_url": "https://cartforagents.com/research/missing-product-review-data",
      "source_date": "2026-10-26",
      "method": "observed",
      "limitation": "An error in our own retired script. It shows how unknowns become zeros in a copy, not how any assistant treats them."
    },
    {
      "text": "On this site, each article's data twin is built from the same frontmatter as its page. An automated test checks for every article that the twin's id, title, description, answer, claims, sources, limitations, dates and kind equal the page's source fields, and that the Article JSON-LD headline, description and dates equal the twin's. A browser script checks the rendered title, meta description, H1, answer, deck, checked date and limitations against the twin, and that the number of claim blocks on the page equals the number of claims.",
      "source_title": "Cart for Agents: Machine-readable product twins, how we checked",
      "source_url": "https://cartforagents.com/guides/machine-readable-product-data#how-we-checked",
      "source_date": "2026-10-27",
      "method": "observed",
      "limitation": "Describes our own build and tests as of October 27, 2026. The twin does not carry the article body, so body tables are checked by editorial review, not by these tests."
    }
  ],
  "sources": [
    {
      "title": "Google Search Central: AI features and your website",
      "url": "https://developers.google.com/search/docs/appearance/ai-features",
      "accessed": "2026-10-27"
    },
    {
      "title": "Shopify Help Center: Shopify Catalog and product discovery for agentic storefronts",
      "url": "https://help.shopify.com/en/manual/online-sales-channels/agentic-storefronts/products",
      "accessed": "2026-10-27"
    },
    {
      "title": "Shopify: Global Catalog MCP",
      "url": "https://shopify.dev/docs/agents/catalog/global-catalog",
      "accessed": "2026-10-27"
    },
    {
      "title": "OpenAI: Power product discovery in ChatGPT",
      "url": "https://chatgpt.com/merchants/",
      "accessed": "2026-10-27"
    },
    {
      "title": "OpenAI Commerce: Products feed reference",
      "url": "https://developers.openai.com/commerce/specs/file-upload/products",
      "accessed": "2026-10-27"
    },
    {
      "title": "Cart for Agents: Receipts cited by our guides",
      "url": "https://cartforagents.com/research/agent-shopping-research#receipts-cited-by-our-guides",
      "accessed": "2026-10-27"
    },
    {
      "title": "Cart for Agents: Missing review data",
      "url": "https://cartforagents.com/research/missing-product-review-data",
      "accessed": "2026-10-27"
    }
  ],
  "limitations": [
    "Platform documentation was checked on 2026-10-27. Platform routes and their documentation change; re-check before acting.",
    "The JSON format and the parity checks are our proposal for your own files. They are not a standard, no platform we checked reads this format, and we have not measured any effect on citations, picks or rank.",
    "The product in the JSON example is hypothetical. Its values are placeholders, not a tested product.",
    "The failure examples come from copies inside Shopify catalog records in one unpersonalized snapshot of October 26, 2026, not from a merchant's page and twin.",
    "Passing parity checks shows that two copies agree. It does not show that either copy is true.",
    "Store and brand names are withheld."
  ],
  "related": [
    "https://cartforagents.com/guides/agent-commerce-optimization",
    "https://cartforagents.com/guides/agent-friendly-ecommerce-api",
    "https://cartforagents.com/guides/product-claim-provenance",
    "https://cartforagents.com/guides/product-data-freshness-for-ai",
    "https://cartforagents.com/guides/product-evidence-graph",
    "https://cartforagents.com/guides/agent-ready-product-data"
  ],
  "published": "2026-10-27",
  "updated": "2026-10-27",
  "checked": "2026-10-27",
  "kind": "guide"
}