BOPIS — Buy Online Pick-up In Store
customer action transactional
Outcome
A customer can place an order online and collect it from a physical store on the same or following day.
Service Flow
flowchart LR
S0["Create Order"]
S1["Reserve Inventory"]
S0 --> S1
S2["Authorize Payment"]
S1 --> S2
S3["Generate Picking"]
S2 --> S3
S4["Confirm Picking"]
S3 --> S4
S5["Collect Order"]
S4 --> S5
S6["Capture Payment"]
S5 --> S6
Capabilities
Order Management Inventory Reservation Payment Processing Fulfillment Execution Store Operations
Domains
customer commerce order inventory fulfillment payment store
Business Objects
Business Services
create-order
reserve-inventory
authorize-payment
generate-picking
confirm-picking
collect-order
capture-payment
Applications
| Application |
Classification |
eCommerce Platform ecommerce-platform |
system-of-engagement |
OMS oms |
system-of-record |
Inventory Service inventory-service |
system-of-intelligence |
SIM sim |
system-of-record |
POS pos |
system-of-engagement |
Payment Hub payment-hub |
platform |
| 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 |
✓ |
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 |
✓ |
StoreDayOpened |
created |
store-day |
— |
StoreDayClosed |
transitioned |
store-day |
✓ |
StoreTaskAssigned |
created |
store-task |
— |
StoreTaskCompleted |
transitioned |
store-task |
✓ |
AddressValidated |
transitioned |
address |
— |
FulfillmentOrderDispatched |
transitioned |
fulfillment-order |
— |
ReservationCreated |
created |
reservation |
— |
ReservationReleased |
transitioned |
reservation |
— |
DeliverySlotReserved |
transitioned |
delivery-slot |
— |
DeliverySlotConfirmed |
transitioned |
delivery-slot |
— |
DeliverySlotReleased |
transitioned |
delivery-slot |
— |
DeliverySlotExpired |
transitioned |
delivery-slot |
— |
ShipmentCreated |
created |
shipment |
— |
EmployeeActivated |
transitioned |
employee |
— |
EmployeeDeactivated |
transitioned |
employee |
— |
EmployeeOffboarded |
transitioned |
employee |
— |
EmployeeArchived |
transitioned |
employee |
— |
GiftCardActivated |
transitioned |
gift-card |
— |
GiftCardRedeemed |
updated |
gift-card |
— |
GiftCardToppedUp |
updated |
gift-card |
— |
GiftCardExpired |
transitioned |
gift-card |
— |
GiftCardCancelled |
transitioned |
gift-card |
— |
GiftCardRefunded |
transitioned |
gift-card |
— |
ReceiptIssued |
created |
receipt |
— |
ReceiptAmended |
updated |
receipt |
— |
ReceiptVoided |
transitioned |
receipt |
— |
ReceiptArchived |
transitioned |
receipt |
— |
RefundProcessed |
updated |
refund |
— |
RefundFailed |
transitioned |
refund |
— |
RefundConvertedToCredit |
transitioned |
refund |
— |
StoreDayPreOpeningStarted |
transitioned |
store-day |
— |
StoreDayOpened |
transitioned |
store-day |
— |
StoreDayClosingStarted |
transitioned |
store-day |
— |
StoreDayReconciliationStarted |
transitioned |
store-day |
— |
StoreDayClosed |
transitioned |
store-day |
— |
StoreDayReopened |
updated |
store-day |
— |
StoreDayExceptionDeclared |
transitioned |
store-day |
— |
PickingTaskCreated |
created |
picking-task |
— |
PickingTaskCompleted |
transitioned |
picking-task |
— |
ShipmentLabelGenerated |
updated |
shipment |
— |
Validation Rules
| Rule |
Type |
Severity |
Condition |
bopis-requires-store-inventory |
pre-condition |
invariant |
inventory-item.available-quantity >= 1 at selected stor… |
bopis-requires-channel |
pre-condition |
invariant |
channel.lifecycle = active AND channel.type in [web, mo… |
← Back to Process Catalog