E-commerce

WooCommerce Stock Not Updating? Fixing Stock That Does Not Reduce, Wrong Quantities and Out of Stock Errors

WooCommerce stock not updating after orders, or showing wrong quantities? Fix stock settings, order statuses, variations, caching, sync plugins, cron.

WooCommerce Stock Not Updating? Fixing Stock That Does Not Reduce, Wrong Quantities and Out of Stock Errors
On this page
  1. Quick fix: try these first
  2. When WooCommerce reduces stock
  3. WooCommerce stock not updating: the common causes
  4. Symptoms and where to look
  5. Correct the counts after fixing the cause
  6. Quick check: after the fix
  7. When to get help
  8. FAQs
Key takeaways
  • WooCommerce reduces stock only when stock management is on and an order reaches a status that triggers it, so most cases come down to settings, order statuses or a payment gateway that never confirms.
  • Check the global and product stock settings, how the order was created and its status, variation-level stock, then sync plugins, caches and scheduled tasks.
  • If stock is synced with Tally, a POS or a marketplace, decide which system is the source of truth and stop two systems from writing to the same product.

If WooCommerce stock is not updating, the store is not reducing (or restoring) quantities when orders change. The usual causes are stock management being off for the product, orders that never reach a status that reduces stock (for example payments stuck in Pending), stock set on the parent product instead of the variations, or a sync plugin or cache overwriting the numbers.

Work through the checks below in order; the first three fix most stores.

Quick fix: try these first

  1. Go to WooCommerce, Settings, Products, Inventory and confirm "Enable stock management" is ticked.
  2. Edit the product, open the Inventory tab and confirm "Track stock quantity" (Manage stock) is on, with a number entered.
  3. For variable products, check stock on each variation, not just the parent.
  4. Open a recent order: if it is Pending payment, stock has not been reduced yet. Look at the order notes for "Stock levels reduced".
  5. Clear the page cache and check the product in a private window.

When WooCommerce reduces stock

Understanding the timing solves half of these problems. WooCommerce reduces stock when an order moves to Processing, On hold or Completed, which normally happens when payment is confirmed or a cash on delivery or bank transfer order is placed. It writes a note on the order such as "Stock levels reduced". When an order is cancelled or refunded with restock ticked, it adds stock back.

Pending payment orders hold stock for a limited time (the "Hold stock" setting, 60 minutes by default) and then cancel, returning the stock. If that setting is empty, unpaid orders never release stock. Our WooCommerce inventory and stock management guide covers every setting in detail.

WooCommerce stock not updating: the common causes

1. Stock management is off

Global stock management can be off, or the product may have "Track stock quantity" unticked and only a stock status (In stock or Out of stock). Without a quantity, there is nothing to reduce. Turn it on and enter the real count.

2. Orders stay in Pending payment

If the payment gateway does not send its confirmation back to the store, orders stay Pending even when the customer paid, so stock is not reduced. This is common with Indian gateways when webhooks or callback URLs are wrong, or when a firewall blocks them. Fix the gateway first; see fixing payment gateways that leave orders pending.

3. Manually created or edited orders

Orders created in the admin do not always reduce stock automatically. Adding items to an existing order also may not. In newer WooCommerce versions, changing quantities in an order offers to adjust stock, but older orders and some plugins skip this. Check the order notes, and adjust stock manually if needed.

4. Variations versus the parent product

If stock is managed at the parent level, all sizes and colours share one number. If each variation has its own stock but the parent also has "Manage stock" on, it can get confusing. Decide on one approach. Most clothing and footwear stores need per-variation stock; see setting up WooCommerce variations.

5. Backorders and stock status rules

If backorders are allowed, stock can go below zero and the product stays purchasable, which looks like stock not updating. The "Out of stock threshold" also decides when a product flips to Out of stock.

6. Sync plugins overwriting stock

Stock sync with Tally, a POS in your shop, a marketplace or a supplier feed can overwrite WooCommerce quantities on a schedule. If the store reduces stock after an order and the sync later writes back the old number, stock appears not to update. Pick one source of truth, sync in one direction where possible, and check the sync logs. Stores with several suppliers or a physical shop have this problem most often.

A simple rule helps: if the shop counter sells from the same stock, the POS should reduce WooCommerce stock as each bill is made, and WooCommerce orders should reduce the POS stock in return. A nightly full overwrite in either direction is where counts go wrong, because every sale between two syncs is lost. If a two-way sync is not possible, keep a small buffer, for example by setting the out of stock threshold to 1 or 2, so the website stops selling just before the real shelf is empty.

Also watch for product matching. Sync tools match products by SKU. If a SKU is missing, duplicated or different between systems, that product silently stops syncing while others work. Export your products, sort by SKU and fix blanks and duplicates before blaming the plugin.

7. Caching shows old stock

The stock count may be correct in the admin but the product page is cached, so shoppers see "5 in stock" after it sold out. Purge the product page after stock changes, or let your cache plugin's WooCommerce integration do it, and exclude cart and checkout from caching. If the add to cart button then fails, see WooCommerce add to cart not working.

8. Scheduled tasks not running

Cancelling unpaid orders, imports and some sync plugins rely on WP-Cron and Action Scheduler. If they stop, held stock is never released and scheduled syncs never run. Check WooCommerce, Status, Scheduled Actions for failed or past-due tasks.

9. Plugin conflicts and custom code

Checkout plugins, order editors, custom snippets and some multi-vendor or bundle plugins change how stock is reduced. If stock works on a default theme with only WooCommerce active on staging, add plugins back one at a time. See how to find a plugin conflict.

Symptoms and where to look

SymptomLikely causeCheck
No order reduces stockStock management offInventory settings, product Inventory tab
Only online payments fail to reduceOrders stuck in PendingGateway webhooks, order notes
One size sells out but others changeParent versus variation stockVariation stock fields
Stock goes back up laterSync plugin overwritingSync logs, schedule
Admin correct, shop wrongPage cacheCache purge rules
Unpaid orders never release stockHold stock empty or cron brokenHold stock setting, Scheduled Actions

Correct the counts after fixing the cause

Once the cause is fixed, do a physical count, update quantities (a CSV export and import works for large catalogues), and place a test order with cash on delivery to confirm the order note says stock was reduced. Then cancel it and confirm stock returns.

It also helps to make stock changes traceable. The order notes show reductions and restocks, and some inventory plugins keep a stock history per product showing who or what changed the number and when. When a count is wrong again, that log tells you straight away whether an order, a staff edit, an import or a sync caused it. Give staff the Shop Manager role rather than Administrator, and agree who is allowed to edit quantities; a simple order management workflow sets this out for small teams.

Add this test to your routine with the WooCommerce maintenance checklist.

Quick check: after the fix

  1. In WordPress, open WooCommerce > Settings > Products > Inventory and check stock management is on.
  2. Place a test order and check stock goes down.
  3. Check WooCommerce > Status > Scheduled Actions for failed actions.

If you want to keep selling while stock is at zero, set it up deliberately; see WooCommerce pre-orders and backorders.

When to get help

If stock is synced with other systems or the cause is in a gateway or custom code, fixing it safely usually needs a developer and a staging copy. A WooCommerce developer can trace where quantities change, WordPress maintenance keeps updates and scheduled tasks healthy, and you can hire a WordPress developer in India through Samverse for a one-off fix. You can also send the details through the contact form.

FAQs

Why is WooCommerce stock not updating after an order?

Stock management is off for the product, or the order has not reached Processing, On hold or Completed. Check the order notes for "Stock levels reduced".

Why does WooCommerce not reduce stock for pending orders?

Pending payment orders only hold stock for the hold time. Stock is reduced when payment is confirmed. If paid orders stay pending, the gateway callback is failing.

Why is my WooCommerce product out of stock when stock is available?

The stock status is set manually, the variation has zero stock, the out of stock threshold is higher than the quantity, or a cached page is showing an old status.

How do I fix WooCommerce variation stock not updating?

Turn on stock management for each variation and enter quantities there, and make sure the parent product is not also managing a shared stock number.

Can a sync plugin cause WooCommerce stock to be wrong?

Yes. If Tally, a POS or a marketplace writes quantities back on a schedule, it can undo reductions. Choose one source of truth and check the sync logs.

Does WooCommerce restore stock when an order is cancelled?

Yes, when an order is cancelled, or refunded with restock selected. If it does not, check the order notes and look for a plugin or custom code that changes stock handling.

Need help with your website?

I'm a freelance WordPress developer building fast, SEO-friendly websites since 2020. Tell me what you need and I'll reply with a plan and a fixed quote, usually within 24 hours.

Found this useful? Share it:
Contact

Let's build your next website

Available for freelance projects, agency white-label work and long-term maintenance. Feel free to pass this along to your team or company.

I reply within 24 hours, usually the same day. Your details are emailed to me, then WhatsApp opens so we can chat right away.

Chat now