Cancelling vs. Refunding a WooCommerce Order
Why This WooCommerce Distinction Matters
Treating cancellation and refunding as interchangeable is a common mistake that can leave a customer charged for an order marked as cancelled, since cancelling alone doesn't call the gateway's refund API at all — it only changes the order's status in WooCommerce. If money genuinely needs to go back to the customer, a refund needs to be processed explicitly and separately from (or alongside) the cancellation.
When to Use Each
- Cancel when an order was never paid (still Pending or Failed), or when closing it out administratively without any money having moved — there's nothing to reverse.
- Refund when payment was genuinely captured and needs to be returned, whether fully or partially, regardless of what the order's status ends up being afterward.
- Both together is common for a paid order that's being voided entirely — refund the payment first, then update the status to Cancelled (or Refunded, which WooCommerce sets automatically after processing a full refund through its own tools) to reflect the final state accurately.
- Checking the order's actual payment status before choosing an action avoids the mistake of cancelling a paid order and forgetting the refund step entirely.
Doing This Correctly
- Check whether the order was actually paid before deciding which action(s) are needed.
- Use WooCommerce's built-in refund action on the order if money needs to be returned, rather than just changing status.
- Cancel the order separately if it also needs to be marked as voided/not-to-be-fulfilled.
Need help auditing order/refund handling for accuracy? See WooCommerce fixes.