Initial assessment without passwords Quote before intervention One accountable specialist from start to finish

WooCommerce Critical

WooCommerce Stock Not Reducing After Payment

Stock reduces on specific order transitions. Identify whether payment, status, product management or custom hooks skipped the operation.

What matters first: A paid order can leave stock unchanged when inventory management is disabled, the order never reaches a reducing status, payment completion is not processed or code restores stock.

Why paid orders can leave stock untouched

Manual stock edits hide which transition failed and can make overselling worse.

Build a payment-to-stock timeline

  • Record order status history, payment event and stock before/after.
  • Confirm Manage stock is enabled at product or variation level.
  • Inspect order notes and gateway logs for payment completion.
  • Search custom hooks that reduce, restore or synchronise inventory.

Four failure points worth checking first

  • Order state never advanced: The gateway payment did not trigger processing/completed.
  • Variation mismatch: Stock is managed on a variation different from the purchased line.
  • Custom inventory integration: An ERP or plugin overwrites WooCommerce quantities.
  • Hook removed or duplicated: Custom code changes default reduction behaviour.

Restore the stock-reduction path safely

  1. Repair the authoritative payment-to-order transition.
  2. Align product and variation stock-management settings.
  3. Make external inventory sync explicit and idempotent.
  4. Reconcile affected orders before applying controlled stock corrections.

Order state or product-level stock ownership?

If payment is confirmed but the order never entered processing or completed, trace the gateway-to-order transition first. If the order state is correct but the purchased variation still holds its old quantity, inspect whether stock belongs to the parent product, the variation or an external inventory system. Those are different branches; mixing them usually creates manual stock drift.

When the stock issue follows a successful gateway charge, correlate it with Stripe webhook order-status failures and PayPal payments that do not update the WooCommerce order. Both can leave a real payment outside the order transition that normally triggers stock reduction.

Avoid manual stock corrections too early

Do not bulk reduce stock from paid orders without checking cancellations, refunds and previous manual changes.

Prove one payment changes inventory once

  • A controlled paid order reduces the intended SKU once.
  • Cancellation or refund restores stock according to policy once.
  • WooCommerce and external inventory agree.

Close the incident only after two controlled paid orders reduce the intended SKU exactly once, cancellation or refund restores stock according to policy, and WooCommerce agrees with the external inventory ledger.

WP REPAIR INCIDENT STANDARD

Safe intervention sequence

Manual stock edits hide which transition failed and can make overselling worse.

WP RepairDiagnostic model
1Browser2Session3Gateway4Order
Follow the chain until you find the first point that stops behaving as expected.
  1. Record order status history, payment event and stock before/after.
  2. Confirm Manage stock is enabled at product or variation level.
  3. Inspect order notes and gateway logs for payment completion.
  4. Search custom hooks that reduce, restore or synchronise inventory.

What must be verified

  • A controlled paid order reduces the intended SKU once.
  • Cancellation or refund restores stock according to policy once.
  • WooCommerce and external inventory agree.

ABOUT THIS SYMPTOM

Frequently asked questions about this guide.

Does manually editing stock quantities fix the root cause?+

No. Manual edits only hide which order-status transition failed to reduce inventory, and can make future overselling worse because the underlying gap keeps triggering the same symptom on new orders.

Can stock fail to reduce even when Manage stock is enabled?+

Yes. Manage stock can be enabled on the product but disabled or mismatched on the specific variation that was actually purchased, so the parent product setting alone does not guarantee the reduction happens.

Does an ERP or inventory plugin ever cause this instead of WooCommerce?+

Yes. A custom inventory integration or ERP sync can overwrite WooCommerce's quantities right after they update, making it look like stock never reduced when in fact it reduced and was then reset externally.

Is it safe to just cancel and re-place the affected orders to force a correction?+

Not without reconciling first. Cancellations and refunds have their own stock-restoration rules, and bulk-correcting stock on paid orders without checking previous manual changes and refund history can introduce new discrepancies instead of fixing the original one.

BEFORE YOU SEND THE REQUEST

Frequently asked questions.

Do you ask for passwords in the form?+

No. The public form never requests access. Secure credentials are requested only after the scope and quote are approved.

Who reviews the incident?+

The request goes to Jordi Ensenyat, founder of Code Barcelona and a WordPress specialist with more than 15 years of experience.

Is anything changed before the quote?+

No. Visible symptoms and scope are reviewed first. Intervention begins after approval and with a rollback path prepared.

Do you work internationally?+

Yes. WP Repair handles WordPress and WooCommerce incidents in English and Spanish through a remote service.

Assess my incident↗