Magento 2 Order Status: Full List, States & How to Change Them
-
Anton Gurtovoi
- Magento 2
- Updated: Jul 3, 2026
- 7 min read
Updated with the full order-status workflow and a fix for orders stuck in Pending Payment.
Magento 2 ships with about a dozen default order statuses, and knowing what each one means - plus why an order sometimes gets stuck in "Pending Payment" - is what keeps your order pipeline readable. This post walks through every default status, the difference between a status and a state, how to change or create statuses, and what to do when Pending Payment won't clear.
What is Magento 2 Order Status and How Does It Work?
Two terms get used interchangeably a lot: order state and order status. They are part of the same organizing tool and have similar features. For now, let's focus on the Magento order status. It is a clarifying label that shows what is going on with a certain order. For example, if an order was created and expects payment via PayPal, it may receive the "Pending PayPal" status.
Default statuses are issued automatically by the system. For instance, a fully processed and finished order receives the "Complete" status. You can also change them by hand or create custom ones to better represent certain workflow steps.
What Order Statuses Are Available in Magento 2?
Magento 2 ships with about a dozen default order statuses you may use in your store. The exact set depends on your Magento version and payment methods:
- Pending. Order was created, but invoice or shipping details still need to be added.
- Pending Payment. A customer was directed to the payment gateway, but your store still needs to receive information about the payment.
- Pending PayPal. PayPal received information about the order but is still processing payment.
- Payment Review. PayPal decided to check the payment for authenticity. It can happen for various reasons, like suspected fraud.
- PayPal Reversed. The payment was reversed, and the customer will get their money back.
- PayPal Canceled Reversal. The customer filed for payment reversal, but PayPal refused to reverse the payment.
- Processing. Order received invoice or info about shipping but not both. For example, Magento pending payment switches to processing when info about the successful payment is received.
- On Hold. You may put orders on hold, so no operations are performed on them until you lift the hold. It is useful for investigations, sudden out-of-stock situations, etc.
- Suspected Fraud. There is something suspicious about the order. The invoice was not received or was tampered with, confirmation email was not sent or received, etc.
- Complete. Order was fully processed: created, properly paid for, shipped, and received.
- Canceled. A customer has canceled their order, or an order hasn't received a payment. This status is usually issued manually by the admin's hand.
- Closed. A customer received a refund, and a credit memo was assigned to the order.
Difference Between Magento Order Status and State
As we said earlier, order status and order state are similar. However, they are not the same. Magento order state shows which step of processing the order is on. For example, a "New" state indicates that the order was just created. There are fewer states than statuses. You cannot edit, add, or delete them. States are also issued only automatically.
The system mostly uses states, but Magento order status is used to clarify the state in more detail for admins. For instance, there is a "Pending Payment" state. Statuses like "Pending PayPal" or "Payment Review" are connected to it to show what exactly is happening with pending payments. Besides, you can create custom statuses to represent your workflow better. If you want to expand the functionality of the order status system or even create your own states, take a look at our Order Status extension.
The Magento 2 Order Status Workflow
Statuses don't move at random - each order walks through a predictable lifecycle, and each move is triggered by a specific event. Here is the typical path:
| From | To | What triggers it |
|---|---|---|
| New | Pending | Order placed, awaiting invoice or shipment |
| Pending | Pending Payment | Customer sent to the payment gateway |
| Pending Payment | Processing | Payment confirmed |
| Processing | Complete | Order invoiced and shipped |
| Any state | Closed | A credit memo (full refund) is issued |
| New / Pending Payment | Canceled | No invoice or payment received |
Knowing the workflow makes it obvious which status an order should be in - and easy to spot when one is stuck where it shouldn't be.
How to Get Magento 2 Order Status?
Every order that enters the system receives a status automatically. However, you may need more than the default list of statuses. To get a custom Magento 2 order status, you need to follow these steps:
- In your admin panel, go to "Stores". In the "Settings" section, choose "Order Status".
- An orange "Create New Status" button will be on the right.
- Enter a status code that the system will use. It must not contain any spaces and must start with a letter.
- Enter a status label that admins will see when the status is placed on an order.
- Don't forget to click the "Save Status" button on the right.
Next, you must assign the created Magento 2 order status to one of the states. To do so, follow these steps:
- Click the "Assign Status to State" button in the "Order Status" tab.
- Choose the status you need to assign and the state to assign it to.
- If you want this status to be shown by default for a chosen state, check the "Use Order Status As Default" box.
- Decide if this status will be visible on the frontend via the next checkbox.
- Don't forget to click the "Save Status Assignment" button.
Magento Pending Payment
The Pending Payment status is issued when a customer is sent to the payment gateway but has not completed the payment yet. It usually changes once the system receives information about the payment. Sometimes, though, the process drags on or runs into problems.
Merchants often get nervous when the "Pending Payment" status lingers too long. Most of the time it is down to slow processing during rush hour or a temporary technical issue. If the payment ultimately fails, the service notifies the system and the order status changes to "Canceled"; if something looks wrong with the payment, it gets a "Suspected Fraud" status; and if PayPal decides to investigate, it is labeled "Payment Review".
You don't have to clear stuck orders by hand. Magento auto-cancels orders left in Pending Payment after the Pending Payment Order Lifetime window - 480 minutes (8 hours) by default - configured under Stores > Settings > Configuration > Sales > Sales > Orders Cron Settings. The sales_clean_orders cron job runs hourly and cancels anything past that window, releasing the stock that was reserved for the order.
In our experience, the default 8-hour window works for most stores, so we usually leave it as is. We only extend it for B2B setups, where payment often goes through an approval step and legitimately takes longer - shortening it there would cancel real orders that were simply waiting on a sign-off.
The status also moves forward when things go as planned: once the customer completes payment, the order switches to "Processing".
How to Change Order Statuses in Magento 2?
You may also change the order status in Magento 2 by hand. It is simple:
- Go to the "Sales" tab and choose "Orders" in the "Operations" section.
- Click on the order for which you want to change status.
- Scroll down to the "Order Total" section to change the status.
- Click "Submit Comment" to save changes.
But what if you don't see the status you need in the drop-down list? It means the order is now in a state that doesn't have this status assigned to it. You can read how to assign statuses to states earlier in this post.
Final thoughts
The default statuses cover roughly 95% of what a store needs - most merchants never have to touch them. In our experience, the time to reach for a custom status is when your workflow has a transitional step that sits between two default statuses and isn't captured by either: an order waiting on an ERP sync, on an inventory sign-off, on a manual payment check, or on a made-to-order item being produced. A custom status for that step keeps the pipeline readable at a glance instead of leaving staff to guess what "Processing" really means for that order.
Just don't mistake statuses for states. Admins work with statuses; the system runs on states, which are more rigid and can't be edited, added, or deleted.
FAQ
What is the difference between an order status and an order state in Magento 2?
A state shows which step of processing an order is on (New, Processing, Complete, and so on) and is set automatically by the system - you can't edit, add, or delete states. A status is a more detailed label attached to a state for admins, and several statuses can map to the same state. For example, the Pending Payment state can carry the Pending PayPal or Payment Review status.
How do I change an order status in Magento 2?
Go to Sales > Orders, open the order, scroll to the Order Total section, pick the new status, and click Submit Comment to save. If the status you want isn't in the drop-down, the order is in a state that doesn't have that status assigned - assign it first under Stores > Settings > Order Status.
How do I add a custom order status in Magento 2?
Go to Stores > Settings > Order Status, click Create New Status, enter a code (no spaces, starting with a letter) and a label, and save. Then click Assign Status to State to attach the new status to an existing state and choose whether it's the default for that state or visible on the frontend.
Why is my Magento 2 order stuck in Pending Payment?
Pending Payment means the customer was sent to the payment gateway but hasn't completed payment yet - usually caused by slow processing or a temporary gateway issue. Magento auto-cancels these orders after the Pending Payment Order Lifetime window (480 minutes / 8 hours by default), set under Stores > Configuration > Sales > Sales > Orders Cron Settings, via the hourly sales_clean_orders cron job.
This Magento 2 order manager module helps you manage orders faster while making fewer mistakes.
It adds all necessary information to the grid and allows you to edit any order in your store in place without canceling. You can change the order's items, shipping or billing information, apply discounts, etc.
Get the most out of your store by providing customers with the best shopping experience thanks to faster service!