Why inventory problems are hard to diagnose without Loupely #
WooCommerce inventory issues are some of the most stubborn failures to debug through the admin interface alone, because what you see in the product editor and what WooCommerce is actually writing to (and reading from) the database are often different. A product can show 6 in stock in the editor while the cart says 1. Stock can deduct on an order that shows as failed. A bulk update can appear to succeed while nothing actually changed in the database. Loupely’s WooCommerce Save Pipeline tracing was built specifically for this class of failure.
The stock count is wrong and doesn’t match what you set #
You update stock in the product editor, save, and the cart still shows a different number. Or the Loupely Score dashboard shows a stock discrepancy. The most common cause is that a save is triggering the WooCommerce stock update hook but a conflict somewhere in the hook chain is either preventing the write from completing or a second plugin is overriding the value immediately after the write.
To capture this with Loupely: open the product, update the stock quantity, and immediately run a Loupely diagnosis before navigating away. The WooCommerce Save Pipeline capture will show whether the stock update hook fired, whether the database write completed, and if there were any PHP Errors during the process. A Null Result here (no pattern matched) with a completed save pipeline suggests the database write succeeded and the discrepancy may be a caching issue: clear all caches and check the stock number again.
Stock is being deducted on cancelled or failed orders #
An order fails at payment but stock still goes down. This is usually a race condition or a configuration issue in WooCommerce’s stock management settings. Check WooCommerce > Settings > Products > Inventory: the “Hold stock (minutes)” setting controls how long WooCommerce reserves stock for unpaid orders before releasing it. If this is set very low or zero, stock may not be properly released after a failed payment.
Loupely’s capture during a failed checkout will show whether the stock deduction hook fired before or after the payment failure, which tells you whether the issue is timing or configuration.
Inventory submitted but didn’t save #
You see the success message after saving a product, but the stock number reverts when you reload the page. This is the specific failure pattern that Loupely was built around. The save appeared to complete but the write to the database didn’t finish. The WooCommerce Save Pipeline trace will show exactly where in the sequence the failure occurred, whether that’s a timeout during the write, a PHP error partway through the hook chain, or a REST API response that indicated success but didn’t actually complete the database operation. See WooCommerce Save Pipeline Events for how to read this trace.
