CustomerOrder
CustomerOrder is an information object used in commerce systems to record a customer’s request to purchase goods or services. It functions as the primary record for processing fulfillment, payments, and post-sale activities. In many architectures, a CustomerOrder serves as the aggregate root coordinating related data such as line items, customer details, pricing, and shipment information.
Typical data captured in a CustomerOrder includes an order identifier, customer identifier, order date, currency, status,
Lifecycle states commonly observed are Created, Confirmed, Paid, Packed, Shipped, Delivered, Cancelled, and Returned. Transitions are
Key operations encompass creating an order, adding or removing line items, updating quantities, calculating totals, applying
Technically, CustomerOrder is often modeled as an aggregate root with invariants that ensure a consistent state