Resources · AI Search for Ecommerce

How to Prepare an Ecommerce Catalog for Buy It in ChatGPT

“Buy it in ChatGPT” was OpenAI's September 2025 name for Instant Checkout, built on the Agentic Commerce Protocol. In 2026 OpenAI narrowed in-chat checkout to select marketplace partners. For most stores, preparing a catalogue now means preparing it for discovery: a clean product feed that shows your products accurately in ChatGPT shopping results, with the purchase completed on your own site. The same file can later opt products into ChatGPT ads or checkout with three flags. Shopify stores are included by default through Shopify's integration; other stores apply to OpenAI and upload a feed. The work is mostly data hygiene: nine required fields, correctly grouped variants, real identifiers and current prices.

What does “Buy it in ChatGPT” mean now?

OpenAI's product data specification now describes one file format with three uses:

Use What it needs Who can use it
Shopping results (discovery) Required fields; search eligibility is on by default Merchants accepted by OpenAI; Shopify and Etsy stores through integrations
ChatGPT ads from product feeds An ads feed in OpenAI Ads Manager, with products flagged for ads Advertisers in OpenAI's ads programme, in available countries
In-chat checkout A checkout flag plus a separately enabled checkout integration Select marketplace partners

OpenAI's documentation is explicit that setting the checkout flag does not complete checkout onboarding. For almost every store, discovery is the goal, and the rest of this page is about getting it right. The history is covered in how ChatGPT is turning into a shopping platform, and the protocol itself in how the Agentic Commerce Protocol works.

What fields are required in an OpenAI product feed?

Nine fields, on every row:

Field What to put Common mistake
item_id A stable ID, unique per item or variant IDs that change between exports
title Product name, including the selected variant One title shared by every size and colour
description Factual description of this item Marketing copy with no specifications
url Product page, with the variant selected where possible Links to the parent page or a category
brand Brand as shown on the product page Your store name on third-party brands
seller_name The seller supplying this offer Left blank or a placeholder
image_url Main image, showing this variant The same image on every variant
availability in_stock, out_of_stock, pre_order, backorder or unknown Values like “available” or “yes”
price Regular price with currency, such as 79.99 USD Missing currency, or sale price in this field

OpenAI's value conventions catch many exports out. Leave an unknown optional field empty rather than writing “n/a” or “null”. Keep identifiers as strings so leading zeros survive. Use absolute, publicly accessible URLs. A sale price goes in its own field and must be lower than the regular price, in the same currency.

How should variants be modelled?

Variants cause more confusion than any other part of the specification. OpenAI asks for one row per purchasable option:

  • A distinct item_id for each size, colour or other selection.
  • The same group_id on every variant of one product.
  • listing_has_variations set to true on each variant row.
  • A variant_dict mapping option names to the selected values, such as colour: Black and size: 10.
  • Variant-specific title, URL, image, price and availability wherever they differ.

Group only variants of the same product, as your site presents them. Many platforms export only the parent product, or give every variant the parent's image and price, and that is worth checking first.

Are missing GTINs at the variant level the most common blocker for ACP eligibility?

Not in OpenAI's own format. GTIN is optional there, and OpenAI's documentation says not to invent a value to replace a missing one. We have no data on which feed problem blocks stores most often.

GTINs matter in three narrower ways:

  • Google-compatible feeds need a valid GTIN or MPN on each row, unless you mark the product as having no identifier.
  • A GTIN identifies one trade item, not the variant group. Copying the parent's GTIN onto every size is an error.
  • Invalid GTINs, with the wrong length or a failed check digit, are worse than none. OpenAI accepts exactly 8, 12, 13 or 14 digits.

Their effect on how products are matched and placed is covered in how ChatGPT ranks shopping results.

OpenAI product feeds versus website crawling for ChatGPT shopping

ChatGPT uses both. A July 2026 Profound study of more than 800,000 ChatGPT product cards found 87.3% came from web crawling and 12.7% from merchant feeds. So a feed is not the only way in, but the two do different jobs:

Product feed Website crawling
Access Apply and be accepted by OpenAI Allow OAI-SearchBot in robots.txt
Control You state prices, stock and variants directly ChatGPT reads what your pages show
Freshness Daily snapshot plus API updates Depends on crawl timing
What helps Complete fields, correct variants Server-rendered prices, Product markup, clear specifications

The practical answer is to do both. A feed protects accuracy on price and stock; crawlable product pages keep you visible where the feed is not used. Pages should state the same prices and availability as the feed.

How do I submit a product feed so my products appear in ChatGPT shopping results?

  1. Apply for access through the form in OpenAI's commerce documentation, linked from its merchants page.
  2. Check the prohibited products policy. OpenAI excludes, among others, adult content, alcohol, nicotine, gambling, weapons and prescription-only medicines.
  3. Choose file upload or the API. OpenAI generally recommends a full feed once a day by file upload, with updates through the API during the day. Small catalogues can use the API for both. Promotions can only be sent through the API.
  4. Validate every row against the required fields before sending.
  5. Upload, overwriting the same file or shard set with each new snapshot.
  6. Add a tracking parameter, such as utm_medium=feed, to product URLs if you want to separate feed clicks in analytics.

Ads use a separate feed created in OpenAI Ads Manager or its Advertiser API, delivered by SFTP. Its upload history reports rows accepted and rejected with a reason for each, which makes it a useful validation check even before you spend on ads. Measuring the resulting sales is covered in how to track ecommerce orders from ChatGPT.

How should Shopify merchants prepare product feeds for ChatGPT?

Shopify merchants do not send a feed themselves. Shopify's Agentic Storefronts shares eligible products from Shopify Catalog with ChatGPT for merchants selling to US buyers, and it is on by default. Preparation happens in the Shopify admin:

  • Titles that name the product type and key attribute.
  • Factual descriptions with materials, dimensions and compatibility.
  • The barcode field filled with real GTINs where products have them.
  • A product category set on each product.
  • Clear option names and an image for each variant.
  • Inventory tracking switched on, so stock status is current.

How to optimize the ChatGPT and Shopify integration for in-chat shopping

  • Check the channel under Sales channels > Agentic in your Shopify admin, and confirm which AI channels are on and which products are excluded.
  • Make checkout fast on mobile. ChatGPT sends shoppers to your store to buy, in an in-app browser or new tab, so guest checkout and quick payment options matter.
  • Watch attribution. Shopify shows orders from AI channels with channel or referrer attribution in the admin.
  • Use the Knowledge Base app for accuracy, not reach. Shopify says it improves AI answers about your store but does not affect how often it appears.

Shopify's defaults are covered in more depth in whether Shopify's default settings improve AI visibility.

Channable OpenAI feed templates review: mapping product data automatically

Channable added a ChatGPT Commerce (OpenAI) channel in October 2025. Its help centre documents using it for ChatGPT ads feeds. The workflow:

  • Connect by SFTP, using credentials generated in OpenAI Ads Manager.
  • Accept or adjust category suggestions made automatically.
  • Map attributes marked mandatory, recommended and optional to your own fields.
  • Fix issues in a quality step that flags missing data and formatting problems, with suggested solutions.
  • Apply rules and rule templates to filter, rewrite or enrich fields.
  • Run the feed, which Channable uploads automatically to OpenAI.

It suits merchants already using Channable for other channels, and large catalogues that need rules to reshape data. Two limits: mapping cannot create missing data, such as real GTINs or variant images, and you still need access to OpenAI's programmes. Alternatives include Feedonomics, Productsup and, for WooCommerce, AdTribes. We have not used Channable's template ourselves; this section is based on its documentation.

This page as a whole is based on OpenAI's commerce and ads documentation and Shopify's help pages; we have not submitted a feed to OpenAI ourselves.

What might this look like in practice?

Consider an illustrative ceramics shop, Raskoway Studio, on WooCommerce with 1,200 variants. Its first export failed on three problems: “n/a” written into empty GTIN cells, every glaze colour sharing the parent's photo, and titles without the colour. The owner cleared the placeholders, added variant images and titles, and grouped each mug's colours under one group_id. After OpenAI accepted the shop, the feed went out daily by SFTP, with price and stock changes sent through the API. Later, the same file, with the ads flag set, fed a small ChatGPT ads test.

What do people ask about preparing a catalogue for ChatGPT?

Can I still get “Buy it in ChatGPT” checkout?

OpenAI now limits in-chat checkout to select marketplace partners. Most stores sell through discovery, with purchases on their own site.

Do I need GTINs?

Not in OpenAI's own format, though you should include real ones where products have them. Never invent them.

Can I reuse my Google Shopping feed?

Often. OpenAI accepts a Google-compatible CSV, TSV or text file once it confirms that format for your feed. XML is not accepted on that path.

How often should I update the feed?

At least a full snapshot daily, with price and stock changes sent through the API as they happen.

Published by The Kovmere Team · updated Sep 29, 2026 · More resources