More and more shoppers ask ChatGPT what to buy. ChatGPT answers those questions with product results it assembles from merchant product feeds and public product pages — and OpenAI runs a merchant program that accepts a structured product feed directly.
The ChatGPT shopping feed channel type builds that feed for you: a channel whose fields use OpenAI's own layout and names, with the output preset to what OpenAI's ingestion accepts.
What setup does — and doesn't — get you#
Being straight about this matters more than the setup steps:
- Creating this channel prepares a ChatGPT-compatible feed. It does not enroll your store in OpenAI's merchant program, and it doesn't put your products in ChatGPT.
- The merchant program is approval-based. You apply at chatgpt.com/merchants; OpenAI decides who joins, and as of mid-2026 the program is US-focused. Stores selling on some platforms (Shopify and Etsy among them) are enrolled through their platform rather than by applying directly. [VERIFY: current program regions and auto-enrolled platforms — check chatgpt.com/merchants, this changes often.]
- What ChatGPT shows is ChatGPT's decision. OpenAI describes its shopping results as organic; a feed makes your product data available to them, and no one — not Renable, not anyone — can promise placement in an answer.
- There is a real indirect path today. ChatGPT's shopping answers draw heavily on Google Shopping listings, so a strong, well-filled Google channel already influences what ChatGPT can say about your products — worldwide, and with no application. If you can't join the merchant program yet, that's the lever that works now, and AI discovery on Google is how you strengthen it.
- In-chat checkout is gone. OpenAI discontinued ChatGPT's built-in checkout in March 2026 — shopping answers now link shoppers out to your store, so your product URLs are what carries the purchase.
Creating the channel#
From a project's Channels section, create a channel and pick the ChatGPT shopping feed type. It seeds:
- Fields in OpenAI's layout —
item_id,title,description,brand,url,image_url,price,availability, and the rest of the program's field set, bound to your product data the same way the Google channel type binds its fields. is_eligible_search— a flag OpenAI requires on every product, preset totrue: it marks the product as eligible for ChatGPT's shopping search.seller_nameandseller_url— your store's name and website address. These are yours to fill in once: open the Fields tab, click each field, and type the value as a constant. Until you do, the channel's warnings will point at them.- Output preset to compressed TSV — OpenAI ingests flat files (
csv.gz,tsv.gz, orjsonl.gz). Keep the preset: it's the shape this channel type is built and checked around. Switch the File format to XML or JSON and Renable warns you on the spot, because ChatGPT doesn't read either. [VERIFY: whether OpenAI's JSON Lines ingestion accepts all values as strings — until confirmed, prefer the TSV preset over switching to JSON Lines]
On the Settings tab, the Used for card shows the channel declared for ChatGPT with its always-on ChatGPT shopping use — that's what drives the field checks — plus one add-on:
- ChatGPT Ads — toggling this on adds the
is_ads_eligiblefield, which marks products as eligible for ChatGPT's product-feed ad campaigns (a beta in OpenAI's Ads Manager). Eligibility is a precondition, not a promise: OpenAI decides what serves.
Delivering the feed#
OpenAI doesn't fetch feed URLs — the feed is pushed to them. When your store is approved for the merchant program, OpenAI provides SFTP credentials for delivery; put them in the channel's SFTP delivery card and Renable pushes the file on every update.
This is the one thing that's easy to miss. A ChatGPT channel with no SFTP details renders a perfectly good feed and delivers it nowhere — there's no URL for OpenAI to fetch instead. Renable now says so: the SFTP delivery section opens itself with a warning, the destination's row under Used for reads "Needs SFTP details", and the same warning appears on the Activity tab after each render until the details are in. See Delivery checks.
The delivered file is named after the feed automatically (ending .tsv.gz); set the SFTP File name only if OpenAI asks for a specific name — the field is used exactly as you write it. Use Test connection once you've filled the credentials in — it signs in and writes a test file next to where your feed will go (your file name with -renable-test on the end, never over the feed itself), so a wrong directory or password surfaces immediately instead of at the next delivery.
The feed's normal URL keeps working alongside the push — useful for checking the output yourself, and for any other destination that reads the same file.
Checking the output#
- Preview tab → Source view shows the exact file content per product.
- The Fields tab marks OpenAI's required fields and their fill rates from the latest render —
seller_nameandseller_urlwarnings clear once you've filled them in. - Delivery results show on the Activity tab: a failed SFTP push raises a warning there (the feed URL still updates), and it clears on the next successful delivery. A channel with no SFTP details at all raises a different warning — see Channel events and troubleshooting.