Skip to content

Basket Lifecycle

Models the lifecycle of a shopping Basket (cart) from creation through checkout conversion or abandonment. Applies to all channels that support a pre-order selection step: eCommerce, mobile app, kiosk, and clienteling.

Object: basket · States: 5 · Transitions: 6


State Diagram

flowchart LR

    %% ── classDef palette ─────────────────────────────────────
    classDef stInit  fill:#0d9488,stroke:#0f766e,color:#fff,font-weight:bold
    classDef stNorm  fill:#3b82f6,stroke:#2563eb,color:#fff
    classDef stOk    fill:#16a34a,stroke:#15803d,color:#fff,font-weight:bold
    classDef stFail  fill:#dc2626,stroke:#b91c1c,color:#fff,font-weight:bold
    classDef stHold  fill:#d97706,stroke:#b45309,color:#fff

    %% ── nodes ───────────────────────────────────────────────
    open(["Open"])
    locked["Locked"]
    converted[["Converted"]]
    abandoned[["Abandoned"]]
    merged[["Merged"]]

    %% ── transitions ─────────────────────────────────
    open -->|"basket-checkout-started"| locked
    locked -->|"basket-updated"| open
    locked -->|"basket-converted"| converted
    open -->|"basket-abandoned"| abandoned
    locked -->|"basket-abandoned"| abandoned
    open -->|"basket-merged"| merged

    %% ── class assignments ───────────────────────────
    class open stInit
    class locked stNorm
    class converted,merged stOk
    class abandoned stFail

States

State Label Description Initial Terminal
open Open Basket is active. Items can be added, removed, or modified.
locked Locked Checkout in progress. Basket content is frozen pending payment.
converted Converted Basket successfully became an Order. No further modifications possible.
abandoned Abandoned Session expired or customer left without completing checkout.
merged Merged Basket merged into another (e.g. guest basket merged on login).

Transitions

From To Trigger Guards
open locked basket-checkout-started Basket contains at least one valid line; Customer identity available or guest session active
locked open basket-updated Payment not yet attempted
locked converted basket-converted Payment authorized; Order created successfully
open abandoned basket-abandoned Session inactivity timeout elapsed OR customer explicitly cleared basket
locked abandoned basket-abandoned Payment failed or timed out; Customer did not retry
open merged basket-merged Target basket is in open state