How the Domain Model Works
Authors:
Nandha Balaguru, Esma Tuzovic, Anita Gu, Cille Schliebitz
Changed on:
11 Mar 2025
Overview
This article focuses on understanding the Order Domain within Fluent, highlighting orchestrated and non-orchestrated domains. The Order is the central entity that has relationships to sub-entities like Fulfillment, Article, Consignment, and Return Order. These relationships determine the order processing flow, including picking, packing, delivery, and optional returns.
Key points
- Order: Central entity in the Order Management domain.
- Fulfillments: One Order can have multiple Fulfillments.
- Article Packing: Fulfillments involve multiple Articles.
- Consignment Delivery: Articles are delivered through Consignments.
- Returns: Optional Return Order linked to original Order.
- Customer Relationship: Orders tied to a Customer for billing purposes.
How it works - Domain Model
Domain Model
On the right-hand side of the diagram is a key — arrows and lines represent the relationship one entity has with another (this is also known as multiplicity).
Order is the Root Entity within the Order Management Domain. Child entities, otherwise known as sub-entities, have a relationship with the Order entity:
- Fulfillment
- Article
- Consignment
- Return Order
- Customer

Order | A one-to-many relationship exists between Order and Fulfillment. For a single Order, we may have many Fulfillments, meaning one or many fulfillment locations that pick specific items within the order. |
Fulfillment | A one-to-many relationship exists between Fulfillment and Article. For a single Fulfillment, we may pick and pack the items into one or many Articles (also known as a physical parcel). This is because all of the items may not fit into a single Article. |
Article | A many-to-many relationship exists between Article and Consignment. |
Consignment | A consignment is delivering the Article to the delivery address, usually via a courier network. Consignment ID and Tracking URL can be stored against the Consignment entity to track the Article to its intended destination. |
Return Order | There is an optional link between Order and Return Order. This is because using the Return Order feature is optional in Fluent. Return Order is another Root Entity, and has a corresponding workflow called Return Order. |
Customer | A one-to-one relationship exists between Order and Customer. To create an Order in Fluent, you will require a Customer to exist. The Customer entity is what links the Order Management domain to the Billing Account domain. All aspects of Customer Billing including invoices for payment and credit memos for refunds back to the Customer are found in the Billing Account domain. |
The Root Entity for Order in Fluent has a corresponding workflow. Based on the reference flows provided, this is split into three types (see
`order.type`
- Home Delivery (HD): The ability to pick and pack an order and ship it to a customer’s address.
- Click and Collect (CC): The ability to pick up and pack an order for customer pickup at a specific location—usually a store.
- Mixed Basket (MULTI): A combination of HD and CC items within the same order.
While these are the reference workflows, creating new order workflows is not restricted. You can define additional workflows tailored to business requirements, such as marketplace orders or backorders.
In the following course, the focus will be on HD and CC workflows.