Order lifecycle BPM
The lifecycle of an order is at the core of every feature offered by NewStore. The lifecycle is represented by the diagram below using theBPMN notation and relies on other concepts such as *order routing* or *order fulfillment*. These concepts are described in the Business process section.
For a representation of the lifecycle of an order when an external order management system (OMS) is managing orders in your business, see the BPM diagrams in the external OMS integration guide .
An order can originate from 2 sources:
- NewStore Associate App
- e-commerce platform
In the case of a credit card payment, the amount is authorized on the customer's card.
When an order is placed via NewStore Associate App, NewStore manages the payment. See payment .
Regardless of the origin, an order entity is created inside NewStore and
order.created event is emitted. The
grace period begins.
Once the grace period ends, the
order.opened event is emitted.
Order routing and fulfillment
The order cannot be modified anymore and it is processed for routing. Routing consists in forwarding the order to a fulfillment location (a DC or store) via a fulfillment request. For more information, see About order routing .
When this happens, the
fulfillment_request.assigned is emitted and the
order moves to the fulfillment phase which can succeed or
Once a fulfillment location receives a fulfillment request that it can
process and completes the fulfillment, the
fulfillment_request.items_completed event is emitted. An order can be
fulfilled by several fulfillment locations when no location has all the
items in stock, therefore this event can be emitted several times for
invoice.created event is emitted when:
- During store fulfillment , items have been packed, and relevant documents and labels to be sent with the shipment are ready for printing.
- During DC fulfillment , when NewStore receives confirmation from the DC that the items have been shipped.
Once all the items have been fulfilled, the
order.completed event is emitted.
The payment capture phase starts.
Routing can fail if no fulfillment location is able to process the whole
order or one of the order items. In this case, the
order.items_cancelled event is emitted for each item that cannot be
fulfilled. An associate can fix the issue in different ways
using NewStore Omnichannel Manager:
- If the associate chose to cancel the order, the
order.cancelledevent is emitted. The payment refund/revoke phase starts.
- If the associate chose to swap items to replace the unavailable
order.items_swappedevent is emitted and the order is processed for fulfillment again.
Payment workflow completion
Once the order has been fulfilled or canceled, the payment workflow can be completed. For more information on the payment lifecycle at NewStore, see Payment lifecycle BPM .
Capturing the amount
In the case one of the order items was fulfilled, a payment capture for
the amount of the item is performed. When this happens, the
payment_account.amount_captured is emitted. To learn more about
payment integration, see Integrating a payment service provider .
Refunding the amount
In the case one of the order items was canceled, or if the whole order
was canceled, the
payment_account.amount_refunded event is emitted.
Order return workflow
For more information on how the NewStore platform processes items from an order returned by a customer, see Return lifecycle BPM .