Lifecycle & Status

What this covers

What’s editable on the Commercial Order (DRAFT vs after placement), how placing works, and how Logistic Order statuses drive overall progression in OMS.

At a glance

  • Work happens in DRAFT (Commercial Order is editable).
  • After Place, the Commercial Order becomes immutable; lifecycle then lives on Logistic Orders.
  • Delete is allowed only in DRAFT and only if no blocking links exist.

🗺️ Structure at a glance (where statuses live)

flowchart LR
  CO[DRAFT<br>Commercial Order] --> PL[PLACED<br>Commercial Order - immutable]
	PL --> LO1[Logistic Order #1<br>status in OMS]
	PL --> LO2[Logistic Order #2<br>status in OMS]
	PL --> LOn[...]

	%% Reference (statuses are on Logistics, not on Commercial Order)
	REF[See OMS: Order lifecycle and statuses]:::ref

	%% ---------- Styles ----------
	classDef co fill:#e8f1ff,stroke:#2f6feb,stroke-width:2px,color:#0b3d91;
	classDef pl fill:#ecfdf5,stroke:#10b981,stroke-width:2px,color:#064e3b;
	classDef lo fill:#fef9c3,stroke:#eab308,stroke-width:2px,color:#713f12;
	classDef ref fill:#f2f4f7,stroke:#475569,stroke-width:2px,color:#111827;

	class CO co
	class PL pl
	class LO1,LO2,LOn lo
	class REF ref

	style CO rx:8,ry:8
	style PL rx:8,ry:8
	style LO1 rx:8,ry:8
	style LO2 rx:8,ry:8
	style LOn rx:8,ry:8
	style REF rx:8,ry:8

This is a progress view. The Commercial Order does not carry its own statuses beyond DRAFT/placed.

Placement is performed via ORDER-212; on success, child Logistic Orders start at CREATED (OMS).

Progress is inferred from the statuses of linked Logistic Orders (see OMS “Order lifecycle and statuses”).


🔒 Editability & locking

AreaDRAFTAfter placement (Commercial Order)
Add/remove lines
Change quantities
Update addresses / refs (PO, notes)
Delete order✅ guarded
Read (buyer/operator scope)

After placement, lifecycle is tracked by Logistic Orders (see OMS). The Commercial Order remains readable but immutable.

This table describes editability only. It is not a status model for the Commercial Order.


📨 Place flow (submit the draft)

flowchart LR
	A[Draft order] --> ADR[Shipping/Billing completeness<br>required fields present]
	ADR --> V1[Visibility checks<br>Catalog Views]
  V1 --> QTY[Quantity rules<br>min max pack]
  QTY --> PRICE[Pricing resolution<br>current policy]
  PRICE --> OK{All checks passed}
  OK -->|Yes| PLACE[Place order<br>order becomes <i>validated</i>]
  OK -->|No| FIX[Return errors<br>user must fix and retry]

  %% ---------- Styles ----------
  classDef block fill:#f2f4f7,stroke:#475569,stroke-width:2px,color:#111827;
  classDef good fill:#ecfdf5,stroke:#10b981,stroke-width:2px,color:#064e3b;
  classDef warn fill:#fff4e5,stroke:#f59e0b,stroke-width:2px,color:#7a3e00;

  class A,ADR,V1,QTY,PRICE,OK,PLACE block
  class FIX warn
  class PLACE good

  style A rx:8,ry:8
  style V1 rx:8,ry:8
  style QTY rx:8,ry:8
  style PRICE rx:8,ry:8
  style OK rx:8,ry:8
  style PLACE rx:8,ry:8
  style FIX rx:8,ry:8

Reminder: After placement, progression (approvals, shipment, completion) is reflected by Logistic Orders statuses in OMS, not by the Commercial Order itself.

Start sources (optional): you may initialize the Draft from a Quote or from an Operation; in both cases the same re-validation applies before placing.

Pricing and availability are evaluated at the time of placing; any blocking issues return actionable errors.


🗑️ Delete guard (DRAFT only)

flowchart LR
  D[DELETE order] --> S[Status check<br>must be DRAFT]
  S --> L[Link check<br>no blocking links]
  L -->|OK| ALLOW[Delete allowed]
  L -->|Blocked| REJ[Reject delete<br>keep draft]

  %% ---------- Styles ----------
  classDef block fill:#f2f4f7,stroke:#475569,stroke-width:2px,color:#111827;
  classDef good fill:#ecfdf5,stroke:#10b981,stroke-width:2px,color:#064e3b;
  classDef stop fill:#fee2e2,stroke:#ef4444,stroke-width:2px,color:#7f1d1d;

  class D,S,L block
  class ALLOW good
  class REJ stop

  style D rx:8,ry:8
  style S rx:8,ry:8
  style L rx:8,ry:8
  style ALLOW rx:8,ry:8
  style REJ rx:8,ry:8

🔎 Operational hints

  • Keep buyers in DRAFT until validations pass; surface errors inline for quick fixes.
  • When listing orders, malformed sort entries are ignored silently; the request still succeeds.
  • If you migrate from cart-centric flows, map “cart actions” to DRAFT operations on the order.

API quicklinks