Build & Ship

How to build a warehouse management system in 2026: Features, architecture, and build vs buy

By Riya Thambiraj13 min

What Matters

  • -SaaS WMS is almost always the right starting point. Build custom only when you've outgrown SaaS or your operations are genuinely non-standard.
  • -ERP integration is the single biggest cost variable in custom WMS development - connecting to SAP or Oracle adds $20K-60K and 8-12 weeks.
  • -The receiving and putaway module is the foundation everything else depends on - get this right before optimizing picking.
  • -Wave picking and batch picking logic is complex but delivers 30-50% throughput improvement. Build it in Phase 2, not Phase 1.
  • -Mobile-first design for the warehouse floor is non-negotiable - workers use handheld scanners, not desktop browsers.

Most businesses don't need to build a WMS. They need to pick one. Manhattan Scale, Deposco, Logiwa, or any of 20 other solid SaaS platforms will handle most warehouse operations without a single line of custom code.

But some businesses do need to build. When your SaaS licensing hits $120K/year and the system still can't handle your mixed-temperature zones. When your retail compliance requirements mean your "customizations" are basically a custom system hosted on someone else's servers. When WMS software is your product.

This guide covers both: how to decide whether to build, and what building actually requires.

Build vs buy: The real decision

The standard advice - "buy unless your operations are unique" - is correct but unhelpfully vague. Here's a sharper framework.

When to buy SaaS

You should use a SaaS WMS if:

  • Your operations follow standard inbound/outbound flows
  • Your annual SaaS cost is under $80K
  • You don't have an internal tech team to own a custom system
  • You need to be operational in under 6 months

Good SaaS options by warehouse size:

  • Small (under 20 staff): Fishbowl, inFlow, Zoho Inventory ($200-800/month)
  • Mid-market (20-100 staff): Logiwa, Extensiv, ShipBob WMS ($1,500-6,000/month)
  • Enterprise (100+ staff): Manhattan Associates, JDA, Oracle WMS ($8,000-15,000+/month)

When to build custom

Build custom when one or more of these apply:

  • Annual SaaS licensing exceeds $100K and shows no sign of decreasing
  • Your warehouse operations genuinely don't fit standard WMS workflows (unusual product types, non-standard compliance, highly specialized picking logic)
  • You're building WMS as a product to sell or white-label
  • You need deep integration with proprietary systems that SaaS vendors won't support
  • You have an internal engineering team and a multi-year roadmap

One specific trigger: if you're running a 3PL (third-party logistics), custom WMS is often justified because you need multi-client inventory isolation, client-specific billing rules, and direct API access for client integrations - features most SaaS WMS platforms handle poorly.

For a detailed cost breakdown see: Warehouse Management System Cost in 2026.

Core WMS modules and what they do

A warehouse management system is a collection of interconnected modules. Here's what each does and why it matters.

1. Receiving

Receiving is the first point of control. Everything that enters the warehouse passes through this module.

Core functions:

  • Purchase order (PO) lookup - scan or enter PO, system shows expected items
  • Advanced shipping notice (ASN) matching - verify received quantities against what was shipped
  • Quality check workflow - hold items pending QC, release to inventory on pass
  • Discrepancy recording - short-receive, over-receive, damaged items
  • Label printing - apply WMS location labels to incoming items

Why it matters: garbage in, garbage out. If receiving is sloppy - wrong quantities entered, wrong SKUs scanned - the entire downstream inventory is wrong. Build this module well and you prevent a category of problems.

2. Putaway

Putaway assigns received inventory to storage locations. This sounds simple. Done well, it directly reduces picking labor costs.

Core functions:

  • Location management (zones, aisles, bays, levels)
  • Directed putaway rules (put fast-movers near shipping, heavy items on bottom rack levels, hazmat in designated zones)
  • Zone capacity management (don't overfill a zone)
  • Cross-docking flag (some items go directly to outbound staging without putaway)

Advanced: slotting optimization - periodically analyze picking patterns and suggest relocating slow-movers out of prime picking slots. This is a 15-20% throughput improvement you can add in Phase 2.

3. Inventory management

The core ledger. Every movement of every item, tracked in real time.

Core functions:

  • Real-time stock levels by location
  • Lot/batch tracking (essential for food, pharma, and other perishables)
  • Serial number tracking (for high-value items that need individual tracking)
  • Cycle count management (daily counts of a rotating subset of locations, faster and more accurate than annual physical inventory)
  • Inventory adjustment with reason codes (found, damaged, expired, returned)
  • Min/max reorder points and alerts

The cycle count module is often overlooked in custom WMS builds. A good cycle count process catches inventory discrepancies before they cause order failures. Build it.

4. Picking

Picking - retrieving items from storage to fulfill orders - is where labor cost lives. The US warehouse industry spends 50-60% of labor hours on picking. Your picking module architecture directly impacts throughput.

Discrete picking: One picker, one order at a time. Simple. Works at low volume. Not efficient.

Batch picking: One picker, multiple orders at once (typically 4-12). Picker collects all items for all orders in one pass, then sorts at a pack station. 30-40% more efficient than discrete. More complex to build (need to track which items belong to which order during pick).

Zone picking: Warehouse divided into zones. Each picker owns one zone. Orders pass through zones (conveyor, cart, relay). Works in large warehouses with 50,000+ SKUs. Complex to orchestrate.

Wave picking: Orders grouped into waves (batches released at scheduled intervals). Wave planning considers order priority, carrier cutoffs, labor availability. Enterprise-grade picking logic.

For an MVP, start with batch picking. It handles most mid-market scenarios efficiently and is buildable in 4-6 weeks.

5. Packing and shipping

After picking, items go to a pack station.

Core functions:

  • Verify picked items against order (scan each item, system confirms)
  • Cartonization - suggest which box size to use based on item dimensions and weight
  • Label printing - carrier labels (UPS, FedEx, USPS) generated via carrier APIs
  • Manifesting - end-of-day manifest closed out, sent to carrier
  • Proof of carrier pickup

Carrier label integration (via ShipEngine, EasyPost, or direct carrier APIs) is a significant piece of work. Budget 2-3 weeks for multi-carrier label generation with rate shopping.

6. Returns management

Returns processing is the module everyone forgets until launch day.

Core functions:

  • Return merchandise authorization (RMA) creation from order
  • Receiving returns (scan returned items, link to original order)
  • Disposition logic - resell, refurbish, quarantine, destroy
  • Inventory reintegration for sellable returns
  • Carrier label generation for customer-side returns

For B2C operations, returns can be 15-30% of outbound volume in some categories. Size the module accordingly.

Architecture for a custom WMS

Data model fundamentals

The core entities in a WMS:

Location → Zone → Aisle → Bay → Level → Position
  - location_id
  - type: enum (storage, staging, receiving, shipping, QC-hold)
  - max_weight, max_volume
  - temperature_zone: enum (ambient, chilled, frozen)

Product
  - sku, barcode, name
  - dimensions (l, w, h, weight)
  - storage requirements (temperature, hazmat class)
  - lot_tracked: boolean
  - serial_tracked: boolean

Inventory
  - location_id
  - product_id
  - lot_number (if lot_tracked)
  - quantity
  - status: enum (available, reserved, quarantine, damaged)

Order
  - order_id, external_order_id (from ERP or ecommerce)
  - status: enum (received, released, wave_assigned, picked, packed, shipped)
  - priority, carrier_service
  - line_items[]

Wave
  - wave_id, created_at
  - orders[]
  - pickers_assigned[]
  - status: enum (planned, active, complete)

Mobile app architecture

Your warehouse floor users work with handheld scanners. These run Android. Your mobile app needs to work well on small screens with barcode scanner hardware input.

Two options:

  • React Native app (same codebase for iOS/Android, faster development)
  • Progressive Web App (runs in browser, easier to deploy, performance limitations)

For warehouse operations, native or React Native beats PWA. Scan response time matters when a picker scans 200 items per hour. A 200ms lag on each scan adds 40 seconds per hour and noticeably frustrates workers.

Build for Zebra handheld scanners (TC-series). They're the industry standard. Test your app on actual devices - Android emulators don't reproduce hardware scanner behavior accurately.

ERP integration

Most custom WMS builds include ERP integration. This is the biggest variable in build scope and timeline.

Modern ERP (SAP S/4HANA, Oracle Cloud, NetSuite): REST API integration. 4-6 weeks for a clean implementation.

Legacy SAP ECC: BAPI or IDoc integration. Complex, well-documented, but verbose. 8-12 weeks.

Legacy Oracle E-Business Suite: SOAP/XML integration. Similar complexity to legacy SAP.

Custom ERP or homegrown systems: File-based or direct database integration. Timeline varies wildly (4-16 weeks).

Data flowing from ERP to WMS:

  • Purchase orders (expected inbound shipments)
  • Sales orders (outbound fulfillment requests)
  • Item master data (new products, price/description changes)

Data flowing from WMS to ERP:

  • Received inventory confirmations
  • Shipped order confirmations
  • Inventory adjustments
  • Labor cost records (if tracking labor in WMS)

Define the integration contract before development starts. Changes to the integration contract mid-build are expensive.

Label printing

Zebra printers are the standard for warehouse barcode labels. They use ZPL (Zebra Programming Language) for label formatting.

Your WMS needs to:

  • Generate ZPL-formatted label templates for location labels, receiving labels, carton labels, and shipping labels
  • Send print jobs to networked Zebra printers over TCP
  • Handle print failures (printer offline, out of paper)

This sounds like a footnote. It's a 2-3 week development effort with meaningful QA requirements - you don't want mislabeled cartons.

Build phases

Phase 1: Core operations (weeks 1-14, $65K-110K)

  • Location management setup
  • Receiving module (PO-based, ASN matching, QC workflow)
  • Basic putaway (directed by zone, no slotting optimization)
  • Inventory tracking (real-time stock by location, basic adjustments)
  • Discrete picking (one picker, one order)
  • Basic shipping (carrier label printing, manual manifesting)
  • Mobile app for receiving and picking
  • Admin dashboard (stock levels, order status)

This is a functional WMS. It handles inbound and outbound flows. It may not be as efficient as mature SaaS, but it works.

Phase 2: Efficiency and integration (weeks 15-26, +$50K-90K)

  • Batch picking with multi-order pick lists
  • Cycle count module
  • ERP integration (PO and SO sync)
  • Multi-carrier shipping with rate shopping
  • Returns processing
  • Slotting optimization (location recommendations based on pick frequency)
  • Labor tracking (picks per hour, time per zone)
  • Wave planning (scheduled releases by carrier cutoff)

Phase 3: Advanced operations (weeks 27+, +$30K-60K)

  • AI demand forecasting (predict stock needs for upcoming periods)
  • AI-powered slotting recommendations (ML model trained on pick data)
  • IoT sensor integration (RFID, weight sensors, conveyor systems)
  • 3PL multi-client inventory (if applicable)
  • Advanced analytics (inventory turnover, order cycle time, dock-to-stock time)

What it costs to maintain

A custom WMS doesn't stop costing money at launch. Budget for:

  • Infrastructure: $800-3,000/month depending on scale (servers, database, backups)
  • Engineering maintenance: 0.5-1 FTE for bug fixes, carrier API updates, ERP integration changes. Budget $3,000-8,000/month.
  • Carrier API updates: Carriers change label formats and API endpoints. Plan 2-4 updates per year, roughly $500-2,000 per update.
  • Hardware compatibility: New scanner models require testing. Budget 1 week per major hardware refresh.

Total annual maintenance: $50K-120K per year for a mid-market system. This is the number that justifies or disqualifies a custom WMS decision.

Common mistakes in WMS development

Building picking before receiving: You can't pick accurately if receiving is sloppy. The inventory record is only as good as the data entered on inbound. Build and perfect receiving first.

Ignoring label printing complexity: Teams budget 2 days for label printing and spend 3 weeks on it. Zebra printer integration, ZPL template design, and network print handling is a real project.

Not designing for scanners from day one: A WMS designed for mouse and keyboard and retrofitted for scanners is painful to use. Design every screen for a 4-inch scanner screen with hardware keyboard input from the first wireframe.

Underestimating ERP integration: "The ERP has an API" does not mean integration is easy. Mapping your WMS data model to the ERP's data model, handling sync conflicts, and managing connection failures is 6-12 weeks of work for a mature ERP system.

Skipping cycle counts: Annual physical inventory is a warehouse shutting down for a day to count everything. A cycle count program (count 100-200 locations per day on a rotating basis) is more accurate and costs nothing in downtime. Build the cycle count module.


Building a WMS is a 6-month project that produces a competitive advantage - IF your operations genuinely need something SaaS can't provide. Most don't. But for logistics operators with unique workflows, 3PLs building client-facing tools, or companies where WMS licensing is a major cost line, custom is the right call.

At 1Raft, we've built logistics and operations software across manufacturing, distribution, and 3PL clients. We scope custom WMS builds in a free discovery session and tell you honestly whether a SaaS platform would serve you better.

Looking for the cost breakdown first? See our Warehouse Management System Cost guide.

Share this article