Statuses and Order flow
The Order provides a central place to collect information about a customer order. It contains line items, adjustments, payments, addresses, return authorizations, and shipments.
Whenever information about the order is updated, the order states get updated automatically.
In the OMS, each order is associated with Statuses and States- Below is an overview of them.
Each shipment is assigned a state attribute. Depending on its state, different actions can be performed on shipments. There are four possible states:
Pending: The shipment has backorder inventory units, and the order has not been paid for.
Ready: The shipment has no backorder inventory units, and the order is paid for. Partial: Suppose an order has multiple shipments, which could be caused by a lack of inventory or numerous stock locations. If only one of the various shipments has shipped, the order will be in a partial state until the remaining shipments are shipped. Shipped:The shipment has left the stock location. Canceled: All of its shipments will be canceled when an order is canceled. When this happens, all items in the shipment will be restocked. If an order is "resumed," the shipment will also be resumed. Backorder: Inventory must be updated for the product(s) for the order to be shipped.
A perfect order will have the statuses of Paid - Ready - Complete
Before an order is marked as Complete, orders go through a number of other states. By default, the following states are available: Cart: A customer has placed product(s) in the cart but has not proceed with the checkout Address: The customer has begun checkout and has not yet provided their billing and/or shipping addresses. OR there is an issue with the address provided Delivery: The customer needs to choose from available shipping options. Payment: The customer needs to provide payment information. Confirm: The customer needs to confirm that the input checkout information is correct. Complete: The customer has submitted their order.
Typically, an order has one or multiple payments associated with it. Because of this, the order object has a payment_state attribute that tracks against all payments associated with the order. For example, if your customer has $20 on store credit, but their order comes to $40, they need to use two payment methods to pay for the order: Store Credit payment method and one of the other available payment methods.
Balance_due: This state indicates that a payment on the order is required. The order's payment_total value is less than its total value. Credit_owed: This state indicates that the order has been paid for in excess The order's payment_total value is greater than its total value. Failed: The payment service provider rejected the payment. Checkout: The order still needs to be completed. Processing: The payment is being processed by the payment service provider. This is a temporary state intended to prevent the double-submission of a payment. Pending: The payment service provider has processed the payment, but still needs to be captured. Paid: This state indicates that the order has been paid for in full, and no credit is owed. Invalid: The payment is invalid and needs to be reattempted. Void: This state indicates that the order has been canceled. No credit is owed, no balance is due, and the order has not been paid for. Completed: The payment is completed.