Blog

Selling through ChatGPT from WooCommerce: what works today

You can't take payment inside ChatGPT from WooCommerce today. What works: crawler access, OpenAI's feed waitlist and clean variation data before Black Friday.

If you run a WooCommerce store, you have probably seen advice to start selling through ChatGPT before Black Friday. Some of the guides still read as if a shopper can pay inside the chat.

The short answer for November 2026: they can’t. OpenAI moved away from Instant Checkout in March, and purchases now finish on your own site. WooCommerce has no built-in ChatGPT connection either. What you can do is make sure ChatGPT can read your products, apply for OpenAI’s product feed if you sell in the US, and get your variations into the shape that feed expects.

Key takeaways

  • A WooCommerce store can be discovered in ChatGPT, but it can’t sell inside the chat. OpenAI moved away from Instant Checkout in March 2026, so shoppers complete purchases on your own checkout, and shopping is live for US users only for now. arvindkumar.ca
  • A product feed is optional, but crawler access is the entry ticket, not a promise of placement. Allow OAI-SearchBot, which is separate from GPTBot, and check robots.txt and your server’s response. arvindkumar.ca
  • To send a feed you must apply through OpenAI’s merchants page and join a waitlist, because WooCommerce is not already integrated the way Shopify and Etsy are. Approved merchants push files over SFTP, with a full snapshot at least once a day. arvindkumar.ca
  • Most WooCommerce fields map directly, but variations need care: one row per variation, the regular price rather than the active price, OpenAI’s stock values, and a row for each choice under an “Any” attribute. Brand is required, so fill in any that are missing. arvindkumar.ca
  • No plugin can add ChatGPT checkout that OpenAI hasn’t enabled for you. A feed-export plugin can save work, but you still need approval, and Stripe’s Agentic Commerce Protocol is listed as “Coming soon” on WooCommerce. arvindkumar.ca
  • Track ChatGPT visits in GA4, where many links carry utm_source=chatgpt.com, though that tag can’t be fully trusted. If your feed is approved, add your own parameter such as utm_medium=feed to product URLs. arvindkumar.ca
  • Before Black Friday, fix access and product data and leave your live checkout alone. Check crawler access, confirm price and stock are in the page HTML, tidy variations, brands and regular prices, then apply if you sell in the US. arvindkumar.ca

Summarised from this post, formatted for answer engines.

Can a WooCommerce store sell inside ChatGPT today?

No. A WooCommerce store can be discovered in ChatGPT, but the sale happens on your checkout. OpenAI’s March 24, 2026 post on product discovery says the first version of Instant Checkout didn’t offer enough flexibility, so merchants would use their own checkout while OpenAI focused on discovery. Its merchants page now says shoppers discover and evaluate products in ChatGPT, then complete purchases on merchant-owned websites or apps. The same page says there are no fees on purchases that start in ChatGPT.

Shopping is live for ChatGPT users in the US only for now, with more regions promised without dates. OpenAI also offers ChatGPT apps for deeper integrations, but its merchants page describes them as best suited to larger merchants and says most start with feeds.

Can ChatGPT show my products without a feed?

Yes, a feed is optional. OpenAI’s merchant FAQ asks whether you need a feed if ChatGPT already crawls your site, and answers no, adding that a feed gives you more control over how products appear. I found nothing from OpenAI that explains how crawled products get picked for shopping results, so treat crawler access as the entry ticket, not a promise of placement.

The crawler that matters is OAI-SearchBot. OpenAI’s crawler documentation says sites that opt out of it won’t appear in ChatGPT search answers, and robots.txt changes take about 24 hours to apply. GPTBot is a separate crawler, used for model training, so you can block one and allow the other. I covered that split in Opt your WordPress site out of AI training.

These two commands show your robots.txt rules for that crawler and what your server answers when a request names it:

curl -s https://yourstore.com/robots.txt | grep -i -A3 'oai-searchbot'

curl -sI -A 'OAI-SearchBot' https://yourstore.com/product/your-product/ | head -n 1

If the first prints nothing, your User-agent: * rules apply. On the second, a 200 is what you want. A 403 is worth a look in your firewall or CDN logs, though some firewalls reject a request that claims to be a bot from the wrong address, so it doesn’t prove the real crawler is blocked.

How do I get a product feed into ChatGPT?

You apply through OpenAI’s merchants page and wait. OpenAI’s getting started guide says onboarding is available to approved partners, and the merchants page says applicants go on a waitlist. Stores on Shopify or Etsy are already integrated with no application. WooCommerce isn’t in that sentence, so you apply like anyone else.

Once you’re approved, these are the rules from OpenAI’s file upload documentation:

  • Delivery: you push files to OpenAI over SFTP.
  • Format: Parquet is preferred. Gzipped JSONL, CSV and TSV also work.
  • Freshness: a full snapshot at least once a day.

OpenAI says it is also building a self-serve merchant portal for later this year, and that feeds can arrive through providers such as Stripe and Salesforce. A note for stores outside the US: the feed format can represent Canada and Mexico, but the specification says standard uploads use ["US"] whatever you put in target_countries. A Canadian store that doesn’t ship to the US has little reason to apply yet.

How do WooCommerce products map to OpenAI’s feed fields?

Mostly directly, with variations as the part to get right. Nine fields are required: item_id, title, description, url, brand, seller_name, image_url, availability and price. Here is what I’d watch on WooCommerce:

  • One row per variation. Each gets its own item_id, the same group_id, listing_has_variations set to true and a variant_dict of its options. The variation ID and parent product ID fit naturally, and the specification says a group_id must differ from the item_id.
  • Regular price, not active price. OpenAI’s price is the regular price, written like 79.99 USD, with a separate sale_price. WooCommerce’s get_price() returns the active price, so during a sale it gives you the wrong number. Use get_regular_price().
  • Stock values. WooCommerce stores instock, outofstock and onbackorder. OpenAI wants in_stock, out_of_stock and backorder, and it rejects rows with unrecognised values.
  • Variation URLs. OpenAI asks for the variant selected when possible. A variation’s get_permalink() adds its attributes to the URL, which does that.
  • “Any” attributes. A variation set to “Any size” has no value for that attribute, but OpenAI wants a row for each selection. These need splitting in your export.
  • Brand. WooCommerce doesn’t make you set one, and the feed requires it, so check before you export.

This read-only script prints the variation fields for one product so you can see the problems. It is a check, not a feed generator: it leaves out the title, description, image, brand and seller name. Run it with WP-CLI on a staging copy.

<?php
// Read-only. Run with: wp eval-file feed-check.php
$parent   = wc_get_product( 123 ); // Your variable product's ID.
$currency = get_woocommerce_currency();
$stock    = array(
	'instock'     => 'in_stock',
	'outofstock'  => 'out_of_stock',
	'onbackorder' => 'backorder',
);

foreach ( $parent->get_children() as $id ) {
	$v = wc_get_product( $id );
	if ( 'publish' !== $v->get_status() ) {
		continue; // Skip disabled variations.
	}
	$opts = array();
	foreach ( array_keys( $v->get_attributes() ) as $key ) {
		$opts[ wc_attribute_label( $key, $v ) ] = $v->get_attribute( $key );
	}
	echo wp_json_encode(
		array(
			'item_id'                => (string) $id,
			'group_id'               => (string) $parent->get_id(),
			'listing_has_variations' => true,
			'variant_dict'           => $opts,
			'url'                    => $v->get_permalink(),
			'price'                  => $v->get_regular_price() . ' ' . $currency,
			'availability'           => $stock[ $v->get_stock_status() ] ?? 'unknown',
		),
		JSON_UNESCAPED_SLASHES
	) . "\n";
}

A blank value in variant_dict is an “Any” attribute. A blank amount in price means the variation has no regular price set.

Should I install a plugin that promises ChatGPT checkout?

Not for the checkout. No plugin can give you what OpenAI hasn’t enabled for you. The feed specification has an is_eligible_checkout flag, but it says setting a flag doesn’t complete checkout onboarding, which needs a separately enabled integration. WooCommerce’s own agentic commerce page lists Stripe’s Agentic Commerce Protocol as “Coming soon”, and says agentic checkout is coming to the Stripe extension.

A plugin that only exports a feed can still save you work, but you need OpenAI’s approval to send it anywhere. Check it against the list above before you trust it, especially regular prices and “Any” variations. The same caution applies to Google’s side, which I went through in UCP on WooCommerce. And WooCommerce’s MCP support is a different thing again: it lets an assistant help run your store, not sell to shoppers.

How do I see what ChatGPT sends to my store?

Look for ChatGPT as a source in GA4, using the setup in How to track AI assistant traffic in GA4. ChatGPT tags many of its links with utm_source=chatgpt.com, though that post explains why the tag can’t be fully trusted. If you get a feed approved, OpenAI’s best practices guide suggests adding your own parameter such as utm_medium=feed to product URLs, and keeping tracking parameters consistent between snapshots.

What should a WooCommerce store do before Black Friday?

Fix access and product data, which help whether or not your application comes through. This is the order I’d follow:

  1. Run the two commands above against your best-selling product. It worked if robots.txt doesn’t disallow OAI-SearchBot and the server answers 200.
  2. View the source of that product page while logged out. It worked if the price and stock status are in the HTML, not only added later by JavaScript.
  3. Run the script on staging against one variable product. It worked if every option a shopper can buy has its own row with no blanks.
  4. Fill in missing brands and regular prices. It worked if a second run of the script is clean and your product list shows a brand on each product.
  5. Count your purchasable variations, because OpenAI’s form asks for your unique SKU count, then apply if you sell in the US. It worked if the form is submitted.

Black Friday is November 27, and I wouldn’t add anything to a live checkout between now and then. Do the five steps, leave production alone, and look again after the holidays, when OpenAI’s merchant portal and the Stripe extension may have moved on.

4 questions about selling through ChatGPT from WooCommerce, answered

Can customers pay inside ChatGPT for WooCommerce products?

No. OpenAI moved away from Instant Checkout in March 2026, so shoppers discover products in ChatGPT and finish the purchase on your own website.

Do I need a product feed to appear in ChatGPT?

No, a feed is optional, and OpenAI says it only gives you more control over how products appear. ChatGPT's crawler, OAI-SearchBot, needs access to your site, but that is not a promise of placement.

How do I apply to send my WooCommerce product feed to OpenAI?

Apply through OpenAI's merchants page, where applicants go on a waitlist. Shopify and Etsy stores are already integrated, but WooCommerce stores have to apply like anyone else.

Why does my WooCommerce variation data need fixing for ChatGPT?

OpenAI's feed wants one row per variation, the regular price, its own stock values and a brand. WooCommerce's active price, "Any" attributes and unset brands can all produce wrong or rejected rows.

Read next