Documentation API
Centre d'aide/Documentation API/API des commandes OMS

API des commandes OMS

Dernière mise à jour 2026-10-13

Créer des brouillons de commandes, consulter, machine à états et envoi vers WMS.

Créer un brouillon de commande#

POST /api/oms/orders
POST /api/oms/orders
{
  "customer_id": "<uuid>",
  "channel_id": "<uuid>",
  "channel_order_no": "AMZ-123",
  "merchant_id": "<uuid>",
  "warehouse_id": "<uuid>",
  "retailer_id": "<uuid>",
  "carrier_code": "UPS",
  "service_code": "GROUND",
  "currency": "USD",
  "ship_to": { "name": "…", "address": "…", "city": "…", "state": "…", "postal": "…", "country": "US", "phone": "…" },
  "discount": 0,
  "shipping_fee": 8.5,
  "tax": 0,
  "required_ship_date": "2026-10-20",
  "note": "…",
  "lines": [
    { "product_id": "<uuid>", "qty": 10, "price": 12.9 }
  ]
}
// -> data.order_no = "SO-YYYYMMDD-####", status = "draft"

Consulter les commandes#

GET — liste et détail
GET /api/oms/orders?statuses=confirmed,allocated&channel_id=<uuid>&q=AMZ-123&created_from=2026-10-01&page=1&page_size=20
// filters: status (single) | statuses (comma-separated) | channel_id | created_from/to (ISO) | q (order_no / channel_order_no / customer fuzzy)

GET /api/oms/orders/<id>
// detail incl. lines, customer, channel; wms_shipments = all linked WMS shipments (no/status/warehouse/carrier/tracking/split flag)

Machine à états de la commande#

PATCH /api/oms/orders/[id] — mode action
PATCH /api/oms/orders/<id>
{ "action": "submit" }          // draft -> pending_review
{ "action": "approve" }         // pending_review -> confirmed (ATP check)
{ "action": "allocate", "warehouse_id": "<uuid>" }   // confirmed -> allocated
{ "action": "release", "ship_mode": "parcel" }       // allocated -> released
{ "action": "fulfill" }         // released -> fulfilled
{ "action": "partial_fulfill" }
{ "action": "deliver" }
{ "action": "cancel" }          // only before released
// illegal transition -> 400; draft edit mode: { "fields": {…}, "lines": […] } (draft only)
  • approve exécute un contrôle ATP (wms_sync lit le solde WMS ; standalone lit le stock OMS).
  • release exige ship_mode et crée des lignes d’allocation (événement sales_order.released).

Envoyer vers WMS#

POST /api/oms/orders/[id]/push-to-wms
POST /api/oms/orders/<id>/push-to-wms
{ "warehouse_id": "<uuid>", "ship_mode": "parcel" }   // both optional
// order status must be confirmed | allocated; result: released + WMS shipment created at commit (inventory locked)
push-to-wms ne fonctionne qu’en mode wms_sync ; les commandes standalone sont rejetées avec 400 NOT_WMS_SYNC. Ensuite, WMS pilote l’expédition : commit → picking → picked → packed → shipped → delivered, avec miroir temps réel vers OMS.