Skip to content

Self-Checkout — Customer-Operated Store Checkout

customer action transactional


Outcome

A customer can scan, bag, and pay for items independently at a self-service terminal without associate assistance.

Service Flow

flowchart LR
    S0["Add Basket Item"]
    S1["Apply Promotions"]
    S0 --> S1
    S2["Authorize Payment"]
    S1 --> S2
    S3["Create Order"]
    S2 --> S3
    S4["Capture Payment"]
    S3 --> S4

Capabilities

Basket Management Catalogue Management Inventory Reservation Payment Processing Checkout Automated Item Identification Loss Prevention

Domains

commerce order inventory payment store

Business Objects

Object Classification Domain
basket aggregate-root commerce
product entity commerce
channel entity commerce
order aggregate-root order
payment aggregate-root payment
terminal entity store

Business Services

  • add-basket-item
  • apply-promotions
  • authorize-payment
  • create-order
  • capture-payment

Applications

Application Classification
POS pos system-of-engagement
Payment Hub payment-hub platform
Inventory Service inventory-service system-of-intelligence
Promotion Engine promotion-engine system-of-intelligence
Loss Prevention Service loss-prevention-service system-of-intelligence
Event Classification Object Terminal
BasketCreated created basket
BasketUpdated updated basket
BasketCalculated calculated basket
BasketCheckedOut transitioned basket
BasketCheckoutStarted transitioned basket
BasketAbandoned transitioned basket
BasketMerged transitioned basket
InventoryReserved created reservation
ReservationConfirmed transitioned reservation
InventoryReleased transitioned reservation
ReservationExpired transitioned reservation
PaymentAuthorized transitioned payment
PaymentCaptured transitioned payment
PaymentVoided transitioned payment
PaymentRefunded transitioned payment
PaymentSettled transitioned payment
ProductCreated created product
ProductActivated transitioned product
ProductUpdated updated product
ProductDeactivated transitioned product
CataloguePublished transitioned catalogue
CatalogueUpdated updated catalogue
CatalogueArchived transitioned catalogue
ReservationCreated created reservation
ReservationReleased transitioned reservation
ProductSearchPerformed updated product
CatalogueSubmitted updated catalogue
CatalogueApproved updated catalogue
CatalogueRejected updated catalogue
CataloguePublished transitioned catalogue
CatalogueUnpublished transitioned catalogue
CatalogueArchived transitioned catalogue
CatalogueRetired transitioned catalogue
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
CheckoutStarted transitioned basket
CheckoutCancelled transitioned basket
BasketLineAdded created basket-line
ItemIdentified updated inventory
ItemIdentificationAnomalyDetected created loss-prevention-case
TransactionAnomalyDetected created loss-prevention-case
LossPreventionCaseOpened transitioned loss-prevention-case
LossPreventionCaseResolved transitioned loss-prevention-case
Endpoint Method Service Description
/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…
/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…
/transactions POST checkout-basket Opens a new POS transaction, initialising the basket fo…
/transactions/{id}/payment POST authorize-payment Adds a payment tender to an in-progress POS transaction…
/transactions/{id}/void POST cancel-order Voids an in-progress POS transaction before payment com…
/baskets POST create-basket Creates a new digital basket for an anonymous or authen…
/baskets/{id}/lines POST add-basket-item Adds a product line to an existing basket, validating a…
/baskets/{id}/checkout POST checkout-basket Converts a validated basket into an order, triggering p…
/products/{id} GET publish-catalogue Retrieves the full product detail including attributes,…

Validation Rules

Rule Type Severity Condition
self-checkout-requires-active-terminal pre-condition invariant terminal.lifecycle = active AND terminal.type = self-ch…

← Back to Process Catalog