I used the following code to create a new Magento status and it worked fine but I didn't understand the difference between state and status. Can someone explain it better? Why can't I set an order with it?

        <order_recieved translate="label">
          <label>Order Recieved</label>
                <order_recieved default="1"/>

I found it on How do you create a new order state for an order status to be assigned to?


Welcome to StackExchange! Magento indeed has a difference between an order's state and an order's status. Basically a state is the phase the order is in the purchase process. So this could be something like "New", "Pending", "Complete" or "Canceled".

The orders's status is related to the order's state. A state can have different statuses. For example the state "Pending Payment" can have the statuses "Pending Payment PayPal" or "Pending Payment Card". This is useful to make the actual status of an order more clear for yourself and your customers. For example, an order will be set to the state "Processing" as soon as an invoice is created for your order, but there could be different statuses, like "Order ready to be picked", "Order being picked" and "Order ready for shipping". This will be visible to your customer and in the Magento admin.

It's possible to manually add order statuses to Magento via the Magento backend (System > Order Statuses).

Hope this will answer your question.

  • You're welcome. If you have any additional questions, feel free to ask. If you think this answer is the solution to your problem, then please mark this one as the solution, so you'll help out other developers having the same issue or question. Mar 2 '18 at 20:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.