Getting a Shopify store into ChatGPT Shopping results requires a few steps that no Shopify app currently automates end-to-end. Here's the complete process — from merchant registration to a live, scheduled JSONL feed.
Step 1: Register at chatgpt.com/merchants
ChatGPT Shopping is invite-based — you need to apply before you receive SFTP credentials. Go to chatgpt.com/merchants and complete the business verification process. You'll need:
- A verified business entity
- A business website that sells physical products
- A returns policy URL
- A target country (UK for most Shopify merchants reading this)
Shopify and Etsy merchants have a streamlined path as both platforms are pre-qualified with OpenAI's merchant infrastructure. This means the business verification stage is faster for Shopify merchants.
After approval, OpenAI provides your unique SFTP endpoint URL, port, username, and password. Keep these safe — you'll need them in the final step.
Step 2: Connect your Shopify store to a feed tool
ChatGPT's JSONL format requires pulling product data that Shopify's basic product export doesn't cleanly provide in the right structure. You need a tool that:
- Pulls from Shopify's Admin GraphQL API (for complete data including metafields and variants)
- Strips HTML from descriptions automatically
- Calculates variant_dict correctly (only dimensions that genuinely vary per product group)
- Validates JSONL output before delivery
- Pushes via SFTP on a schedule
Trajekt connects to your Shopify store via the Admin GraphQL API. In your Shopify admin: Settings > Apps and sales channels > Develop apps > Create an app. Grant read access to Products. Copy the Admin API access token into Trajekt.
Step 3: Map your fields to OpenAI's spec
OpenAI's feed specification (version 2026-01-30) requires 14 mandatory fields per product. The trickiest ones to get right:
description: Must be plain text — no HTML, no markdown, no special characters. Trajekt strips all of these automatically, including curly quotes, em dashes, and non-ASCII characters.
variant_dict: This is the field most merchants get wrong. It should only include dimensions that actually vary within the product group. If you have a t-shirt available in 3 colours × 4 sizes, the variant_dict for each variant should be {"color": "Navy", "size": "M"}. But if you have a shoe that only comes in black (different sizes only), the variant_dict should be {"size": "UK 9"} — no colour dimension, because colour doesn't vary for that product.
Getting variant_dict wrong is the single most common cause of product count inflation. A 7,000-product Shopify store becomes 22,000+ items in OpenAI when variant dimensions are over-specified.
price: Format as "12.50 GBP" — the numeric price, a space, then the ISO 4217 currency code. Not "£12.50", not "12.50", not "GBP 12.50".
Step 4: Set up SFTP delivery
Unlike every other Shopping channel, ChatGPT uses a push model — you send the file to OpenAI, not the other way around. OpenAI provides an SFTP endpoint; you push a compressed JSONL file to it on schedule.
Key rules for SFTP delivery:
- The filename must stay consistent across updates (e.g.
catalogue.jsonl.gz). OpenAI overwrites the previous file — don't suffix with dates or timestamps. - Full catalogue snapshots are required — no incremental updates yet.
- Maximum 500,000 products per shard file. If your catalogue is larger, split into consistently-named shards.
- OpenAI accepts updates as frequently as every 15 minutes.
Trajekt handles all of this automatically — generates the compressed JSONL, pushes to your SFTP endpoint, and overwrites cleanly on every run.
Step 5: Validate and monitor
After your first SFTP push, OpenAI processes the feed through three phases: ingestion, validation, and indexing. Allow 24-48 hours for the initial processing. Check your merchant dashboard at chatgpt.com/merchants for processing status.
Common reasons for initial rejection:
- Non-UTF-8 encoding in any text field
- HTML in description fields
- Missing required fields
- Invalid JSON syntax (malformed JSONL)
- Product URLs returning non-200 status codes
Trajekt validates all of these before pushing to SFTP, so your feed arrives clean on the first submission.
Connect your Shopify store to ChatGPT today
Trajekt pulls your complete Shopify catalogue via GraphQL and generates OpenAI-compliant JSONL with correct variant handling, clean descriptions, and scheduled SFTP delivery.
Start free →Timeline to expect
Realistic timeline from starting the process to live ChatGPT Shopping listings:
- Day 1: Apply at chatgpt.com/merchants
- Days 2-7: Merchant verification and approval
- Day 7-8: Connect Shopify to Trajekt, configure feed
- Day 8: First SFTP push
- Days 8-10: OpenAI ingestion and validation
- Day 10-14: Products live in ChatGPT Shopping
For UK merchants, ChatGPT Shopping's UK expansion is rolling out throughout 2026. Starting the process now means you're positioned to go live immediately when UK access opens fully.