WMS Integration Patterns: Connecting Carriers, OMS, and Inventory
A WMS doesn't live in isolation. It connects to order systems, carriers, inventory, finance. Get the integration right and the warehouse hums. Get it wrong and you fight with discrepancies daily.
Key takeaways
- WMS sits at the center: receives orders from OMS, dispatches to carriers, updates inventory, feeds finance.
- Event-driven integration (Kafka/SQS) handles real-time better than sync APIs.
- Reconciliation jobs catch drift before it compounds.
- Returns close the loop: WMS → inventory → finance.
The system map
- OMS sends orders to WMS
- WMS does picking, packing, dispatch
- Carrier APIs receive shipment details, return tracking
- Inventory system updates from WMS movements
- Finance receives costed events for billing and accounting
- Customer-facing tracking consumes carrier updates
Integration patterns
Order intake from OMS
OMS pushes new orders via webhook or pull from queue. WMS acknowledges, queues for picking.
Dispatch to carrier
WMS generates AWB/tracking number via carrier API. Prints label. Hands shipment to carrier.
Inventory updates
Every pick decrements inventory. Every put-away increments. Every adjustment logged.
Returns
Returned items received at warehouse. WMS inspects, decides restockable/disposable. Updates inventory. Triggers refund via OMS/finance.
Finance events
Each shipment dispatched is a billable event. Cost calculation. Carrier invoice reconciliation later.
Event-driven vs sync
Sync APIs are simpler but brittle. When the OMS is slow or down, WMS waits.
Event-driven (Kafka, SQS, Pub/Sub) is more solid. WMS publishes events; other systems consume at their pace. Decoupled.
For most growing operations, event-driven is the right pattern.
Reconciliation jobs
Even with good integration, systems drift. Reconciliation jobs run periodically:
- Carrier invoices vs your dispatch records
- Inventory in WMS vs physical count
- Orders in OMS vs shipments in WMS
Catch discrepancies; investigate; correct.
Common pitfalls
Sync integration to carrier. Carrier APIs are slow. Async with retries.
No reconciliation. Discrepancies compound silently.
Returns as afterthought. Build the returns flow from day one.
Multiple sources of truth. WMS or OMS, pick one for each fact.
What we recommend
Event-driven backbone. Idempotent event handlers. Daily reconciliation jobs. Single source of truth per data domain.
FAQs
Build vs buy WMS? Unicommerce, Increff, custom, buy unless your operations are unique.
SAP integration? Real but heavy; plan months.
Real-time inventory across multiple warehouses? Yes, events fan out to all interested systems.
