Skip to content

Orders

Orders

From a cart instance, an Order can be created. The whole structure of the cart is stored in the database. Contrary to the cart, a structure that allows a great degree of freedom and is calculation optimized, the order is workflow optimized.

Design goals

Denormalization

The order itself does not depend on the catalog or the products. The line item with all of its data, as well as all calculated prices, is persisted in the database. Orders only get recalculated when triggered explicitly through the API.

Workflow dependant

The order state changes in a defined, predictable and configurable way - other state transitions are blocked.

State management

TIP

The state machines displayed in the following sections can actually be modified through the API, this is just the default setup.

During the order placement, at least three distinct state machines are started as described in the below diagrams.

These can be used to track the progress during the order process and notify the customer about the current state of the order.

The order state machine

null

The order transaction state machine

null

The order delivery state machine

null