Ship To Store¶
domain event fulfilment
Outcome¶
Warehouse or supplier stock can be transferred to a store and made available for customer collection.
Service Flow¶
flowchart LR
S0["Route Order"]
S1["Allocate Inventory"]
S0 --> S1
S2["Transfer Inventory"]
S1 --> S2
S3["Generate Picking"]
S2 --> S3
S4["Collect Order"]
S3 --> S4
Capabilities¶
Order Orchestration Inventory Allocation Store Inventory Fulfillment Execution
Domains¶
order inventory fulfillment store
Business Objects¶
| Object | Classification | Domain |
|---|---|---|
| order | aggregate-root |
order |
| inventory | aggregate-root |
inventory |
| shipment | aggregate-root |
fulfillment |
| store | aggregate-root |
store |
Business Services¶
route-orderallocate-inventorytransfer-inventorygenerate-pickingcollect-order
Applications¶
| Application | Classification |
|---|---|
OMS oms |
system-of-record |
Inventory Service inventory-service |
system-of-intelligence |
WMS wms |
system-of-record |
SIM sim |
system-of-record |
POS pos |
system-of-engagement |
Trigger Event¶
This process is triggered by the
order-routeddomain event.
Related Events¶
| Event | Classification | Object | Terminal |
|---|---|---|---|
OrderSplit |
transitioned | order | — |
OrderRouted |
transitioned | order | — |
FulfillmentLocationReassigned |
transitioned | order | — |
InventoryAllocated |
created | allocation | — |
InventoryReallocated |
transitioned | allocation | — |
InventoryAllocationReleased |
transitioned | allocation | ✓ |
InventoryAdjusted |
updated | inventory | — |
InventoryCounted |
transitioned | inventory | — |
InventoryTransferred |
created | stock-movement | — |
PickingStarted |
transitioned | picking-task | — |
PickingCompleted |
transitioned | picking-task | ✓ |
ShipmentPacked |
transitioned | shipment | — |
ShipmentDispatched |
transitioned | shipment | — |
ShipmentDelivered |
transitioned | shipment | ✓ |
AddressValidated |
transitioned | address | — |
FulfillmentOrderCreated |
created | fulfillment-order | — |
FulfillmentOrderDispatched |
transitioned | fulfillment-order | — |
DeliverySlotReserved |
transitioned | delivery-slot | — |
DeliverySlotConfirmed |
transitioned | delivery-slot | — |
DeliverySlotReleased |
transitioned | delivery-slot | — |
DeliverySlotExpired |
transitioned | delivery-slot | — |
ShipmentCreated |
created | shipment | — |
AllocationActivated |
transitioned | allocation | — |
AllocationUpdated |
updated | allocation | — |
AllocationFulfilled |
transitioned | allocation | — |
AllocationReallocated |
transitioned | allocation | — |
AllocationCancelled |
transitioned | allocation | — |
StockCountOpened |
created | inventory | — |
StockCountStarted |
transitioned | inventory | — |
StockCountCompleted |
transitioned | inventory | — |
StockCountReconciled |
transitioned | inventory | — |
StockCountClosed |
transitioned | inventory | — |
StockCountRecountRequested |
updated | inventory | — |
StockCountCancelled |
transitioned | inventory | — |
PickingTaskCreated |
created | picking-task | — |
PickingTaskCompleted |
transitioned | picking-task | — |
ShipmentLabelGenerated |
updated | shipment | — |
Related APIs¶
| Endpoint | Method | Service | Description |
|---|---|---|---|
/orders/{id}/route |
POST | route-order |
Executes routing logic to assign the optimal fulfillmen… |
/fulfillment/orders/{id} |
GET | track-order |
Retrieves the current state of a Fulfillment Order incl… |
/fulfillment/orders/{id}/dispatch |
POST | ship-order |
Dispatches a Fulfillment Order after all picking tasks … |
/picking-orders |
POST | generate-picking |
Creates a warehouse picking order from a Fulfillment Or… |
/picking-orders/{id}/status |
PUT | confirm-picking |
Updates the status of a picking order as a warehouse as… |
/stock/{sku}/locations |
GET | retrieve-location-stock |
Returns all warehouse locations holding a given SKU, in… |
/inventory/allocate |
POST | allocate-inventory |
Soft-allocates inventory for an order line, reducing AT… |
/shipments/{id}/tracking |
GET | track-order |
Returns the current carrier tracking status and estimat… |
/shipments/{id}/label |
POST | ship-order |
Generates a carrier shipping label for a dispatched ful… |
Validation Rules¶
| Rule | Type | Severity | Condition |
|---|---|---|---|
ship-to-store-requires-routed-order |
pre-condition |
invariant |
order.lifecycle = confirmed AND fulfillment-order.lifec… |