Inventory drifting from reality causes oversells.
COMMON CAUSES
Stock management not enabled, globally or on the product Orders cancelled or refunded without restocking, or restocked when they should not have been Manual edits to stock that nobody recorded Sales made in person that were never deducted A cached page showing an old stock figure Cron not running, so scheduled stock operations never execute
WHAT TO CHECK
- WooCommerce > Settings > Products > Inventory, confirming stock management is on.
- The product's Inventory tab, confirming it is enabled per product.
- The Hold stock setting, which releases stock from unpaid orders. Without it, abandoned bank-transfer orders hold inventory indefinitely.
- Whether cron is running: WooCommerce > Status > Scheduled Actions.
RECONCILING
Count the physical stock and correct WooCommerce to match, rather than trying to work out where the discrepancy came from. Then watch for a week to see whether it drifts again.
PREVENTING IT
Use SKUs, record manual adjustments, and reconcile monthly. Software drifts from reality in every shop; the question is how quickly you notice.