If WooCommerce stock is not updating, customers may see products as available when they are sold out, or products may show out of stock when you still have them.
That can lead to overselling, cancelled orders and unhappy customers.
The first thing to check is whether WooCommerce is actually managing stock for the product. Then check whether another plugin, marketplace or external system is also trying to control the same number.
WooCommerce stock not updating: what to check first
| Problem | Check first |
|---|---|
| Stock never goes down after a sale | Global stock management and product stock settings |
| Stock goes down too early | Pending orders and hold-stock settings |
| Stock returns unexpectedly | Failed/cancelled orders |
| Only one variation is wrong | Variation-level stock |
| Numbers change back after editing | External inventory sync |
| Front end shows old stock | Cache or stale product data |
1. Make sure stock management is enabled
Go to:
WooCommerce → Settings → Products → Inventory
Check that stock management is enabled if you want WooCommerce to track quantities automatically.
If global stock management is off, individual product quantities may not behave the way you expect.
2. Check the product’s own inventory settings
Open the product.
Check:
- whether stock management is enabled for that product;
- stock quantity;
- stock status;
- whether backorders are allowed;
- low-stock threshold;
- whether stock is managed at product or variation level.
A product can show “In stock” without WooCommerce tracking a numeric quantity if stock management is not enabled for that item.
3. Variable products need their own check
For a product with sizes or colours, the parent product and each variation can behave differently.
Open the variations and check the affected one.
For example:
- Small may have 8 left;
- Medium may have 0;
- Large may have 3.
If the wrong variation is controlling stock, the customer may see an option as unavailable even though another version of the product is still in stock.
4. Understand when WooCommerce reduces stock
Stock behaviour depends on the order and payment flow.
WooCommerce can reserve or reduce stock during the order process so two customers do not buy the same final item.
Check the order notes to see when stock changed.
If an order is stuck in an unexpected status, use the WooCommerce order status guide before manually changing inventory.
5. Check Hold stock settings
WooCommerce can temporarily reserve stock for unpaid orders.
The Hold stock setting controls how long an unpaid Pending payment order keeps that stock reserved.
If the hold period is too long, products may appear unavailable even though the customer abandoned checkout.
If it is too short, stock may be released while a genuine payment is still being completed.
Choose a time that suits your payment process.
6. Check failed and cancelled orders
When a payment fails or an order is cancelled, WooCommerce may return reserved stock.
That is normally correct.
If stock seems to “come back”, open the order and check:
- status history;
- payment failure;
- cancellation;
- order notes;
- whether stock was reduced and then restored.
7. Check whether a customer was actually charged
If payment succeeded but WooCommerce thinks the order failed, stock may be returned incorrectly.
Compare the order with the payment provider before changing quantities manually.
The Stripe payment guide explains how payment and order status can get out of sync.
8. Check external inventory systems
Many stores connect WooCommerce to:
- EPOS systems;
- marketplaces;
- warehouse software;
- ERP systems;
- dropshipping platforms;
- supplier feeds;
- Google Sheets or stock-sync tools.
If you edit stock in WooCommerce and it changes back a few minutes later, an external system may be overwriting it.
9. Decide which system is the source of truth
This is essential when stock lives in more than one place.
Choose which system owns the final number.
For example:
- WooCommerce is the master and pushes stock elsewhere;
- warehouse software is the master and updates WooCommerce;
- EPOS is the master for physical and online sales.
If two systems both think they are in charge, stock can jump backwards and forwards.
10. Check scheduled sync jobs
Some inventory plugins update stock on a schedule.
If the scheduled task stops running, quantities may become old.
Ask your developer or host to check:
- scheduled actions;
- cron jobs;
- failed sync logs;
- API errors;
- authentication problems.
11. Check SKU matching
External stock systems often match products by SKU.
If two products share the same SKU, or a SKU changed in one system but not another, the wrong product may be updated.
Check affected items for:
- missing SKU;
- duplicate SKU;
- wrong variation SKU;
- extra spaces;
- old supplier code.
12. Check cache if the admin stock is right but the shop page is wrong
If WooCommerce admin shows 5 in stock but customers still see “Out of stock”, the stored number may be correct while the front end is stale.
Clear:
- page cache;
- server cache;
- CDN cache;
- WooCommerce transients where appropriate.
Then retest as a logged-out customer.
13. Check product visibility after stock changes
WooCommerce can be configured to hide out-of-stock products from the catalogue.
If a product briefly hit zero stock, it may disappear from the shop until the front end refreshes correctly.
If products remain missing after stock is restored, use the products-not-showing guide.
14. Check bulk edits and imports
CSV imports and bulk editors can overwrite stock.
If many products changed at once, check whether someone recently:
- imported a product CSV;
- ran a bulk edit;
- updated variations;
- synced supplier data;
- changed a stock plugin.
15. Be careful with manual stock corrections during live sales
If the underlying sync is still broken, changing 100 products manually can be wasted effort because the next sync may overwrite them again.
Fix the source first, then correct the numbers.
16. Test one full order after the fix
Use a product with known stock.
For example:
- Set stock to 5.
- Place a test order for 1.
- Confirm the order status.
- Check stock becomes 4 at the expected point.
- Cancel/refund if needed.
- Confirm stock returns only when it should.
This proves the whole workflow.
17. Add stock checks to maintenance
Inventory errors can continue quietly.
Add regular checks to your WooCommerce maintenance routine, especially if you use external systems.
WooCommerce stock troubleshooting checklist
- Check global stock management.
- Check product stock settings.
- Check variation stock.
- Check order status and notes.
- Check Hold stock duration.
- Check failed/cancelled orders.
- Check external inventory integrations.
- Check SKU matching.
- Check scheduled sync jobs.
- Clear cache if admin and front end disagree.
- Run a controlled test order.
Prevent overselling with an inventory ownership map
If you sell in more than one place, write down which system owns stock and how updates flow.
| System | Role |
|---|---|
| WooCommerce | Online sales/storefront |
| EPOS | Physical-shop sales |
| Warehouse/ERP | Master inventory |
| Marketplace | External sales channel |
Then define one master. Every other system should receive or send updates according to that decision.
Check stock under real timing conditions
Some problems appear only when two customers buy close together or when a marketplace sync is delayed. If overselling is the concern, test simultaneous or closely timed orders on staging where practical.
Review low-stock and out-of-stock notifications
WooCommerce can notify staff when inventory falls below configured levels. Make sure those email recipients still exist and the thresholds make sense for your products.
Keep a manual recovery plan
If the stock sync fails during a busy day, know which system staff should trust temporarily, how to pause affected products and how to reconcile orders later. A plan is safer than editing numbers in several systems at once.
Separate “available to sell” from “physically on the shelf”
A warehouse may show 10 units physically present while WooCommerce shows 8 available because two units are reserved for unpaid or processing orders. Both numbers can be correct.
Decide which number staff need for each job and avoid manually overriding reserved stock without checking orders.
Watch high-demand products more closely
Inventory problems become more expensive when a product sells quickly. For launches and promotions, monitor:
- stock level before the campaign;
- orders per minute/hour;
- failed payments;
- marketplace sync delay;
- backorders.
Audit duplicate and missing SKUs
SKUs are often the bridge between WooCommerce and external stock systems. Run a periodic check for duplicates and blanks, especially after imports or catalogue migrations.
Do not let cache hide a stock fix
After correcting the number, confirm the product page and category page show the new state while logged out. Clear the appropriate cache so customers do not continue seeing “Out of stock” after inventory has been restored.
Record manual stock adjustments
If staff manually add or remove stock, record why. Repeated unexplained adjustments can reveal theft, fulfilment mistakes, sync delays or a broken integration.
Check refunds, returns and damaged stock separately
A refund does not always mean an item is physically available to sell again. A returned product may be damaged, missing or awaiting inspection.
Make sure staff know when a refund should restore WooCommerce stock and when inventory needs a manual decision.
Keep safety stock where the business needs it
If online stock sync has a delay, some businesses keep a small buffer so the final unit is not sold simultaneously in-store and online. The right buffer depends on sales volume, sync speed and product value.
Reconcile WooCommerce with physical inventory
Even a good sync can drift over time. Schedule periodic stock counts for important products and compare them with the master system. Repeated differences can reveal an integration or fulfilment issue before overselling becomes routine.
WooCommerce stock FAQs
Why is WooCommerce stock not reducing after an order?
Check whether stock management is enabled, whether the order reached the status that triggers stock changes, and whether another inventory system controls the quantity.
Why does WooCommerce stock keep changing back?
An external inventory or marketplace sync may be overwriting the number you enter manually.
Why is a product out of stock when I still have items?
Check variation stock, reserved stock from Pending payment orders, backorder settings and whether the front end is showing cached data.
Can pending orders reduce available stock?
WooCommerce can reserve stock for unpaid orders for the configured Hold stock period to reduce overselling risk.
Why did stock return after a failed payment?
That can be normal if WooCommerce had reserved or reduced stock and then returned it after the order failed or was cancelled.
