Skip to content

Customer

aggregate-root customer


Canonical party recognized by the enterprise as a customer.

Business Purpose: Provide the stable customer reference used across commerce, order, fulfillment, loyalty, payment, and store processes.

Identity

Type Field Description
global customer-id Customer ID uniquely identifies the customer across its lifecycle.

Attributes

Attribute Description
customer-id Customer ID Stable customer identifier.
customer-type Customer Type Classification of the customer party.
status Status Current lifecycle state.
created-at Created At Date and time when the customer was created.
updated-at Updated At Date and time when the customer was last updated.

Lifecycle

registeredidentifiedactiveinactivedeleted

Invariants

  • stable-customer-id — Customer ID must remain stable for the lifetime of the customer.
  • customer-identity-independent-from-state — Customer identity must remain independent from lifecycle state.

Relationships

Type Target
contains customer-profile customer-profile
contains loyalty-account loyalty-account
creates order order
owns basket basket

Events

Event Classification Terminal
CustomerRegistered created
CustomerIdentified transitioned
CustomerMerged transitioned
CustomerUpdated updated
CustomerPreferencesUpdated updated
CustomerSegmentCalculated calculated
CustomerSegmentAssigned transitioned

Used by Capabilities

  • customer-identity Customer Identity
  • customer-profile Customer Profile
  • customer-segmentation Customer Segmentation
  • clienteling Clienteling

Used by Processes

Used by Applications

  • POS pos
  • eCommerce Platform ecommerce-platform
  • Clienteling App clienteling-app
  • CRM crm

Semantic Constraints

Constraint Type Rule
order-belongs-to-customer association An Order must be associated with exactly one Customer. Anonymous order…
loyalty-account-belongs-to-customer association A Loyalty Account must be owned by exactly one Customer.
loyalty-member-references-customer association A Loyalty Member record must reference exactly one Customer profile.
consent-belongs-to-customer association A Consent record must be associated with exactly one Customer.
customer-owned-by-crm ownership Customer identity and profile is exclusively owned by the CRM.
customer-in-customer-domain domain-containment The Customer Business Object is owned by the Customer domain.

Note

Aligned with the existing customer business object and customer domain model.

Referenced by APIs

Endpoint Method Role Capability
/customers POST request-body customer-identity
/customers GET response customer-identity
/loyalty/members POST request-body loyalty
/customers/{id}/360 GET response clienteling
/interactions POST request-body clienteling

← Back to Customer Domain