Order (v1.0.0)

Represents a customer's request to purchase products or services.

Overview

The Order entity captures all details related to a customer’s purchase request. It serves as the central aggregate root within the Orders domain, coordinating information about the customer, products ordered, payment, and shipping.

Entity Properties

NameTypeRequiredDescription
orderIdUUIDRequiredUnique identifier for the order
orderNumberstringRequiredUnique identifier for the order
customerIdUUIDOptionalIdentifier for the customer placing the order test
orderDateDateTimeRequiredDate and time when the order was placed
statusstring
Enum:
  • Pending
  • Processing
  • Shipped
  • Delivered
  • Cancelled
RequiredCurrent status of the order (e.g., Pending, Processing, Shipped, Delivered, Cancelled)
orderItemsarray<OrderItem>RequiredList of items included in the order
totalAmountdecimalRequiredTotal monetary value of the order
shippingAddressAddressRequiredAddress where the order should be shipped
billingAddressAddressRequiredAddress for billing purposes
paymentPaymentOptionalPayment associated with this order
convertedFromCartIdUUIDOptionalShopping cart that was converted to this order

Relationships

  • Customer: Each order belongs to one Customer (identified by customerId).
  • OrderItem: An order contains one or more OrderItem entities detailing the specific products and quantities.
  • Address: Each order has shipping and billing Address entities (identified by shippingAddress and billingAddress).
  • Payment: An order is associated with one Payment entity for transaction processing.
  • ShoppingCart: An order can be converted from a ShoppingCart (identified by convertedFromCartId).
  • Shipment: An order may lead to one or more Shipment entities (not detailed here).

Examples

  • Order #12345: A customer orders 2 units of Product A and 1 unit of Product B, to be shipped to their home address. Status is ‘Processing’.
  • Order #67890: A customer places a large order for multiple items, requiring special shipping arrangements. Status is ‘Pending’ until payment confirmation.