WooCommerce Draft Order vs. Pending Payment
Why WooCommerce Draft Orders Exist
The newer block-based checkout (and the underlying Store API it's built on) creates an order record earlier in the process than the classic checkout did, as soon as a customer starts actively filling in checkout details, to support features like saving progress and more robust cart/checkout synchronization. This draft order isn't a completed checkout attempt — it's more like a in-progress placeholder that either becomes a real Pending/Processing order once submitted, or simply gets cleaned up automatically if abandoned.
Practical Implications
- Draft orders are generally excluded from admin order lists and reporting by default, since they don't represent a genuine checkout attempt yet, avoiding cluttering the orders screen with every partially-started checkout.
- They're typically cleaned up automatically after a period of inactivity, since they're meant to be transient rather than a permanent record.
- A Pending order, by contrast, represents an actual submitted checkout attempt and is treated as a real order in reporting and the admin orders list, even before payment is confirmed.
- Custom code interacting with orders programmatically should be aware of the draft status if querying all orders, since draft orders may or may not need to be included depending on the specific use case.
What This Means Day to Day
- No action is usually needed — draft orders are meant to clean themselves up and aren't something requiring manual management.
- If building custom order queries or reports, explicitly decide whether draft orders should be included or excluded for the specific purpose.
- Don't confuse a high draft-order count with actual checkout abandonment in the same way Pending/Failed orders are typically analyzed, since drafts represent an even earlier stage.
Need help interpreting order data across the full checkout funnel? See WooCommerce fixes.