State Diagram (PlantUML)

State diagram
@startuml
title Simple Order Fulfilment Flow

[*] --> Cart_Empty

state Cart_Empty {
  [*] --> Idle
  Idle --> Item_Added : add item
}

Cart_Empty --> Checking_Out : proceed to checkout

state Checking_Out {
  [*] --> Collecting_Details
  Collecting_Details --> Payment_Processing : submit payment
  Payment_Processing --> Payment_Failed : payment error
  Payment_Processing --> Order_Placed : payment OK
  Payment_Failed --> Collecting_Details : retry
}

Checking_Out --> Order_Fulfilled : ship order
Order_Fulfilled --> Completed

Completed --> [*]
@enduml