Promotion code lifecycle
The Lifecycle
Transitions Explained
Active: Checkout may use the code if dates, restrictions and limits also pass. Disabled: Claims are temporarily rejected until staff enable the code. Revoked: Claims are permanently rejected and the status has no outgoing move.
What Cannot Happen
Revocation has no restoration operation. A revoked code cannot become temporarily disabled.
Concurrency and Timing
Status changes lock the same code row that placement updates conditionally. The row-lock order determines whether a use precedes deactivation or receives an inactive refusal.