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¶
registered → identified → active → inactive → deleted
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¶
- Checkout
- BOPIS
- BORIS
- Endless Aisle
- Reserve and Collect
- Clienteling Sale
- Return Anywhere
- Exchange Anywhere
- Loyalty Enrollment
- Voucher Redemption
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 |