OpenAI Product Feed Builder — Shopify to ChatGPT shopping, in one export

Point the builder at any Shopify store or upload your product CSV. It maps every variant to the OpenAI product-feed specification, validates each row, and hands you the exact JSONL file OpenAI ingests — free, no install, nothing stored.

Build your feed

Your myshopify.com domain or any custom domain on your store. We read the public product JSON it already serves — no app install, no password.

Used for each product link: base + /products/handle. Auto-filled from the store URL.

Shown as the seller on every row (required by the spec).

Rows use each product's vendor first.

Must match your store's currency.

Row cap for this build (store URL mode pages 250 at a time, up to 2,500).

Your OpenAI feed

Preview — first 20 rows

item_idtitlepriceavailabilityurl
Upload the .jsonl.gz file to the SFTP endpoint OpenAI gives you in the merchant onboarding (chatgpt.com/merchants), keep the same file name, and refresh it daily.

How Shopify maps to the OpenAI spec

Variant SKU → options → positionitem_id — stable, derived from the product handle; never the price, so repricing never changes your IDs
Product handlegroup_id shared by every variant of the product
Option names & valuesvariant_dict with listing_has_variations: true
Title + selected optionstitle, e.g. "Trail Shoe — Black / 10"
Body HTML (tags stripped)description, truncated to the 5,000-character spec limit
Variant price + currencyprice as "29.99 USD" — two decimals, no separators
Inventory availabilityavailability: in_stock / out_of_stock
Vendor (or your fallback)brand; your store name becomes seller_name
Featured / variant imageimage_url (upgraded to https)

Always excluded: unpublished products, gift cards, and variants without a positive price — the spec rejects rows that break those rules.

Frequently asked questions

What is an OpenAI product feed?

OpenAI operates a commerce index that powers shopping results inside ChatGPT. Merchants publish a structured product feed — one record per purchasable item with title, description, URL, image, price, and availability — to OpenAI over SFTP. This tool converts a Shopify catalog into that exact format.

How does the builder turn Shopify products into feed rows?

Each Shopify variant becomes one feed row. Stable item IDs derive from the product handle plus SKU or option values — never price, so IDs survive repricing. Multi-variant products share a group ID with variant options, exactly as the OpenAI product spec describes, and every row is validated against the spec before export.

Do I need to install anything on my Shopify store?

No. The builder reads the public product JSON your Shopify store already serves, or accepts the standard product CSV export from your Shopify admin. Nothing is installed, no store data is stored on our servers, and processing happens per request.

What does the output file look like?

A plain JSONL file (one JSON object per line) plus a zipped .jsonl.gz copy — the exact formats OpenAI accepts. File names stay stable so you can overwrite the same file with fresh snapshots on a daily cadence, which is what OpenAI recommends.