Exchange Anywhere
customer action post-sale
Outcome
Customers can exchange items at any store regardless of the original purchase channel.
Service Flow
flowchart LR
S0["Track Order"]
S1["Request Exchange"]
S0 --> S1
S2["Authorize Exchange"]
S1 --> S2
S3["Reserve Inventory"]
S2 --> S3
S4["Process Exchange"]
S3 --> S4
Capabilities
Order Management Exchange Management Inventory Reservation
Domains
customer order fulfillment inventory payment store
Business Objects
Business Services
track-order
request-exchange
authorize-exchange
reserve-inventory
process-exchange
Applications
| Application |
Classification |
POS pos |
system-of-engagement |
OMS oms |
system-of-record |
Inventory Service inventory-service |
system-of-intelligence |
SIM sim |
system-of-record |
| Event |
Classification |
Object |
Terminal |
BasketConverted |
transitioned |
basket |
✓ |
OrderCreated |
created |
order |
— |
OrderValidated |
transitioned |
order |
— |
OrderConfirmed |
transitioned |
order |
— |
OrderModified |
updated |
order |
— |
OrderCancelled |
transitioned |
order |
✓ |
OrderClosed |
transitioned |
order |
✓ |
InventoryReserved |
created |
reservation |
— |
ReservationConfirmed |
transitioned |
reservation |
— |
InventoryReleased |
transitioned |
reservation |
— |
ReservationExpired |
transitioned |
reservation |
✓ |
ReturnExchanged |
transitioned |
return |
✓ |
ExchangeRequested |
created |
exchange |
— |
ExchangeAuthorized |
transitioned |
exchange |
— |
ExchangeCompleted |
transitioned |
exchange |
✓ |
ReservationCreated |
created |
reservation |
— |
ReservationReleased |
transitioned |
reservation |
— |
ExchangeValidated |
transitioned |
exchange |
— |
ExchangeRefused |
transitioned |
exchange |
— |
ExchangeStarted |
transitioned |
exchange |
— |
ExchangeBalanceRequired |
updated |
exchange |
— |
ExchangeBalanceSettled |
transitioned |
exchange |
— |
ExchangeCompleted |
transitioned |
exchange |
— |
ExchangeCancelled |
transitioned |
exchange |
— |
| Endpoint |
Method |
Service |
Description |
/orders |
POST |
create-order |
Creates a new Order from a validated Basket, transition… |
/orders/{id} |
GET |
track-order |
Retrieves the full state of an Order including lines, p… |
/orders/{id}/cancel |
POST |
cancel-order |
Cancels a confirmed Order, triggering reversal of payme… |
/orders/{id}/confirm |
POST |
confirm-order |
Confirms a validated Order once payment is authorised, … |
/inventory/reservations |
POST |
reserve-inventory |
Creates a timed Reservation for one or more SKUs at a s… |
/inventory/reservations/{id}/confirm |
POST |
confirm-reservation |
Confirms a Reservation, converting it to a firm commitm… |
/inventory/reservations/{id} |
DELETE |
release-reservation |
Releases an existing Reservation, returning the quantit… |
Validation Rules
| Rule |
Type |
Severity |
Condition |
exchange-anywhere-requires-closed-order |
pre-condition |
invariant |
order.lifecycle = closed AND order.count(order-line) >=… |
← Back to Process Catalog