Skip to content

Product Lifecycle

Models the lifecycle of a Product from creation and enrichment through publication, active selling, and eventual discontinuation or archival. Covers all product types: physical, digital, bundle, and configurable. Applies to both catalogue management and channel publishing.

Object: product · States: 7 · Transitions: 11


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"])
    enrichment["In Enrichment"]
    review["Under Review"]
    active["Active"]
    suspended>"Suspended"]
    discontinued["Discontinued"]
    archived[["Archived"]]

    %% ── transitions ─────────────────────────────────
    draft -->|"product-created"| enrichment
    enrichment -->|"product-updated"| review
    review -->|"product-activated"| active
    review -->|"product-updated"| enrichment
    draft -->|"product-activated"| active
    active -->|"product-deactivated"| suspended
    suspended -->|"product-activated"| active
    active -->|"product-deactivated"| discontinued
    suspended -->|"product-deactivated"| discontinued
    discontinued -->|"catalogue-archived"| archived
    active -->|"product-updated"| active

    %% ── class assignments ───────────────────────────
    class draft stInit
    class enrichment,review,active,discontinued stNorm
    class suspended stHold
    class archived stOk

States

State Label Description Initial Terminal
draft Draft Product record created. Enrichment in progress (images, descriptions, attributes). Not visible to customers.
enrichment In Enrichment Product data being completed by merchandising team (content, media, pricing, categorisation).
review Under Review Product pending approval before publication (compliance, legal, brand check).
active Active Product published to one or more channels. Visible and purchasable by customers.
suspended Suspended Product temporarily hidden from all channels (safety recall, pricing error, stock issue). Not purchasable.
discontinued Discontinued Product no longer sold. Existing stock can be sold down but no replenishment. Visible for search history.
archived Archived Product fully retired. No longer visible or purchasable. Record retained for audit and history.

Transitions

From To Trigger Guards
draft enrichment product-created Product record saved with minimum required fields (SKU, name, category)
enrichment review product-updated All mandatory enrichment fields complete; Images uploaded; Pricing set
review active product-activated Compliance and brand check passed; At least one channel assigned
review enrichment product-updated Reviewer requests corrections
draft active product-activated Fast-track publish (no review required by policy)
active suspended product-deactivated Safety issue, pricing error, or stock problem detected
suspended active product-activated Issue resolved
active discontinued product-deactivated Commercial decision to end product line; No active promotions referencing product
suspended discontinued product-deactivated Product will not return to market
discontinued archived catalogue-archived Sellable stock depleted; Retention period elapsed
active active product-updated Minor update (description, image) not requiring re-review