{
  "id": "C02",
  "url": "https://cartforagents.com/guides/product-feed-optimization",
  "title": "Product feed optimization for AI shopping: map and validate every field",
  "description": "Trace source facts through transformations to feed output using field mappings, validation rules, variant checks and explicit unknowns.",
  "answer": "Keep a mapping sheet with one row per output field: the source system and field it comes from, every transformation applied, the validation rule it must pass, and what you send when the source is empty. Check each upload against the destination's current spec and against the live product page. Omit unknown optional values rather than filling them with placeholders or guesses.",
  "take": "Feeds fail quietly: a script written once can send the wrong field for years. A one-page mapping sheet is the cheapest insurance a store can buy against that.",
  "summary": "A feed is a copy of your product facts, made by a script someone wrote once and nobody reads. Here is a sheet that records where every output field comes from, what changes it on the way, the rule it has to pass, and what to send when you don't know.",
  "claims": [
    {
      "text": "OpenAI's file-upload Products spec asks for one row per purchasable item or variant and lists nine required fields for discovery: item_id, title, description, url, brand, seller_name, image_url, availability and price.",
      "source_title": "OpenAI Commerce: Products (file upload), Start with discovery and Basic product data",
      "source_url": "https://developers.openai.com/commerce/specs/file-upload/products",
      "source_date": "2026-10-27",
      "method": "documented",
      "limitation": "Living specification; the date is our check date. It describes what to submit, not how ChatGPT ranks products. Ads and checkout have separate requirements."
    },
    {
      "text": "The same spec says to omit an unknown value for optional fields, not to use placeholder strings such as null, unknown or n/a, and that an empty value does not mean zero or false. Availability is required and accepts unknown explicitly; an omitted or unrecognized availability rejects the row.",
      "source_title": "OpenAI Commerce: Products (file upload), Value conventions and Basic product data",
      "source_url": "https://developers.openai.com/commerce/specs/file-upload/products",
      "source_date": "2026-10-27",
      "method": "documented",
      "limitation": "The spec also says format guidance is not a guarantee that every invalid value will be rejected at upload."
    },
    {
      "text": "The spec writes money as amount plus ISO 4217 code (for example 79.99 USD), says a sale_price must be above zero, strictly below price and in the same currency, says never to include price in an offer ID, and says units are not inferred, so measurements must be converted before upload.",
      "source_title": "OpenAI Commerce: Products (file upload), Price & promotions, Variants and Item information",
      "source_url": "https://developers.openai.com/commerce/specs/file-upload/products",
      "source_date": "2026-10-27",
      "method": "documented",
      "limitation": "Rules for this OpenAI format only. Google Merchant Center and Shopify Catalog have their own contracts."
    },
    {
      "text": "The spec says the standard OpenAI-format upload currently targets the US, and OpenAI's merchant page says shopping is live for ChatGPT users in the U.S., that merchants apply to share a feed, and that Shopify and Etsy catalogs are already integrated with no separate application.",
      "source_title": "OpenAI Commerce: Products (Geo tagging); ChatGPT merchants page",
      "source_url": "https://chatgpt.com/merchants/",
      "source_date": "2026-10-27",
      "method": "documented",
      "limitation": "The merchant page is a marketing and application page, and it says a self-serve platform is planned for later this year. Market and access can change."
    },
    {
      "text": "Shopify says eligible products are syndicated to AI channels through Shopify Catalog with title, description, options, images, price, availability and other key attributes; that custom fields can be sourced with Shopify Catalog Mapping; and that if you set compare-at prices you can choose whether Catalog shows them to AI agents (otherwise Catalog sends only the current price).",
      "source_title": "Shopify Help Center: Shopify Catalog and product discovery for agentic storefronts",
      "source_url": "https://help.shopify.com/en/manual/online-sales-channels/agentic-storefronts/products",
      "source_date": "2026-10-27",
      "method": "documented",
      "limitation": "We have not seen the Shopify Catalog Mapping screen. Catalog inclusion also depends on store, account and product eligibility."
    },
    {
      "text": "Shopify marks several Global Catalog response fields as Inferred, including description, options, metadata.attributes, metadata.tech_specs, metadata.top_features and metadata.unique_selling_points, and says to treat them as discovery and merchandising signals, not merchant-authored source text.",
      "source_title": "Shopify: Global Catalog MCP, Inferred response fields",
      "source_url": "https://shopify.dev/docs/agents/catalog/global-catalog",
      "source_date": "2026-10-27",
      "method": "documented",
      "limitation": "It does not say how the values are generated."
    },
    {
      "text": "In our Shopify Catalog snapshot, a backpack description said \"Height: 11.2 inch Width: 7.5 inch Depth: 2.4lbs\" while the same record's generated spec said \"Depth 2.4 in\"; a humidifier description said \"up to 32 hours\" while its generated spec said \"Up to 36 hours\"; and a snowsuit description rated the hood's insulation to -30°C while the generated lines said the insulation was rated to -30°C, without the hood.",
      "source_title": "Cart for Agents: Shopify agent-catalog snapshot, Oct 26, 2026 (How we checked, this page)",
      "source_url": "https://cartforagents.com/guides/product-feed-optimization#how-we-checked",
      "source_date": "2026-10-26",
      "method": "observed",
      "limitation": "Three records from one unpersonalized snapshot. We cannot see how Shopify produced the generated lines, so these show where copies diverge, not which step caused it."
    },
    {
      "text": "Google says sites do not need new machine-readable files, AI text files or special schema.org markup to appear in AI Overviews or AI Mode, and lists keeping Merchant Center information up to date among ordinary SEO 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": "Covers Google Search AI features, not every Gemini or Shopping surface. Page last updated 2025-12-10."
    },
    {
      "text": "Google says shopping results labeled Top recommendations are selected based on relevance to the search, ratings, price and product features, and that AI-generated recommendations are supported by Shopping data aggregated from brands, stores and other content providers.",
      "source_title": "Google Shopping Help: Understand how shopping results are generated",
      "source_url": "https://support.google.com/googleshopping/answer/15456476?hl=en",
      "source_date": "2026-10-27",
      "method": "documented",
      "limitation": "Names inputs, not weights. Applies to Google Shopping."
    },
    {
      "text": "Google's Store Quality program says you won't be penalized if you don't provide some or all of the requested information; you just won't receive the program's benefits, and a blank rating can mean information is missing or impressions were too few.",
      "source_title": "Google Merchant Center Help: About the Store Quality program",
      "source_url": "https://support.google.com/merchants/answer/14261098?hl=en",
      "source_date": "2026-10-27",
      "method": "documented",
      "limitation": "About one Merchant Center program, not feed approval or ranking in general."
    },
    {
      "text": "OpenAI says ChatGPT may generate simplified product titles and descriptions based on information it receives from third-party providers.",
      "source_title": "OpenAI Help Center: Shopping with ChatGPT Search",
      "source_url": "https://help.openai.com/en/articles/11128490-shopping-with-chatgpt-search",
      "source_date": "2026-10-27",
      "method": "documented",
      "limitation": "It does not say which facts survive simplification."
    }
  ],
  "sources": [
    {
      "title": "OpenAI Commerce: Products (file upload)",
      "url": "https://developers.openai.com/commerce/specs/file-upload/products",
      "accessed": "2026-10-27"
    },
    {
      "title": "Power product discovery in ChatGPT (merchants page)",
      "url": "https://chatgpt.com/merchants/",
      "accessed": "2026-10-27"
    },
    {
      "title": "OpenAI Help Center: Shopping with ChatGPT Search",
      "url": "https://help.openai.com/en/articles/11128490-shopping-with-chatgpt-search",
      "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 Help Center: Requirements for being included in Shopify Catalog",
      "url": "https://help.shopify.com/en/manual/shopify-catalog/requirements",
      "accessed": "2026-10-27"
    },
    {
      "title": "Shopify: Global Catalog MCP",
      "url": "https://shopify.dev/docs/agents/catalog/global-catalog",
      "accessed": "2026-10-27"
    },
    {
      "title": "Google Search Central: AI features and your website",
      "url": "https://developers.google.com/search/docs/appearance/ai-features",
      "accessed": "2026-10-27"
    },
    {
      "title": "Google Shopping Help: Understand how shopping results are generated",
      "url": "https://support.google.com/googleshopping/answer/15456476?hl=en",
      "accessed": "2026-10-27"
    },
    {
      "title": "Google Merchant Center Help: About the Store Quality program",
      "url": "https://support.google.com/merchants/answer/14261098?hl=en",
      "accessed": "2026-10-27"
    },
    {
      "title": "Google Merchant Center Help: Price [price]",
      "url": "https://support.google.com/merchants/answer/6324371?hl=en",
      "accessed": "2026-10-27"
    }
  ],
  "limitations": [
    "Platform routes and specs were checked on 2026-10-27. They change; re-check the current spec before acting on any rule here.",
    "The mapping sheet and checklist are our proposal for your own files. They are not a format any platform requires, and we have not measured whether using them changes display, rank or sales anywhere.",
    "The validation rules quoted are a subset of OpenAI's file-upload spec. Our worked check encodes only rules that spec states; it is not OpenAI's validator, and OpenAI says format guidance does not guarantee every invalid value is rejected.",
    "The worked feed rows describe a hypothetical store and product, not a real listing. Its prices and SKUs exist only to show formatting.",
    "The three divergent records come from one unpersonalized Shopify Catalog snapshot taken October 26, 2026. They show copies disagreeing, not how often that happens, and Shopify-generated lines are not a merchant feed.",
    "The OpenAI-format upload currently targets the US. ChatGPT shopping availability in Canada and other markets is not documented on the pages we read.",
    "Store and material brand names from the snapshot are withheld."
  ],
  "related": [
    "https://cartforagents.com/guides/agent-ready-product-data",
    "https://cartforagents.com/guides/gtin-mpn-sku",
    "https://cartforagents.com/guides/product-feed-price-mismatch",
    "https://cartforagents.com/guides/ai-product-descriptions",
    "https://cartforagents.com/guides/product-constraint-coverage",
    "https://cartforagents.com/guides/chatgpt-product-feed"
  ],
  "published": "2026-10-27",
  "updated": "2026-10-27",
  "checked": "2026-10-27",
  "kind": "guide"
}