The difference between order state and order status
Order states is exactly what it sounds: the states of an order in Magento, including Canceled, Closed, Complete, On Hold, Payment Review, Pending, Pending Payment, Processing. These are pre-defined order states in Magento 2.
What if store owners want to re-define these order states? The answer is order statuses. Store owners can create their own order statuses corresponding with Magento default order states. Inside Magento backend, store owner only see order status, not order states.
In short, Magento system view order as states, store owners view order as statuses.
How to create an order status?
In your Magento 2 backend, go to Stores > Settings > Order Status
Click “Create New Status”
Enter Status Code and Status Label, along with specific labels for each store view.
Then you need to assign the newly created status to a state. Click “Assign Status To State“.
Select the state that you want to assign for your status. Remember to check the box before “Use Order Status As Default”. Then click “Save Status Assignment“.
How to change order status?
Go to Sales > Orders to view a list of your existing orders.
Click on the order whose status you want to change.
On the order detail page:
- Edit: the current order will be canceled and duplicated into a new one
- Cancel: delete order
- Send email: send an email with order details to customers
- Hold: change order state to On Hold
- Invoice: change order state to Processing
- Ship: change order state to Complete (after submitting shipment)
- Reorder: resubmit the same order
These options change the order state, and as mentioned above, each state can be assigned by multiple statuses. For example, for Pending state, I created two statuses: SM Pending and SH Pending, so I can change the status for this order into either SM Pending or SH Pending under Notes for this Order. (Note that the state of this order is still Pending)