Skip to content

Price List Lifecycle

Models the lifecycle of a Price List — a named pricing context applied to products across channels, customer segments, or promotional periods. Controls when a price list is active, which channels it applies to, and how it is superseded or expired.

Object: price-list · States: 7 · Transitions: 8


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 ───────────────────────────────────────────────
    draft(["Draft"])
    pending_approval["Pending Approval"]
    approved["Approved"]
    active["Active"]
    superseded[["Superseded"]]
    expired[["Expired"]]
    cancelled[["Cancelled"]]

    %% ── transitions ─────────────────────────────────
    draft -->|"price-list-submitted"| pending_approval
    pending_approval -->|"price-list-approved"| approved
    pending_approval -->|"price-list-rejected"| draft
    approved -->|"price-list-activated"| active
    active -->|"price-list-expired"| expired
    active -->|"price-list-superseded"| superseded
    draft -->|"price-list-cancelled"| cancelled
    approved -->|"price-list-cancelled"| cancelled

    %% ── class assignments ───────────────────────────
    class draft stInit
    class pending_approval,approved,active stNorm
    class superseded stOk
    class expired,cancelled stFail

States

State Label Description Initial Terminal
draft Draft Price list under construction. Prices being entered or imported. Not applied to any channel.
pending-approval Pending Approval Price list submitted for commercial or legal approval before activation.
approved Approved Price list approved and ready for scheduling or immediate activation.
active Active Price list live and applied to its target channels or customer segments.
superseded Superseded Price list replaced by a newer version. Retained for historical reference and order line lookups.
expired Expired Price list reached its end-date and deactivated automatically.
cancelled Cancelled Price list manually withdrawn before activation.

Transitions

From To Trigger Guards
draft pending-approval price-list-submitted At least one price entry present; Valid-from date defined; Target channel or segment defined
pending-approval approved price-list-approved Commercial and legal sign-off recorded
pending-approval draft price-list-rejected Rejection reason documented
approved active price-list-activated Valid-from date reached or immediate activation requested; No conflicting active price list for same scope
active expired price-list-expired Valid-to date passed
active superseded price-list-superseded New version of the price list activated for same scope
draft cancelled price-list-cancelled Withdrawn before submission
approved cancelled price-list-cancelled Withdrawn before activation