WooCommerce Order Statuses Explained: What Each One Means
What does each WooCommerce order status mean, where does each payment method start an order, and what do you do by hand? See every status on real orders, then fix three common mistakes.
Watch the tutorial
This tutorial goes through every WooCommerce order status on a demo coffee shop, with only stock WooCommerce. We place real orders and watch how each one moves: a card payment that is approved, declined or never confirmed, bank transfer and cash on delivery, and virtual and downloadable products against physical ones. We look at which emails each status sends, how to change a status by hand, how refunds work, what each status does to your stock, and the Draft and Trash statuses. Then we go through three common mistakes. No code needed.
Also on YouTube (opens in a new tab)
Read the transcript
Every WooCommerce order has a status. It tells you where the order is, and what should happen next. In this tutorial, we'll go through every status, how an order moves from one to the next, what each one emails, and what it does to your stock. Then the mistakes that catch people out. It's all stock WooCommerce, on our demo coffee shop, and we tested every step in a real store.
Here's the map. Pending payment means the order is waiting for payment. Processing means it's paid, and waiting for you. On hold means you're waiting for something, usually a bank transfer. Completed means you've delivered it. Cancelled, failed, and refunded are the three ways a sale can fall through. Draft and trash come at the end.
You'll find them under WooCommerce, Orders. Every order has a colored badge, in the Status column. The links above the table filter by status, with a count for each. Click Processing, and you see only the orders that are waiting for you.
Let's follow an order from the start. A customer chooses to pay by card, and is sent to the card company's payment page. This demo card payment stands in for a payment plugin, like Stripe or PayPal. The customer closes the page without paying. In the admin, the order is already there, as Pending payment. Pending payment means no payment has been confirmed yet. No emails go out, and your stock is not reduced.
Now a customer who pays. The card goes through, and the order arrives as Processing. Processing means it's paid, and waiting for you to pack and ship it. WooCommerce takes the stock off, emails the customer, and sends you a new order email.
Bank transfer is different. The customer places the order, but no money has arrived yet. So the order is On hold. It's waiting for something outside the store, like a bank transfer or a check. Your stock is already taken off, so the coffee is set aside for this order. When the money arrives in your bank, open the order, and change the status to Processing. From there, it moves on like any paid order.
To sum up, the payment method decides where an order starts. Bank transfer, and check, start On hold. Pay when you collect, and a card payment that goes through, start at Processing. A declined card is Failed. A card payment that's never confirmed stays Pending payment.
Virtual products change the story. This is a digital Brewing Guide, a PDF, for $9. A customer pays by card, and the order is Completed straight away. There's nothing to ship, so WooCommerce completes it for you. But virtual on its own isn't enough. A gift card is virtual, but it has no download, so it waits at Processing. The rule is this. When every item is virtual and downloadable, the order completes itself. Anything else waits for you.
For physical orders, Completed is your job. It means you've shipped the order, or handed it over. Open the order, choose Completed in the Status box, and click Update. The customer gets an email, and the order leaves your Processing list. Every change is written in the order notes. You can pick any status the same way. For several orders at once, tick them in the list, and use Bulk actions.
Failed means a payment was tried, and didn't go through. Here, the card is declined. The customer sees an error, and the order is saved as Failed. You get an email about it, and so does the customer. The order isn't lost. In My account, a failed order has a Pay button, so the customer can try again.
Cancelled means the order won't go ahead. You can cancel one yourself, from the Status box. The items go back into stock, and you get a cancelled order email. The customer isn't emailed by default. Unpaid orders can cancel themselves. Open Settings, Products, then Inventory. Hold stock sets how many minutes an unpaid order is kept. After that, WooCommerce cancels any order still on Pending payment. It never touches orders that are On hold. It only works when Manage stock is turned on.
To refund, open a paid order, and click Refund. Enter a quantity for each item you're refunding, and keep Restock refunded items ticked if the coffee is coming back. You can refund by hand, or through the payment gateway, if it supports refunds. Refund one bag, $18, and the order stays Processing. Then refund the rest, $24, and the status changes to Refunded by itself. Every refund emails the customer.
What does each status send? Pending payment sends nothing. On hold and Processing email the customer, and tell you about the new order. Completed emails the customer. Refunded emails the customer too, for a full refund or a partial one. Cancelled emails only you. Failed emails you, and the customer. To change what these emails say, or switch one off, see our video on customizing WooCommerce emails.
Stock follows the status. With Manage stock on, this shop has twenty bags of Sunrise Blend. Move an order from Pending payment to Processing, and the stock drops by one. On hold and Completed take stock off too. Pending payment hasn't taken any yet. Cancel the order, and the stock goes back. Failed orders give stock back as well. Refunded does not, unless you tick Restock when you refund.
Two more you might spot. Draft orders come from the block checkout, at the moment a customer places an order. A draft isn't a real order. It stays out of the All list, and WooCommerce clears out old ones by itself. Trash holds orders you've deleted. Open the Trash tab, and you can restore an order, or delete it for good.
Mistake one. Orders stuck on Pending payment. Usually, the customer started to pay, but the payment confirmation never reached your store. Before you do anything, check your payment provider. If the money is there, set the order to Processing yourself. If it isn't, cancel it. If it keeps happening, look at the notification settings of your payment plugin.
Mistake two. Leaving shipped orders on Processing. Nothing completes a physical order for you. So the customer never gets the completed email, and your Processing list fills up with orders you've already sent. Tick the ones you've shipped, choose Change status to completed, and click Apply. The list is clean again, and every customer gets their email.
Mistake three. Using Refunded to send the money back. Choose Refunded in the Status box, and WooCommerce records a full refund, but sends no money. It even adds a note, telling you to refund through your payment gateway. To pay the customer back, use the Refund button instead.
That's order statuses. The payment method sets where an order starts. Processing and On hold wait for you, and Completed is when it's done. Check Pending payment now and then, complete what you ship, and refund with the Refund button. Thanks for watching.
What you will learn
- What each WooCommerce order status means and where to see it
- Which status an order starts in for each payment method, and for virtual versus physical products
- Which emails each status sends to you and to the customer (the full email setup is in our video How to Customize WooCommerce Emails)
- How to change a status by hand, and what happens when you do
- How refunds work, and why setting an order to Refunded does not send any money
- What each status does to your stock levels
- Three common mistakes: orders stuck on Pending payment, forgetting to complete orders, and using Refunded to send money
Good to know
Everything shown is stock WooCommerce (version 11.2.2 in this video) with no extra plugins, and screens may look slightly different in other versions. The card payments use a small demo payment method written for this video, which stands in for a real payment plugin such as Stripe or PayPal, so check how your own payment plugin sets statuses. Filmed on a demo shop (Ridgeline Coffee Roasters) with sample products and prices in US dollars. The voice-over is a computer-generated voice.