Skip to content

Ship From Store

domain event fulfilment


Outcome

Store stock can be used to pick, pack and ship online orders directly to the customer.

Service Flow

flowchart LR
    S0["Allocate Inventory"]
    S1["Generate Picking"]
    S0 --> S1
    S2["Confirm Picking"]
    S1 --> S2
    S3["Pack Shipment"]
    S2 --> S3
    S4["Ship Order"]
    S3 --> S4
    S5["Deliver Order"]
    S4 --> S5
    S6["Capture Payment"]
    S5 --> S6

Capabilities

Order Orchestration Inventory Allocation Store Inventory Fulfillment Execution Payment Processing

Domains

order inventory fulfillment payment store

Business Objects

Object Classification Domain
order aggregate-root order
inventory aggregate-root inventory
reservation aggregate-root inventory
picking-task aggregate-root fulfillment
shipment aggregate-root fulfillment
payment aggregate-root payment
store aggregate-root store

Business Services

  • allocate-inventory
  • generate-picking
  • confirm-picking
  • pack-shipment
  • ship-order
  • deliver-order
  • capture-payment

Applications

Application Classification
OMS oms system-of-record
Inventory Service inventory-service system-of-intelligence
SIM sim system-of-record
Carrier Platform carrier-platform platform
Payment Hub payment-hub platform

Trigger Event

This process is triggered by the order-routed domain event.

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
PaymentAuthorized transitioned payment
PaymentCaptured transitioned payment
PaymentVoided transitioned payment
PaymentRefunded transitioned payment
PaymentSettled transitioned payment
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
GiftCardActivated transitioned gift-card
GiftCardRedeemed updated gift-card
GiftCardToppedUp updated gift-card
GiftCardExpired transitioned gift-card
GiftCardCancelled transitioned gift-card
GiftCardRefunded transitioned gift-card
RefundProcessed updated refund
RefundFailed transitioned refund
RefundConvertedToCredit transitioned refund
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
Endpoint Method Service Description
/orders/{id}/route POST route-order Executes routing logic to assign the optimal fulfillmen…
/payments/authorizations POST authorize-payment Submits a payment authorisation request for the order t…
/payments/authorizations/{id}/capture POST capture-payment Captures a previously authorised Payment. Requires paym…
/payments/authorizations/{id}/void POST void-payment Voids a payment authorisation that has not yet been cap…
/payments/{id}/refunds POST refund-payment Initiates a full or partial refund against a captured p…
/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 …
/transactions/{id}/payment POST authorize-payment Adds a payment tender to an in-progress POS transaction…
/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-from-store-requires-routed-order pre-condition invariant order.lifecycle = confirmed AND fulfillment-order.lifec…

← Back to Process Catalog