Dsco's existing Order.status state machine frankly leaves much to be desired. Dsco has taken much feedback from trading partners across the platform and is releasing a new attribute named Order.dscoLifecyle.
This change is being phased in over the next six months to give all partners time to prepare and adjust to the change.
Schedule for New Dsco Lifecycle Phase In
Phase I - Add It
Dsco will first be simply adding the dscoLifecycle attribute to co-exist with the status attribute on orders.
Phase II - Modify Dsco Reports
Dsco will then modify Dsco's reports to use the new status.
Phase III - Modify Dsco Workflows
Dsco will then modify its own internal workflows to use the new dscoLifecycle attribute as an event trigger for order workflows including order export, order webhook workflows and others.
Phase IV - Deprecate Status
Dsco will then deprecate the order.status atttribute.
Phase V - Remove Status
The order.status attribute will be removed.
The Existing Order Status
Today's order.status attribute, seen in the diagram above, transitions from the "shipment pending" state to the "shipped" state when any quantity on any order line item is shipped. Today's order.status transitions to "cancelled" only when all quantity on all items are cancelled. This state machine is inconsistent and confusing.
The New Dsco Order Lifecycle
The new order.dscoLifecyle state machine, seen in the diagram above, corrects the issues with the existing order.status states.
Dsco has received an order, but it's not yet ready for a supplier to take the order.
A newly received order is now ready for a supplier to take the order and fulfill it.
The supplier has the order, either because the order was exported to the user or because the order was specifically acknowledged, perhaps via APIs. It's possible that some quantity of the order's line items are either shipped or cancelled but there is still order line item quantity that is not shipped or cancelled.
All quantity of all line items on the order are either shipped or cancelled.