A $40M D2C brand we work with runs four separate Shopify stores. Every morning, one person on the operations team pulls orders out of each store, joins them with shipping data from a third-party reporting tool, hand-pastes about twenty-four thousand rows per year into a Sage workbook, and reconciles the resulting invoices. That morning routine takes thirty minutes when nothing breaks. About twice a week, something breaks.

This is the silent operational tax that mid-market brands pay because their order management system is either missing, the wrong fit, or stitched together out of three platforms that do not talk to each other. The problem is not that brands at this size do not have an OMS. It is that "an OMS" at $20-100M revenue does not look like "an OMS" at $5M, and most operators do not realize they have grown out of the tools that worked for the first three years.

This is the operator's guide to picking the right OMS at $20-100M. What an OMS actually does at this size, the five categories the market splits into, the eight platforms worth knowing about, the build-versus-buy decision tree, and the migration pattern that does not blow up your operations team during the switch.

What an order management system actually does at $20-100M

The term "order management system" gets used to describe everything from a Shopify checkout to a SAP module. At $20-100M, the OMS sits in a specific spot: it is the system of record for every order from every channel, the routing engine that decides which warehouse fulfills it, the financial-reconciliation source feeding your ERP, and the visibility layer that customer service uses to answer "where is my order."

An OMS at mid-market is doing eight jobs at once:

  1. Order capture from every sales channel (Shopify, Amazon, eBay, Walmart, retail POS, B2B portals)
  2. Inventory allocation across warehouses, with real-time stock visibility
  3. Routing logic deciding which warehouse fulfills which order based on stock, customer location, and carrier reliability
  4. Order batching for warehouse efficiency (multiple orders picked together to cut per-order pick time)
  5. Exception handling for split shipments, backorders, returns, and address validation failures
  6. Financial reconciliation producing the data your accounting system needs to invoice and recognize revenue
  7. Customer-facing visibility through tracking, returns portals, and customer service tooling
  8. Reporting on fulfilment time, carrier performance, exception rates, and channel-level economics

Brands that under-invest here pay in lost margin (bad routing decisions), lost productivity (the morning Sage paste), and lost customers (missed delivery promises). Brands that over-invest pay in implementation hell and feature complexity nobody uses. Picking the right tier is the work.

The five categories of order management system

The OMS market splits into five tiers. Most $20-100M brands belong in tier 2 or tier 3.

Tier 1: Storefront-native OMS (Shopify Order Management, BigCommerce Orders)

What ships inside your storefront platform. Works fine at sub-$5M revenue. Falls apart the moment you add a second warehouse, a marketplace, or a wholesale channel. If your morning routine involves opening multiple admin tabs and copying data between them, you have outgrown this tier.

Tier 2: Standalone mid-market OMS (Cin7, Brightpearl, Linnworks, Veeqo)

Purpose-built OMS platforms designed for $5-100M brands. Multi-channel, multi-warehouse, decent reporting, real customer support. Annual cost typically $15,000-$60,000. This is where most $20-50M brands should land.

Tier 3: ERP-anchored OMS (NetSuite SuiteOMS, Microsoft Dynamics 365 Commerce, Sage X3)

The OMS module of a full ERP. Right when your finance team needs the order data to live in the same system as your GL, inventory accounting, and procurement. Annual cost typically $30,000-$200,000+. Heavy implementation but the data-unification payoff is real at $50M+.

Tier 4: Composable OMS (Fluent Commerce, IBM Sterling, Manhattan Active Omni)

Enterprise-grade headless platforms designed for omnichannel retailers. Annual cost typically $250,000+. Overkill for most mid-market brands. Right only if you have 50+ retail stores or true global omnichannel ambitions.

Tier 5: Build-your-own on top of a 3PL (ShipBob, ShipHero, ShipMonk plus custom layers)

Some brands skip the OMS entirely and let their 3PL handle order flow, then build a thin custom layer on top for reporting and reconciliation. Works for asset-light D2C brands at sub-$30M. Falls over once channels multiply.

The eight platforms actually worth evaluating at $20-100M

If you are RFP'ing an OMS at this revenue band, these are the eight that come up repeatedly in the mid-market bake-offs we see. Tier 2 and tier 3 only; the others are wrong for this size.

PlatformBest forAnnual cost (approx)Watch out for
Cin7 CoreMulti-channel D2C, fast deployment$10K-$30KReporting is weaker than competitors; export to BI tools needed
Cin7 Omni (Orderhive)Multi-channel + B2B mix$15K-$40KTwo products under one brand confuse the sales cycle
BrightpearlMulti-channel retail brands with retail stores$25K-$60KSage-owned now; long-term roadmap uncertain
NetSuite SuiteOMSBrands ready for ERP unification$30K-$150KImplementation routinely takes 6-9 months
Shopify Plus + Shopify Order ManagementShopify-first brands with 2-3 channels$24K floor + per-featureMulti-store complexity not fully solved
LinnworksMarketplace-heavy brands (Amazon + eBay + Walmart)$15K-$40KUK origin; US support quality varies
Veeqo (Amazon-owned)Brands deep in the Amazon ecosystemFree with Amazon Seller; paid tiers existYou are sharing data with your largest channel partner
Microsoft Dynamics 365 CommerceBrands on Microsoft stack moving toward ERP-anchored$60K-$200KBest fit if you are also adopting the full Microsoft AI stack

The multi-store coordination problem

The single biggest reason mid-market brands outgrow their existing OMS is that they go from one storefront to two, then three, then four. Each store has its own admin. Each runs its own daily reports. Each has its own SKU naming convention. Each pushes orders into your warehouse and your accounting system in its own format.

The morning routine becomes the canary. When the operations lead is opening four Shopify admin tabs every morning, downloading a CSV from each, joining them in Excel, and pasting the result into Sage or NetSuite, the brand has crossed the threshold where a real OMS would pay for itself within ninety days.

The right OMS at this point unifies all four stores into one queue. One inventory pool (or four pools with cross-visibility). One financial export. One source of truth for customer service. The morning routine becomes "verify yesterday's reconciliation ran clean" instead of "rebuild yesterday's reconciliation manually." This is the single largest productivity unlock at the $20-50M band.

Order batching: where the next 10 percent of warehouse efficiency hides

Once the OMS is in place, order batching is where most mid-market brands leave money on the table. Batching means grouping multiple orders together so a single warehouse worker picks the SKUs for ten or twenty orders in one walk through the warehouse, rather than walking the same route twenty separate times.

For a brand we work with that ships fifteen hundred orders per day from a single warehouse, switching to a proper batching system cut per-order pick time by about 35 percent. The catch is that batching logic is brittle. It needs to handle box-size assignment (a six-bottle order does not fit in the same box as a one-bottle order). It needs to handle SKU-mix logic (orders with refrigerated items cannot be batched with non-refrigerated). It needs to handle priority logic (expedited orders pick first, even if they break the batch). And it needs to handle exception orders that should not be batched at all (B2B wholesale, gift wrap, custom requests).

Most OMS platforms ship with a basic batching engine. Tier 2 (Cin7, Brightpearl) has acceptable batching out of the box. Tier 3 (NetSuite, Dynamics) has more configurable batching but requires the rules to be set up correctly during implementation. Tier 4 (Fluent, Manhattan) has industrial-grade batching for enterprise warehouses.

The mid-market trap: rolling out batching without the picking team's input. Renaming "box" to "bottle" is exactly the kind of detail that decides whether the team adopts the new system or quietly reverts to the old one in week three.

AI on top of the OMS: what actually works

AI features on top of the OMS are the new sales pitch from every vendor in this category. Most of them are mediocre. The handful that actually move the business at mid-market:

  • Demand-aware routing. The OMS routes orders based on real-time stock, but better OMSes also factor demand-velocity signals: which warehouse is about to stock out, which carrier is currently late to which region, which SKU is about to be reordered. This is where the AI inventory management patterns and the OMS overlap.
  • Exception auto-resolution. Address validation failures, payment holds, fraud-flagged orders. AI can resolve 60-70 percent of these automatically that a CS rep used to touch. The remaining 30-40 percent still need human eyes but get queued cleanly.
  • Carrier scoring overlays. The OMS picks a carrier; an AI layer evaluates carrier reliability per-route per-week and overrides the OMS default when a specific lane is underperforming.
  • Returns triage. Photo and reason-text analysis to categorize returns (defect vs buyer's remorse vs sizing issue) and route to the right resolution path automatically.

What does not work: AI-driven demand forecasting baked into the OMS. The data is usually too sparse, the variance too high, and the marginal improvement over a moving-average baseline is not worth the implementation cost. Forecasting belongs upstream in the data layer, not inside the OMS itself.

The build versus buy versus partner decision

The OMS build-versus-buy decision is more binary than most software purchases.

Buy off-the-shelf: almost always the right call at $20-100M. The eight platforms above cover 95 percent of real mid-market use cases. The remaining 5 percent of business-specific logic gets handled with custom layers on top, not by rebuilding the core OMS.

Build entirely custom: almost never the right call at this size. The implementation cost is $300K-$1M, the maintenance burden is permanent, and the team you would need to hire (3-5 senior engineers, an operations product manager, a data engineer) costs $800K-$1.5M per year. Brands that go this route at $20-100M almost always regret it within two years and migrate to a packaged platform anyway.

Partner with an implementation firm: the question is not whether to partner, but for which parts. The OMS itself is buy. The connectors (between OMS and ERP, OMS and 3PL, OMS and CRM) are where partners add the most value. The AI overlay (the routing, the exception handling, the carrier scoring) is where the differentiation lives and where the build-with-a-partner model usually wins. We cover the broader framework in the real cost of slow vendor onboarding.

Migration pattern: how to switch OMSes without breaking operations

Switching an OMS is one of the highest-risk projects an operations team can run. The wrong sequence breaks shipments for a week and costs more than the OMS itself in lost margin and customer trust. The pattern that works:

  1. Weeks 1-2: Data mapping and reconciliation. Every SKU, every customer, every channel mapped one-to-one between old and new systems. This is the unglamorous work that determines whether the cutover succeeds.
  2. Weeks 3-4: Parallel-run on a single channel. Pick your smallest sales channel (often retail wholesale or a single Shopify store). Run both OMSes in parallel. Validate that every order appears identically in both systems.
  3. Weeks 5-6: Parallel-run on all channels. Expand parallel-run to every channel. Reconcile daily. Fix the inevitable issues with naming conventions, tax codes, and carrier mappings.
  4. Weeks 7-8: Cutover with rollback. Switch the primary system. Keep the old one available as read-only for 30 days. Plan a specific rollback point if something catastrophic happens.
  5. Weeks 9-12: Stabilization. Tune routing rules, batching logic, exception thresholds. Train the operations and customer service teams on the new workflows. This is where the per-team playbooks earn their keep.

Total time: 12-16 weeks for a smooth mid-market OMS migration. The brands that try to compress this to four weeks routinely lose a week of fulfilment somewhere in the middle.

What it actually costs at $20-100M

Realistic total cost of ownership for an OMS at this band, year-one:

  • Software: $15,000-$60,000 for tier 2 (Cin7, Brightpearl), $30,000-$200,000 for tier 3 (NetSuite, Dynamics)
  • Implementation: $30,000-$150,000 depending on tier and complexity. ERP-anchored is the high end.
  • Custom connector work: $20,000-$80,000 typically. Connecting OMS to ERP, to 3PL, to CRM, to ad platforms. This is the line that gets underestimated.
  • Internal time: 1-2 full-time-equivalents from the operations team for 8-12 weeks. Not free.
  • Year-1 total: $80,000-$400,000 depending on tier and tooling depth
  • Year-2 onward (steady state): $25,000-$100,000 annual software plus 0.5 FTE of operations time

For a $30M brand the year-one cost typically runs 0.3-0.7 percent of revenue. The brands that get this right usually recover the year-one cost in 6-9 months through reduced fulfilment errors, faster reconciliation, and labor savings on the morning Sage routine.

Common failures

  • Picking the OMS before mapping the data. Every brand thinks their SKU naming is standard. It is not. The migration breaks here. Map first, pick second.
  • Treating it as an IT project. The OMS lives or dies on whether the operations team adopts it. IT-led rollouts that skip operations training fail by month three. Same pattern as the N8N migration we covered separately.
  • Skipping the connector budget. Most brands budget the OMS license and the implementation, then run out of money on the connectors that make it actually useful. Budget connectors as 40-60 percent of total project cost from day one.
  • Choosing tier 4 too early. Composable enterprise OMSes are tempting for the optionality. They are also wrong at this size. Buy tier 2 or tier 3, outgrow it visibly, then upgrade.
  • Not budgeting for the year-two stabilization work. Year one is implementation. Year two is when you actually learn what does not work and need engineering time to fix it. Brands that staff this correctly compound. Brands that do not stagnate.

Frequently asked questions

What is the best order management system for a $20-50M D2C brand?

For most $20-50M D2C brands, Cin7 Core or Brightpearl is the right starting point. Both are tier 2 mid-market OMSes priced at $15,000-$40,000 per year with reasonable implementation timelines (8-12 weeks) and decent multi-channel support. Move up to NetSuite SuiteOMS or Dynamics 365 Commerce only when finance needs the order data unified with the GL, typically at $50M+ revenue.

Should we use Shopify's built-in order management or a separate OMS?

Shopify's built-in order management works fine for single-store, single-warehouse brands at sub-$5M revenue. Beyond that, you typically need a separate OMS. Shopify Plus + Shopify Order Management has improved at multi-store, but the multi-store coordination story is still not fully solved. If you have 2+ Shopify stores plus a marketplace channel, a tier 2 OMS (Cin7, Linnworks) usually pays for itself within ninety days.

How long does an OMS migration actually take?

12-16 weeks for a smooth mid-market migration that does not break operations. Data mapping (weeks 1-2), single-channel parallel-run (weeks 3-4), all-channel parallel-run (weeks 5-6), cutover with rollback (weeks 7-8), and stabilization (weeks 9-12). Trying to compress this to 4 weeks is the most common cause of migration disasters.

What is the difference between an OMS and an ERP?

An OMS manages the lifecycle of an order from capture through fulfilment. An ERP manages the entire business: finance, inventory accounting, procurement, HR, and the rest. They overlap in the order-and-inventory layer. At $20-30M most brands run a standalone OMS plus a lightweight accounting system (QuickBooks, Xero). At $50M+ they often consolidate into an ERP with an OMS module (NetSuite, Dynamics).

Do I need a 3PL if I have a good OMS?

Different questions. A 3PL handles the physical fulfilment (warehouse, pick, pack, ship). An OMS handles the order data and routing. You can run an in-house warehouse with a good OMS, or use a 3PL with no OMS, but at $20-100M most brands run both: a 3PL (or in-house warehouse) for physical fulfilment, plus an OMS for order management and visibility.

Can AI replace an order management system?

No. AI sits on top of the OMS, not in place of it. The OMS is the system of record and the routing engine; AI handles exception resolution, demand-aware routing overlays, returns triage, and carrier scoring. Brands that try to skip the OMS layer and replace it with AI agents end up rebuilding the OMS poorly.

Bottom line

The right order management system at $20-100M is almost always a tier 2 or tier 3 packaged platform, picked based on how many sales channels you run, how much your finance team needs the data unified with the GL, and which ERP you are running today. The mistakes are predictable: picking the wrong tier, underbudgeting the connectors, skipping data mapping, and treating it as an IT project instead of an operations project. Avoid those and your morning routine stops being the canary that something is broken.