OMS (order management system)
The control center that routes orders across stores and warehouses, then tracks splits, fulfillment, cancellations, returns, and exchanges.
See it
What it is
An OMS is the control layer for an order after checkout. It decides which store, warehouse, supplier, or 3PL should fulfill each line, tracks split shipments, and keeps cancellations, returns, and exchanges attached to the original order even when several systems do the work.
Reach for one when orders can arrive from multiple channels or leave from multiple locations. A basic store admin can hand one order to one warehouse; an OMS earns its keep when it must choose the nearest stocked location, avoid splitting a shipment, or reroute a line after a pick fails.
Gotcha: routing against stale inventory creates orders no location can fulfill. Treat every routing decision as reversible until stock is reserved, make each state transition idempotent, and keep an event history. Without that history, support cannot explain why half an order shipped from a store while the other half was canceled.
Ask AI for it
Build an order management service for orders spanning stores, warehouses, and a 3PL. Model immutable order lines, fulfillment orders, allocations, reservations, shipments, cancellations, returns, and exchanges as explicit states with an append-only event log. Implement a routing worker in PostgreSQL using SELECT FOR UPDATE SKIP LOCKED; rank locations by complete-stock availability, split count, distance, and handling time, then reserve inventory in the same transaction. Make commands idempotent, retry failed 3PL dispatches with exponential backoff, reroute rejected allocations, and give operations staff a timeline showing every decision and external reference.