ChatGPT product feed: format, upload and WooCommerce

What a ChatGPT product feed is, the fields OpenAI requires, how to connect one in Business Hub, and how WooCommerce and Magento stores make one.

Written by
The Transica team
Sources checked
Reading time
12 min read
Topic
Get listed
On this page
  1. 01What is a ChatGPT product feed?
  2. 02How do I connect a product feed in Business Hub?
  3. 03What fields does a ChatGPT product feed need?
  4. 04What does a ChatGPT product feed look like?
  5. 05How often should I update a ChatGPT product feed?
  6. 06What are common ChatGPT product feed errors?
  7. 07How do I make a ChatGPT product feed for WooCommerce?
  8. 08How do I make a ChatGPT product feed for Magento?
  9. 09Done for you: ChatGPT setup for your store
  10. 10How Transica helps
  11. 11Common questions
  12. 12Sources

A ChatGPT product feed is a file that lists your products, one row for each item or variant, in the format OpenAI publishes. It gives ChatGPT your current product details, prices and stock. Since 10 November 2026, a business can connect one itself in Business Hub: from Shopify, as a CSV upload, or as a hosted URL that links to the feed file (OpenAI Help Center). Every row needs nine fields: item_id, title, description, url, brand, seller_name, image_url, availability and price. WooCommerce and Magento stores can export their catalog and convert it, or generate the feed from the store's API.

What is a ChatGPT product feed?

OpenAI says retailers can upload a feed to share product details, pricing and availability, and that ChatGPT may use this information to answer customer questions (OpenAI). A Business Agent, the chat a business can publish from its ChatGPT profile, answers from the same product and policy details. Connecting a feed doesn't publish an agent. OpenAI also says a connected feed doesn't guarantee that ChatGPT recommends your products.

A feed can go to three places. All three use OpenAI's product feed spec.

WhereWho can use itHow the feed gets thereWhat it's for
Business HubBusinesses that claim their profile and pass ID verificationShopify, CSV upload or hosted URLProduct details, prices and stock that ChatGPT may use in answers
Merchant programApproved partners; others apply at chatgpt.com/merchantsSFTP, a secure file transfer to OpenAI's serverIndexing products for ChatGPT's shopping results (OpenAI)
Ads ManagerAdvertisersCSV or TXT upload, hosted URL or SFTPProduct ads only, during the beta; not ChatGPT's own answers (OpenAI Help Center)

How a feed fits with profiles, agents, apps and ads: ChatGPT for merchants.

How do I connect a product feed in Business Hub?

  1. Claim your business. Open Business Hub from the ChatGPT sidebar or at chatgpt.com/business-hub, find your business and verify by business phone, business email, a DNS record on your domain, or your Shopify store. Steps: how to claim your business in ChatGPT.
  2. Pass ID verification with Persona. Persona is the identity check service OpenAI uses. You can't connect a feed until it's approved. If it's stuck, see Business Hub verification.
  3. Connect the feed. Pick one of the three ways in the table below.
  4. Check your products against the rules. Products in the feed must follow OpenAI's Commerce policies, which rule out categories such as adult content and gambling; tobacco, nicotine and alcohol; weapons; and recalled or unsafe products.
WayWhat you doGood fit
ShopifyConnect your Shopify storeShopify stores. Eligible Shopify products are already in ChatGPT through Shopify Catalog (OpenAI)
CSV uploadUpload a CSV file, a spreadsheet saved as plain text, that follows the spec and has its required fieldsSmall catalogs that rarely change
Hosted URLGive Business Hub a link to the feed file on your serverStores that generate the feed automatically

What fields does a ChatGPT product feed need?

Each row is one item or variant a shopper can buy. The examples are from OpenAI's spec.

FieldWhat it holdsExample
item_idYour ID for this item or variant. Keep it stable and never reuse it for another itemMUG-350-BLUE
titleProduct name, including the variant when it mattersBlue ceramic mug, 350 mL
descriptionFactual description of the item, in plain textDishwasher-safe glazed ceramic mug with a handle.
urlThe product page, with the variant selected when possiblehttps://example.com/products/mug-blue
brandThe brand as shown on the product pageNorthline
seller_nameThe name of the sellerNorthline Home
image_urlA direct link to the main image, such as a JPEG or PNGhttps://example.com/images/mug-blue.jpg
availabilityin_stock, out_of_stock, pre_order, backorder or unknownin_stock
priceThe regular price: amount, a space, then the currency code18.00 USD

Which optional fields can I add?

OpenAI marks every other field optional, except three that variants need. Useful ones for a store:

FieldWhat it holdsExample
group_idThe parent listing ID shared by all variants. Needed for variantsTRAIL
listing_has_variationstrue on every variant row. Needed for variantstrue
variant_dictThe options this row selects. Needed for variants{"color":"Black","size":"10"}
sale_priceThe current sale price, lower than price59.99 USD
gtinThe product's barcode number, 8, 12, 13 or 14 digits09506000134352
mpnThe manufacturer's part numberNL-TRAIL-10-BLK
additional_image_urlsMore images of this item["https://example.com/images/trail-side.jpg"]
product_categoryYour category path, from broad to specificApparel & Accessories > Shoes
conditionnew, refurbished or usednew
shipping_priceThe shipping charge. Empty means unknown, not free5.00 USD
accepts_returnsWhether you take returns of this itemtrue
return_deadline_in_daysDays allowed for a return30
return_policyLink to your returns policyhttps://example.com/returns
review_count and star_ratingNumber of product reviews and their average, out of 5254 and 4.50
is_eligible_searchfalse keeps the item out of searchtrue

Three more rules from the spec:

  • Text is UTF-8. Aim for titles up to 150 characters and descriptions up to 5,000, in plain text.
  • IDs stay the same when price, stock, title or images change.
  • Market. The standard upload targets the US.

What does a ChatGPT product feed look like?

Two rows in CSV, the format Business Hub takes for uploads. The first row is the example in OpenAI's spec. A cell that contains a comma goes in double quotes.

item_id,title,description,url,brand,seller_name,image_url,availability,price,sale_price
MUG-350-BLUE,"Blue ceramic mug, 350 mL",Dishwasher-safe glazed ceramic mug with a handle.,https://example.com/products/mug-blue,Northline,Northline Home,https://example.com/images/mug-blue.jpg,in_stock,18.00 USD,
TEAPOT-1L-WHT,"White ceramic teapot, 1 L",Glazed ceramic teapot with a removable steel infuser.,https://example.com/products/teapot-white,Northline,Northline Home,https://example.com/images/teapot-white.jpg,in_stock,42.00 USD,35.00 USD

For JSON Lines, a format with one product per line, see the record in How to sell on ChatGPT.

How often should I update a ChatGPT product feed?

  • At least once a day. OpenAI's file upload guide treats each feed as a full snapshot of your catalog and recommends sending one at least daily (OpenAI). The guide is written for SFTP delivery.
  • Whenever a price or stock level changes. The spec says to update the price when a sale starts or ends, and availability when an item sells out or comes back. Sale dates and stock dates in the feed don't schedule these changes for you.
  • Removing a product takes time. A product left out of a snapshot isn't deleted at once. OpenAI keeps its last record for up to 14 days. To hide it at the next update, set is_eligible_search to false.

With a hosted URL, keep the file at that address current. Business Hub's help article doesn't say how often it reads the file.

What are common ChatGPT product feed errors?

OpenAI's upload guide names three common failures: missing required fields, outdated or wrong field names, and malformed values.

ProblemFix
A required field is emptyFill all nine fields on every row. An empty or unrecognized availability rejects the row
Old or different column namesUse the spec's names. Older names such as id or sku for item_id still work, but send only one name per value
Price in the wrong formatWrite 79.99 USD: a decimal point, a space and a three-letter currency code in capitals. No thousands separator, and two decimal places for US dollars
Placeholder text such as n/a or nullLeave unknown optional values empty. unknown is allowed only where the spec lists it, as in availability
sale_price ignoredIt must be above zero, lower than price and in the same currency
Variants not groupedGive each variant its own item_id, the same group_id, listing_has_variations set to true and a variant_dict. The group_id must differ from every item_id
GTIN rejectedUse exactly 8, 12, 13 or 14 digits with a valid check digit, and keep leading zeros. ISBN-10 isn't accepted. Leave it out if the item has none
Broken linksUse full https links to public pages and images, a direct image file for image_url, and %20 for spaces (OpenAI)
Columns shifted in the CSVPut cells with commas, quotes or line breaks in double quotes, and double any quote inside a cell

How do I make a ChatGPT product feed for WooCommerce?

WooCommerce doesn't write OpenAI's format. There are two ways to produce it.

  1. Export and convert. WooCommerce's exporter is under Products > All Products > Export (WooCommerce). Its columns don't match OpenAI's. Prices have no currency code, In stock? is 1, 0 or backorder, and there's no column for the product page link (WooCommerce source). Rename the columns, add url, brand and seller_name, rewrite prices and stock in OpenAI's format, then upload the file. Repeat this each time prices or stock change.
  2. Generate it from the Store API and host it. WooCommerce's Store API lists published products without API keys, at /wp-json/wc/store/v1/products. Each product comes with its page link, SKU, prices, images and stock status (WooCommerce). A script on a schedule reads it, writes the feed file and serves it at a fixed address, which you add in Business Hub as the hosted URL. Prices come in the currency's smallest unit, so 1105 with a currency_minor_unit of 2 means 11.05. Descriptions come as HTML, and OpenAI asks for plain text.

Each variation of a variable product needs its own row, with the parent product's ID as group_id. Some WooCommerce plugins say they produce a ChatGPT feed. WooCommerce ChatGPT integration lists the ones it checked. Compare a plugin's output with the field table above before you connect it.

How do I make a ChatGPT product feed for Magento?

Magento and Adobe Commerce don't write OpenAI's format either.

  1. Export and convert. In the admin, go to System > Data Transfer > Export, set Entity Type to Products and export a CSV (Adobe). The file uses Magento's attribute names. url_key is only the part of the address that identifies the product, and base_image is a relative file path, so build the full product and image links from them (Adobe). Map sku, name, price, special_price and is_in_stock to OpenAI's fields, add brand and seller_name, then upload.
  2. Generate it from the API and host it. Magento's GraphQL products query returns prices with their currency, stock status, image links and url_key (Adobe). Adobe Commerce as a Cloud Service uses Catalog Service instead of that query. The REST endpoint /V1/products is closed to anonymous callers by default (Adobe). A script on a schedule writes the feed file and serves it at a fixed address for Business Hub.

Each child of a configurable product becomes its own row, with the parent's SKU as group_id. Descriptions come as HTML, so convert them to plain text.

Done for you: ChatGPT setup for your store

ChatGPT setup for your store, done for you. Transica helps you claim your business in ChatGPT, fills in your profile, builds your product feed and keeps it current, sets up your Business Agent, and gives customers an app in ChatGPT for what the agent can't do, like checking an order.

  1. You claim and verify. Transica guides you through claiming in Business Hub. You do the verification and the Persona ID check yourself, then invite Transica as your agency. OpenAI's help article says the admin who claimed a business can give an agency access to manage the business or its agent (OpenAI Help Center).
  2. Transica builds the feed. It builds the feed from your store's site or API in OpenAI's format, hosts it, and connects it in Business Hub as a hosted URL.
  3. Transica keeps it current. Each month it updates prices, stock and sales in the feed, updates the agent and profile, hosts and monitors the app, and sends a note based on the Business Hub insights you share.

It's for US stores first, especially WooCommerce, Magento and custom stores. See the done-for-you service.

Transica

How Transica helps

  • Free page scan. Scan a product page, with no account, to see whether OAI-SearchBot and other AI tools can read it.
  • Your store's own app. OpenAI says the Business Agent can't complete purchases, make bookings or check a customer's order (what it can and can't do). Transica builds an app from your API or website, signs customers in with the login they already have with you, hosts it, and prepares the directory submission. The same app works in Claude. Building is free; hosting starts at $19 a month.
  • Free directory check. The MCP directory check, with no account, shows what ChatGPT's and Claude's directories would flag.

Common questions

What format is the ChatGPT product feed?

OpenAI's spec uses one row per item or variant, in UTF-8, with nine required fields and prices written like 18.00 USD. Business Hub takes a CSV upload or a hosted URL; SFTP delivery in the merchant program takes Parquet, or gzipped JSON Lines, CSV or TSV files.

How do I add products to ChatGPT?

Claim your business in Business Hub, pass ID verification with Persona, then connect a product feed from Shopify, as a CSV upload or as a hosted URL. Eligible Shopify products are already in ChatGPT through Shopify Catalog.

How do I make a ChatGPT product feed for WooCommerce?

Export your products from Products > All Products > Export and convert the columns to OpenAI's fields. Or generate the feed from WooCommerce's Store API and host it at a fixed URL for Business Hub.

How do I make a ChatGPT product feed for Magento?

Export products from System > Data Transfer > Export and convert them, building full links from url_key and base_image. Or generate the feed from Magento's GraphQL products query and host it at a fixed URL.

How often does ChatGPT update my products?

OpenAI recommends sending a full snapshot at least once a day, and updating prices and stock when they change. A product you drop from the feed can stay for up to 14 days unless you set is_eligible_search to false.

Does a product feed make ChatGPT recommend my products?

No. OpenAI says connecting a feed doesn't guarantee that ChatGPT recommends your products, and claiming a business doesn't guarantee higher placement.

Does connecting a product feed publish a Business Agent?

No. The agent is a separate step in Business Hub: you review it, preview it with a common question and select Publish.

Sources

Read on 11 November 2026.

See how AI agents use your site today.

Free for one page. No account required. Only you can open the report.