Overview
An order is a commitment. The moment a customer places an order, the business has made a promise — the right product, delivered to the right address, within the expected timeframe, at the agreed price. Every process between order placement and delivery exists to keep that promise. When those processes are manual, fragmented, or dependent on a person checking the right platform at the right time, orders fall through the cracks, promises are broken, and the operational cost of fixing mistakes consumes the margin the sale was supposed to generate.
Order management systems give that promise a defined, automated path from receipt to fulfilment. Every order — regardless of which channel it came from, which fulfilment method it requires, or which exception it encounters along the way — moves through a consistent process with defined steps, defined rules, and defined handling for every condition the order can reach. The operations team manages exceptions rather than processing every order by hand.
We build custom order management systems for e-commerce businesses, wholesalers, and multi-channel retailers that need more than what their commerce platform's native order management provides. Systems that aggregate orders from every channel, route them to the right fulfilment path, coordinate with logistics partners, handle exceptions gracefully, and close the loop with customers and finance automatically.
What Order Management Covers
Order ingestion and normalisation. Orders arrive from multiple sources — own storefront, marketplaces, B2B portals, phone and email orders entered manually, EDI feeds from wholesale customers. Each source delivers orders in its own format, with its own field naming, its own status model, and its own requirements for order confirmation. The order management system normalises all of these into a single internal order model and confirms receipt back to each source in the format it expects.
Order validation. Before an order enters the fulfilment workflow, it is validated — stock availability confirmed, address validated against carrier requirements, payment status verified, fraud signals checked, and business rules applied that may require manual review for specific order characteristics. Orders that fail validation are routed to an exceptions queue with the information needed to resolve them rather than entering the fulfilment workflow in a state that will cause a downstream failure.
Fulfilment routing. Not every order is fulfilled the same way. Own-warehouse fulfilment, third-party logistics partners, dropship suppliers, and click-and-collect all represent different fulfilment paths with different workflows, different documentation requirements, and different handoff points. Fulfilment routing logic assigns each order to the appropriate path based on the products it contains, the delivery address, the channel it came from, and the stock availability at each fulfilment location.
Pick, pack, and despatch coordination. For businesses fulfilling from their own warehouse, the order management system coordinates the pick and pack workflow — generating pick lists, managing batch picking, producing packing slips and channel-specific shipping labels, and recording despatch confirmation with carrier tracking numbers. Integration with warehouse management systems handles this coordination for businesses with dedicated WMS infrastructure.
Carrier integration and label generation. Shipping labels are generated through carrier integrations — SendCloud, MyParcel, PostNL, DHL, and others — with the carrier and service level selected automatically based on the order's requirements, the destination, the weight and dimensions of the shipment, and any carrier preferences the channel or customer specifies. Label generation is embedded in the packing workflow rather than requiring a separate step in a carrier portal.
Status tracking and customer communication. Order status — confirmed, picking, packed, despatched, in transit, delivered — is tracked throughout the fulfilment process and communicated to the customer at the appropriate milestones. Carrier tracking data is retrieved and surfaced through customer-facing status pages and proactive notifications that keep the customer informed without requiring them to contact support.
Returns and reverse logistics. Returns are initiated through the OMS — customer return requests, channel-initiated returns, and operator-initiated returns for undeliverable shipments — and tracked through the reverse logistics process to receipt confirmation, quality check, restocking or write-off, and refund or credit processing. The OMS coordinates return label generation, return status communication to the customer, and the stock and financial updates that complete the return process.
Financial reconciliation. Order revenue, channel fees, shipping costs, and refunds need to reconcile against the financial system. The OMS produces the financial data that feeds into accounting — channel fee deductions, shipping cost attribution, return refund amounts — and integrates with Exact Online, AFAS, or the relevant accounting platform to post that data without manual re-entry.
Handling Exceptions
The majority of orders flow through without requiring manual intervention. The value of an OMS is often most visible in how it handles the minority that do not.
Out-of-stock on order placement. Stock that shows as available when the customer orders may be unavailable by the time the order reaches the fulfilment workflow — sold out through another channel in the window between order placement and fulfilment processing. The OMS detects this condition, routes the order to the exceptions queue, and triggers the defined handling — customer notification, partial fulfilment offer, backorder, or cancellation — rather than leaving it to be discovered manually.
Address issues. Delivery addresses that fail carrier validation — incomplete addresses, undeliverable postcodes, mismatched city and postcode combinations — are caught before the label is generated rather than after the shipment is created. The OMS surfaces the issue to the operations team with the carrier's validation feedback and the tools to correct and reprocess.
Payment holds. Orders where payment has not been confirmed — pending payment, failed payment, payment requiring additional verification — are held from the fulfilment workflow until payment status is resolved. Payment status is monitored and the order moves to fulfilment automatically when payment confirms, or to cancellation handling when it fails definitively.
Fulfilment failures. Carrier collection failures, warehouse processing errors, and dropship supplier rejections are detected and escalated rather than silently stalling. The operations team sees failed fulfilment attempts with the failure reason and the options for reprocessing or alternative fulfilment routing.
Split shipments. Orders that cannot be fulfilled from a single location — because stock is distributed across multiple warehouses, or because different items in the order require different fulfilment paths — are split into multiple shipments with coordinated tracking and customer communication that presents the split as a unified delivery experience rather than unexplained partial deliveries.
Channel-Specific Requirements
Each channel imposes specific requirements on how orders are processed and confirmed. The OMS handles these requirements per channel without requiring the operations team to know or manage the differences.
Bol.com. Order confirmation within the required window, shipment confirmation with carrier and tracking data in the format Bol.com requires, return handling via the Bol.com returns API, and the performance metrics — on-time despatch, cancellation rate — that affect seller account standing. Missing Bol.com's confirmation windows results in automatic cancellations and seller score impact; the OMS ensures confirmations are sent before those windows close.
Amazon. Acknowledgement of Amazon orders within the required timeframe, shipment confirmation with valid tracking data, FBA inventory management for sellers using Amazon fulfilment, and A-to-Z claim handling for orders disputed by customers. Amazon's seller performance metrics are monitored and surfaced in the OMS reporting layer.
Own storefront. Flexible handling that matches the storefront's customer experience — branded despatch confirmation emails, customer-facing order tracking pages, self-service return initiation, and the account order history that lets customers manage their own orders without contacting support.
B2B and wholesale. Order acknowledgement in the format the buyer expects — EDI 855 acknowledgements, PDF order confirmations, or API response confirmations. Despatch notifications with advance shipping notice (ASN) data for buyers who require it. Invoice generation and delivery in the buyer's required format and to the buyer's required destination.
Integration Points
An OMS sits at the centre of an e-commerce operation's integration landscape — connecting the channels that generate orders with the systems that fulfil them and the platforms that record the financial outcomes.
Sales channels. Shopify, WooCommerce, Bol.com, Amazon, and custom storefront APIs for order ingestion and status feedback.
Logistics and carriers. SendCloud, MyParcel, PostNL, DHL, UPS, and other carriers for label generation, collection booking, and tracking data retrieval.
Warehouse management. Integration with WMS platforms for pick and pack coordination, or direct warehouse integration for businesses managing fulfilment through the OMS itself.
ERP and accounting. Exact Online, AFAS, Twinfield for financial posting — revenue recognition, fee deduction, shipping cost attribution, refund processing.
Supplier and dropship. Purchase order generation and despatch confirmation retrieval for dropship suppliers — with the supplier-specific formats and communication channels each supplier requires.
Customer communication. Email and SMS notification delivery via configured channels, with template management that allows the operations team to manage notification content without developer involvement.
Technologies Used
- React / Next.js — operations interface, order management dashboard, customer-facing tracking pages
- TypeScript — type-safe frontend and API layer throughout
- Rust / Axum — high-throughput order ingestion, real-time status processing, carrier API integration
- C# / ASP.NET Core — complex order routing logic, ERP integration, EDI processing
- SQL (PostgreSQL, MySQL) — order storage, fulfilment history, financial reconciliation data
- Redis — order processing state, event queuing, real-time status updates
- SendCloud / MyParcel / PostNL — carrier integration and label generation
- Shopify / WooCommerce / Bol.com / Amazon APIs — channel order ingestion and status feedback
- Exact Online / AFAS / Twinfield — financial integration
- REST / Webhooks — channel and logistics partner connectivity
- SMTP / SMS — customer notification delivery
Custom OMS vs Platform-Native Order Management
Commerce platforms include order management functionality. For businesses operating on a single channel with straightforward fulfilment, the platform's native order management is often sufficient. The limitations become apparent when the operation grows beyond what the platform was designed for.
Platform-native order management is designed around the platform's own channel. It handles orders from that platform well and extends to other channels awkwardly or not at all. It provides the fulfilment workflows the platform supports and requires manual workarounds for the ones it does not. It connects to the integrations the platform marketplace offers and makes connecting to anything else the developer's problem.
A custom OMS is designed around the operation — the specific channels, fulfilment methods, carrier relationships, exception types, and integration requirements that the business actually has. It handles the workflows the business runs rather than the workflows a platform assumed the business would run.
The decision point is usually reached when the manual effort required to manage orders across platforms and processes exceeds the cost of the tooling that would automate it — or when a fulfilment failure caused by a gap in the platform's order management has become too expensive to tolerate.
From Order Received to Order Delivered
A well-built order management system is invisible to the operations team in the best way — orders flow through without needing to be touched, exceptions surface clearly when they need attention, and the operation scales with order volume rather than with headcount.