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 |