Exchange Lifecycle¶
Models the lifecycle of a Product Exchange — the process by which a customer returns a purchased item and receives a replacement item of equal or different value. An exchange differs from a return in that a replacement product is provided rather than a monetary refund.
Object: exchange ·
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 ───────────────────────────────────────────────
requested(["Requested"])
validated["Validated"]
in_progress["In Progress"]
completed[["Completed"]]
refused[["Refused"]]
cancelled[["Cancelled"]]
pending_balance["Pending Balance"]
%% ── transitions ─────────────────────────────────
requested -->|"exchange-validated"| validated
requested -->|"exchange-refused"| refused
validated -->|"exchange-started"| in_progress
validated -->|"exchange-balance-required"| pending_balance
pending_balance -->|"exchange-balance-settled"| in_progress
in_progress -->|"exchange-completed"| completed
validated -->|"exchange-cancelled"| cancelled
pending_balance -->|"exchange-cancelled"| cancelled
%% ── class assignments ───────────────────────────
class requested stInit
class validated,in_progress,pending_balance stNorm
class completed,refused stOk
class cancelled stFail
States¶
| State | Label | Description | Initial | Terminal |
|---|---|---|---|---|
requested |
Requested | Customer has initiated an exchange request; eligibility not yet verified. | ✓ | |
validated |
Validated | Exchange eligibility confirmed — item within policy window, replacement available. | ||
in-progress |
In Progress | Original item received or in transit; replacement being prepared or dispatched. | ||
completed |
Completed | Replacement item delivered to customer; original item received and processed. | ✓ | |
refused |
Refused | Exchange denied — outside policy window, item damaged by customer, or fraud detected. | ✓ | |
cancelled |
Cancelled | Customer cancelled exchange request before replacement dispatched. | ✓ | |
pending-balance |
Pending Balance | Value difference between original and replacement item pending payment or credit. |
Transitions¶
| From | To | Trigger | Guards |
|---|---|---|---|
requested |
validated |
exchange-validated |
Item within exchange policy window; Original item in acceptable condition; Replacement item available |
requested |
refused |
exchange-refused |
Item outside policy window or damaged beyond policy tolerance |
validated |
in-progress |
exchange-started |
Replacement item reserved or dispatched; Return label issued or item received in-store |
validated |
pending-balance |
exchange-balance-required |
Replacement item value differs from original; Customer must pay or receive credit for difference |
pending-balance |
in-progress |
exchange-balance-settled |
Payment captured or store credit issued |
in-progress |
completed |
exchange-completed |
Replacement item confirmed delivered; Original item received and quality-checked |
validated |
cancelled |
exchange-cancelled |
Customer request before replacement dispatched |
pending-balance |
cancelled |
exchange-cancelled |
Customer withdrew before settling balance |