Skip to content

Resources

An AI assistant says your product is out of stock. It isn't. Here is why, and how to check

When ChatGPT, Gemini or another assistant tells a shopper your product is sold out while every variant is available, the cause is almost always which availability signal it read: your schema, your syndicated catalog, or one variant standing in for the whole product. Here is how to find which one, and fix it.

· 5 min read · Arve Solland

Short answer: an assistant that calls your product sold out while it is in stock has read an availability signal that does not match your inventory. There are three places that signal can come from: the Product/Offer schema in your page source, the availability field Shopify syndicates to AI channels, and the single variant a storefront tool returns when nobody asked for a specific one. Check them in that order.

Why this happens now

On 6 September 2026 a merchant posted in the Shopify Community that assistants kept calling her product out of stock when “there is no variant that is out of stock”. Her theory was that the assistant had found the words “out of stock” somewhere in the theme code. Four people replied within a day, and none of them thought the template text was the cause. They pointed at the same thing: structured availability data.

That instinct matches what we see in simulated checks. In a batch we ran on 4 September 2026 across 34 public specialist storefronts (340 questions, one shopper model, OpenAI’s GPT-5.4 mini via the API), 119 of the 186 answers that were not fully right failed on a single fact about a single product: a price, a stock state, one spec. Availability is the most common of those facts, because it is the one shoppers ask about most and the one that changes most often.

The three signals an assistant can read

1. The Product schema in your page source

Most retrievers that fetch a product page read the JSON-LD Product block and its Offer. The availability property is either https://schema.org/InStock or https://schema.org/OutOfStock. Two things go wrong here:

  • A stale or wrong value. The theme, or an SEO or review app, writes OutOfStock from a variable that does not track inventory the way you expect (for example, it reads the first variant, or a variant that was archived).
  • More than one Product block. Theme plus SEO app plus review app can each emit a Product. If one says InStock and another OutOfStock, the assistant picks one, and you do not control which.

Look at the raw source, not the browser inspector. The inspector shows the page after JavaScript has run; most retrievers see the HTML as served. Search the source for "@type": "Product" and count the blocks.

2. The availability Shopify syndicates to AI channels

Agentic Storefronts is active by default for eligible stores, and it sends each product’s “title, description, options, images, price, availability, and other key attributes” to ChatGPT, Google AI Mode and Gemini, Microsoft Copilot and Meta (help.shopify.com, read 11 September 2026). If a product is marked unavailable in that feed, an assistant using the channel will say so, whatever the page says.

You can see what is sent under Sales channels → Agentic in the admin. Products that are unpublished from the Online Store channel, priced at zero, or hidden from search engines are excluded from the catalog entirely, which an assistant may also describe as “not available”.

3. One variant standing in for the product

This is the one nobody in that forum thread mentioned, and in our checks it is the most common cause. Every Liquid storefront now exposes a set of storefront tools to browser-based agents (Shopify’s WebMCP tools, announced 5 August 2026 and on every Liquid storefront from 21 August 2026, currently limited to Chromium browsers through an origin trial). The get_product tool returns a price range and a single variant, the product’s default, unless the agent asks for a specific option. In a check on a 1,055-product accessories store in September 2026, six of nine partial answers came from exactly this: the agent read that one variant’s price or stock and reported it as the product’s. If your default variant is sold out and the rest are fine, the product is “sold out”.

The same shape shows up in our batch: fit questions (“which colour of this camera is actually available right now?”) were fully right 81% of the time, but the misses were almost all attribute-shaped, the variant the shopper wanted was never looked up.

How to check, in ten minutes

  1. Pick one product the assistant got wrong and one it got right.
  2. View source on both. Count Product blocks. Read every availability value. If the wrong product carries OutOfStock anywhere, you have found it.
  3. Check the default variant. In the admin, open the product and look at the variant listed first (Shopify treats it as the default). If it is sold out, reorder variants so an available one comes first.
  4. Check the Agentic channel view. Sales channels → Agentic → review how product data is sent. Confirm the product is included and shows as available.
  5. Ask the question in fresh sessions. Open ChatGPT, Gemini and Copilot with no history and ask, “Is [product] in stock at [store]?” Note which variant each one describes and the date. Assistants change; keep the record.
  6. Re-check after the fix. Caches on the AI side can lag by days. The Shopify help page says changes to Catalog access can take up to seven days to apply.

What fixes it

  • One correct schema block. Remove duplicate Product markup from apps you no longer need; make the remaining one derive availability from the selected variant’s inventory.
  • An available default variant. Cheap, and it fixes the storefront-tool case immediately.
  • Variant-level data agents can ask for. The deeper fix is letting an agent ask “is the 5-roll bundle in stock?” and get that variant’s answer. That is what StoreKnows’ captured-variant tool does: it publishes read-only price and stock per variant from a saved catalog copy you approve, beside Shopify’s own tools. It does not replace the schema fix; it covers the questions the schema cannot.

What this does not tell you

A simulated check runs models through their developer APIs, not the consumer apps, so it tells you what the tools return and how a model reads them, not what ChatGPT will say to a particular shopper this afternoon. And a wrong “out of stock” is a diagnosis, not yet a cost: whether it is losing orders shows up only when AI-referred sessions on that product start converting again.

Results in this article come from simulated checks run by StoreKnows on 2 and 4 September 2026 against public storefronts. Questions were answered by OpenAI’s GPT-5.4 mini, GPT-5.5 and GPT-5.6 and Anthropic’s Claude Opus 5, called through their developer APIs, not the consumer apps, and graded by a separate judge model. StoreKnows is independently developed and not affiliated with, endorsed by or sponsored by OpenAI, Google, Anthropic or Shopify.

Questions this article answers

Why does an AI assistant say my product is out of stock when it isn't?
Assistants rarely read your buy button. They read a structured availability signal: the Product/Offer schema in your page source, the availability field Shopify syndicates to AI channels, or the single default variant returned by a storefront tool. If any of those says sold out for the variant they looked at, the assistant repeats it.
Does template text like "Sold out" in my theme cause this?
Almost never on its own. Every theme carries sold-out wording in its source so it can display it when needed; retrievers do not treat inert template strings as fact. Check the structured signals first.
How do I check what an assistant sees for one product?
View the raw page source (not the inspector), find every Product schema block and read the availability value in each; then ask two or three assistants the same in-stock question in fresh sessions and note which variant they describe.