Customers are buying items that are VERY DEFINITELY out of stock

Topic summary

  • Ongoing issue: customers are successfully purchasing out‑of‑stock (OOS) variants even though “Continue selling when out of stock” is off and inventory tracking is on. Product pages correctly grey out unavailable sizes, yet orders still go through.

  • Inventory is updated nightly via GraphQL from a single “source of truth.” Merchant sets “available” quantity; “on hand” auto-adjusts and may desync, but they believe “available” controls purchasability.

  • Peer feedback: Historically, OOS items could be added to cart but were blocked at checkout; newer themes use JavaScript to prevent this earlier. There’s uncertainty whether express checkout buttons might bypass these checks. Timing around inventory syncs, returns, or cancellations could be involved.

  • Suggested actions: add detailed tracking (e.g., Shopify Flow) to log inventory state on every order and on inventory changes to correlate timing and cause. Commenter suspects the custom inventory sync as the likely culprit rather than Shopify allowing true OOS purchases.

  • Status: unresolved. Next steps include investigating the sync process and implementing tracking. Open questions: express checkout behavior and sync/return timing effects.

Summarized with AI on December 10. AI used: gpt-5.

Since migrating to Shopify in October we have an ongoing and pernicious issue with customers being able to buy items that are out of stock. This is awful from a customer service point of view, and it’s happening several times a week.

  • We have verified that ‘Continue selling when out of stock’ is NOT active for these products.
  • We have verified that inventory is tracked for these products.
  • We are successfully setting the available quantity of these products from our own ‘one source of truth’ stock systems, via GraphQL, every night. The ‘On hand’ quantity gets out of sync, because Shopify automatically sets the one when you set the other, even via API, but that should not matter because the available quantity is what determines whether a product can be bought or not.

So what is happening?

When you look on the product page, the size is greyed out and cannot be bought, but people are buying it somehow.

I have read through some similar posts, and while it’s possible to ‘trick’ Shopify into doing this with a crafted XHR request, I’m sure that normal punters are not doing this.

(Please do not reply with a pitch for your app etc)

Many thanks,

Gareth

Interesting.

Previously it was possible to add to cart OOS items. That would still be corrected as visitors move to checkout.
Now, most themes use JS to do that and usually the opposite happens – people can’t add to cart stuff which is in stock (due to locations not set properly), so Shopify does more checks even before getting to checkout.

I am not 100% sure whether it’s the same strict checking when buying via express checkout buttons – what’s your stats on this?

Any particular time maybe – maybe when doing your inventory syncs?
Any returns at the same time or cancellations?

Add some tracking, say with Flow to log inventory data for every order and on inventory changes – yes, a lot of data, but maybe helpful.

Frankly, I’d rather blame the inventory sync system as this is the first time I hear about possibility of buying OOS products.

Thanks. We’re digging into our inventory sync processes as part of the investigation, may well set up some tracking.

G