Why do products show "out of stock" when I actually have them?
A practical guide to why your shop shows "out of stock" on items you physically have, and how to fix the inventory sync and settings.
The product is sitting in your warehouse, you can see it on the shelf, but your online shop says "out of stock" and the customer can't buy it. It's one of the most frustrating e-commerce problems, because you lose sales without even noticing — the customer simply leaves.
The good news: in almost every case this isn't a mysterious glitch, but a combination of settings and inventory logic doing exactly what they were told to do. Once you understand where it comes from, it takes minutes to fix. In this article I'll walk through the real causes, in the order worth checking, plus how to stop it happening again.
Cause #1: the quantity hit zero (or dropped below your threshold)
The most common explanation is also the most mundane: the system genuinely thinks you have zero units. This happens for reasons that have nothing to do with what's physically in your warehouse:
- You enabled "manage stock" and the quantity stayed at 0, because it was never updated after your last restock.
- You set a low-stock threshold, and below a certain count the product is automatically flagged as sold out.
- Paid orders automatically reduced stock, but you never added the newly arrived goods back in.
Check the exact quantity in the product record first, not just the displayed status. If it says 0 or a small number, that's your problem — enter the real quantity. If you don't want to count every unit, you can turn off stock management and set the product manually to "in stock".
Variants: the product "exists", but the size/color doesn't
If you sell products with variants — sizes, colors, flavors — watch out: stock status is calculated per variant, not per product. A T-shirt can show "out of stock" simply because the variant displayed by default (say, size M) is at zero, even if you have dozens in L and XL.
Worth checking:
- Each variant has its own quantity and its own status — open the variations list and look at each one.
- A variant may have been accidentally set to "manage stock" with 0, while the rest are "in stock".
- If every variant is sold out, the parent product automatically becomes sold out.
Often the customer sees "out of stock" only because the first variant in the list is empty, even though the product is available in other sizes.
Reserved stock: unpaid orders "holding" the goods
Many platforms temporarily reserve stock the moment someone adds a product to the cart or starts an order, so the same unit isn't sold twice. The trouble starts when orders stay unpaid ("pending payment") and don't cancel automatically.
That's how you end up with goods physically in hand, but the system treating them as "promised" to orders that will never complete.
What to do:
- Look for orders stuck in "pending payment" status older than a few days and cancel them — the stock is released.
- Set an automatic cancellation window for unpaid orders (most shops have this in settings).
- Check whether "hold stock" is enabled and for how many minutes — too long a window needlessly locks up goods.
Syncing with the warehouse, accounting software, or marketplaces
If you use inventory software (an ERP, an accounting app) or sell in parallel on a marketplace, your website's stock may be controlled by an external sync. In that case the product record on the site is just a mirror — anything you enter manually gets overwritten at the next sync.
Signs this is the cause:
- You change the quantity, it saves, and a few minutes later it's back to 0.
- The stock on the site doesn't match the stock in your accounting software.
- A product sold on another channel "consumed" all the shared stock.
Here you don't fix it on the site, but at the source feeding the data: check the product mapping (the SKU must be identical in both systems), the stock in the software, and whether the new product is perhaps missing from the sync altogether.
Cache and display: stock is right, but the customer sees the old status
Sometimes stock is perfectly correct in the admin panel, but the visitor still sees "sold out". The cause is caching: the page served to the customer is an old version, saved before you restocked.
What to check:
- Open the product in a private (incognito) window — if it shows correctly there, it's clearly a cache issue, not a stock one.
- Clear the cache from your cache plugin or your hosting / CDN provider.
- If you have a CDN (Cloudflare, etc.), it may keep the old page independently of the site.
That's the good news: your data is correct, you just need to force a refresh. It's also why it's worth always testing as a real customer would, not just from the admin.
If you've been through all of these and still can't tell where it's coming from, message us on WhatsApp at MPO Web Studio — we'll look at your shop together and tell you exactly which setting is playing tricks. We work remotely, nationwide.
Frequently asked questions
I re-entered the quantity, but it still says "out of stock". Why?+
Most likely it's caching (check in an incognito window whether it shows correctly) or an external sync overwriting what you save. If the value goes back to 0 on its own after a few minutes, an inventory or accounting system is definitely overwriting it.
How do I tell if the problem is with a variant and not the product?+
Open the product record and go into the variations list (sizes/colors). Look at each variant's quantity and status separately. If the default-displayed variant is at 0, the customer sees "out of stock" even if other sizes are available.
What is "reserved stock" and how do I release it?+
The platform temporarily locks goods for in-progress orders so it isn't sold twice. Unpaid orders older than a few days hold goods for nothing — cancel them manually and enable automatic cancellation of unpaid orders.
Can I show a product as available even with 0 in stock?+
Yes, most platforms have a "allow backorders" option, or you can turn off stock management and set the product manually to "in stock". Useful for made-to-order items, but use it carefully so you don't sell what you don't have.
Could it be caused by the theme or a plugin?+
Yes, though more rarely. An inventory plugin or a theme with its own display logic can show the wrong status. Test by temporarily disabling stock plugins; if you'd rather not break anything on the live shop, ask us to check on a copy.
7 mistakes that drive clients away from your website
Leave your email and get the guide right here, instantly. No spam.
Want to see what your business's website could look like?
Message us on WhatsApp and we'll build you a free demo website with your business name on it. See it first, then decide — no strings attached.