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
| Area | DRAFT | After 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
Updated about 1 month ago
