What are the definitions of the order statuses? OR: Where should I integrate my order state?

According to "The Definitive Guide to Magento" [1], the order statuses are defined as follows:

  • Pending: Pending orders are brand new orders that have not been processed. Typically, these orders need to be invoiced and shipped.
  • Pending PayPal: Pending PayPal orders are brand new orders that have not been cleared by PayPal. [...]
  • Processing: Processing means that orders have either been invoiced or shipped, but not both.
  • Complete: Orders marked as complete have been invoiced and have shipped.
  • Cancelled: Cancelled orders should be used if orders are cancelled or if the orders have not been paid for.
  • Closed: Closed orders are orders that have had a credit memo assigned to it and the customer has been refunded for their order.
  • On Hold: Orders placed on hold must be taken off hold before continuing any further actions.

Therefore a state "credit card payment received" would belong to processing, providing that the order has not been shipped yet.


Aligent Consulting[2] created a flow chart for order states:

magento order state flow


Sources:

  1. Adam McCombs and Robert Banh: "The Definitive Guide to Magento", Apress, 2009 (ISBN 1430272287, 9781430272281)
  2. https://twitter.com/aligent/status/509487359172177921/photo/1

The different order states are defined in Mage_Sales_Model_Order:

const STATE_NEW             = 'new';
const STATE_PENDING_PAYMENT = 'pending_payment';
const STATE_PROCESSING      = 'processing';
const STATE_COMPLETE        = 'complete';
const STATE_CLOSED          = 'closed';
const STATE_CANCELED        = 'canceled';
const STATE_HOLDED          = 'holded';
const STATE_PAYMENT_REVIEW  = 'payment_review';