• Warehouse team managing inventory locations and pick routes by memory because the WMS doesn't reflect the actual warehouse layout?

  • Stock discrepancies only discovered at month-end stocktake, by which point fulfilment errors have already reached customers?

Warehouse Management System Development

Custom WMS built for 3PLs, distributors, and e-commerce fulfilment operations who need receiving, pick-pack-ship workflows, inventory location management, and carrier integration in one system -- not a generic platform your team works around.

Built around your warehouse layout, your pick strategy, and your client requirements. Barcode and RFID scanning, wave management, cycle counting, and multi-client billing for 3PLs who charge clients based on actual activity.

  • Receiving and putaway workflows with directed location assignment based on your slotting rules

  • Pick-pack-ship with wave management, batch picking, and carrier label generation

  • Cycle counting programs that maintain inventory accuracy without shutting down the warehouse

  • Multi-client billing for 3PLs -- storage charges, handling fees, and activity-based billing per client

RaftLabs builds custom warehouse management systems covering receiving and putaway, inventory location management, pick-pack-ship workflows, cycle counting, barcode and RFID scanning, wave management, multi-client billing for 3PLs, and carrier label generation. Most WMS projects ship in 10-14 weeks at a fixed cost with full source code ownership.

Vodafone
Aldi
Nike
Microsoft
Heineken
Cisco
Calorgas
Energia Rewards
GE
Bank of America
T-Mobile
Valero
Techstars
East Ventures
Products shipped
100+
Industries served
24+
Cost delivery
Fixed
Week delivery cycles
12-14

Warehouse accuracy requires a system that reflects how your warehouse actually works

Most warehouse management problems trace back to the same root cause: the WMS was configured for a generic warehouse, not yours. Inventory location management doesn't match your physical layout. Pick routes don't follow the most efficient path through your aisles. The system doesn't account for the way you batch orders or assign pickers to zones.

When the system doesn't reflect reality, warehouse teams work around it -- managing locations by memory, handwriting pick lists, using whiteboards for wave planning. The WMS becomes a record-keeping tool that follows what people did, rather than a system that directs what they should do next.

Custom WMS development starts with your warehouse: your physical layout, your product mix, your slotting rules, and your pick strategy. The system is built around the way you actually operate, not a vendor's idea of what a warehouse looks like.

What we build

Receiving and putaway

Receiving workflows that capture inbound shipments against purchase orders, record quantity and condition, apply QC hold processes where required, and generate putaway tasks directed to the correct location based on your slotting rules. Supplier ASN (Advance Ship Notice) matching validates inbound carton counts before the dock door opens, reducing discrepancy resolution time. GS1-128 barcode labels and SSCC (Serial Shipping Container Code) scanning confirm pallet and carton identity at the point of receipt. Blind receiving mode is available for operations that verify supplier accuracy without pre-populating expected quantities.

Directed putaway uses a slot scoring algorithm that factors product velocity (A/B/C classification), weight, cube, temperature zone requirements, and current location capacity to assign the optimal bin position for each received SKU. Cross-docking routes inbound goods directly to outbound staging when open orders exist, bypassing putaway entirely. Putaway task confirmation via RF handheld terminals -- Zebra MC3300 and TC52 are standard integrations -- ensures every product lands in a known, confirmed location from the moment it arrives.

Inventory location management

Location master built to match your physical warehouse -- aisles, bays, levels, and bin positions, modelled down to the individual pick face slot. Every SKU tracked at location level with quantity on hand, quantity allocated to open orders, lot number, expiry date, and serial number where applicable. Slotting rules define which product classes belong in which zone: fast-moving A-velocity SKUs in the primary pick aisle, B-velocity in secondary, and C-velocity in deep bulk storage. Slotting review reports surface SKUs whose observed velocity no longer matches their current slot assignment so the operations team can rebalance periodically.

Mixed-SKU location support handles operations that cannot dedicate one location per SKU without running out of bin positions. Location capacity management tracks available space in volume (cubic metres) or pallet positions so putaway tasks are never directed to a location that cannot physically accept the unit. Transfer tasks generated by the system consolidate slow-moving stock and recover premium pick-face locations for faster-turning product. RFID reader integration -- fixed tunnel readers at dock doors or handheld RFID -- is available for operations with RFID-tagged inventory or reusable assets such as totes and pallets. Integration with SAP WM/EWM and NetSuite WMS is available for sites that run a host ERP alongside the WMS.

Pick-pack-ship workflows

Wave planning groups open orders into pick waves based on shipping carrier cutoff times, service level (next-day, standard, economy), and order priority. Wave release management controls when each wave is sent to the floor, allowing the warehouse manager to release waves progressively as labour becomes available rather than flooding the pick face with tasks simultaneously.

Pick strategy selection is configurable per wave: discrete picking assigns one order per picker from start to finish; batch picking groups multiple orders per picker to reduce travel distance when order profiles are small; zone picking assigns pickers to fixed aisle zones with orders consolidated at a merge point; cluster picking sends a picker with a multi-tote cart to collect several orders in a single aisle pass. Directed pick tasks are delivered to Zebra RF handheld terminals (MC3300 for ambient, TC52 for mobile-intensive environments) following an optimised path through the pick face.

Pack station workflows present the correct carton size recommendation based on order cube, capture weight for carrier rate shopping, and generate packing slips automatically. Shipping label generation integrates with the EasyPost API to produce carrier-compliant labels for parcel carriers (UPS, FedEx, USPS, DHL) and LTL carriers in a single interface, without requiring separate logins to each carrier portal. Ship confirmation with tracking number is pushed back to the originating order management system or Shopify/Magento store in real time. Conveyor and sorter system integration via PLC Modbus TCP is available for operations with automated sortation equipment that needs task triggers from the WMS.

Cycle counting and stocktake

Cycle counting programs divide your warehouse inventory into count groups organised by location zone, product velocity class, or product category, then schedule a small number of location counts each working day. Over a rolling four-to-eight-week period, every location in the warehouse is counted at least once without requiring a warehouse shutdown. This approach keeps inventory accuracy metrics current rather than letting shrinkage and mis-picks accumulate until a full physical stocktake reveals the extent of the problem.

Count tasks are assigned to pickers via RF handheld terminal. The counter scans the location barcode, counts what is physically present, and the WMS compares the result to the system quantity on hand. Variance threshold configuration determines when a minor discrepancy is recorded without action versus when a significant variance triggers a supervisor blind recount before the system quantity is adjusted. Count history and variance trend reporting identify specific locations, product categories, or shifts with recurring accuracy problems so the root cause -- a receive error, a mis-sort at the pack station, or a labelling issue -- can be addressed rather than just corrected. Shrinkage rate is tracked as a separate metric from pick errors so the source of inventory loss is distinguishable. Full stocktake mode supports annual counts or client-requested full physical inventories for 3PL operations where clients have contractual accuracy guarantees.

Barcode and RFID scanning

RF handheld terminal integration covers the full range of WMS task types: receiving, putaway, replenishment, pick, pack, cycle count, and transfer. Supported hardware includes Zebra MC3300 (warehouse-grade handheld for heavy-use environments) and TC52 (touch-based for operations that need a faster scan cycle). Vehicle-mounted terminals for forklift operators handling pallet putaway and bulk picking are also supported. All terminal types connect to the WMS server over Wi-Fi using a browser-based or thin-client interface, which eliminates software update dependencies on the device.

Barcode validation at every task step confirms the correct product identity (GS1-128 barcodes, SSCC labels on pallets) and the correct bin location before the system accepts the task completion. A picker who scans the wrong location or the wrong product gets an immediate rejection on the screen rather than completing a mis-pick that the system records as correct. RFID reader integration -- fixed portal readers at dock doors for pallet-level RFID, or handheld RFID for individual item tracking -- is configured for operations where RFID tag density justifies the infrastructure cost. Asset tracking for reusable totes, cages, and pallets is a common secondary use case for RFID in WMS environments. Scan data is logged with timestamp, user, and location for every task event, providing a complete audit trail for dispute resolution and accuracy reporting.

Multi-client billing for 3PLs

Billing module for 3PL operations that charge clients based on warehouse activity logged in the WMS. Storage charges are calculated at the end of each billing period by pallet position occupied, cubic metre of space used, or SKU count stored -- whichever unit the client contract specifies. Handling fees are charged per inbound receipt line, outbound order line, carton picked, or order shipped, pulled directly from the WMS transaction log rather than requiring manual compilation. Activity-based charges for value-added services -- labelling, kitting, reworking, and quality inspection -- are recorded as billable activity codes against the relevant client and tallied per period.

Rate card management allows different rate structures per client, with volume discount tiers, minimum monthly charges, and contract-specific billing rules. The billing engine runs a period close at the end of each billing cycle and produces a line-item report per client showing all billable events, quantities, applied rates, and total charges. Client portal access gives each client a real-time view of their current stock levels, inbound and outbound activity log, and accrued billing for the current period -- eliminating the end-of-month call where every client asks for the same stock report. The billing module integrates with Xero and QuickBooks for invoice generation, reducing the process from a multi-day spreadsheet exercise to a review-and-export workflow that takes under an hour.

Frequently asked questions

Off-the-shelf WMS platforms like Fishbowl, Deposco, or Mintsoft handle standard warehouse workflows well. They cover receiving, basic putaway, pick-pack-ship, and reporting at a configuration level that suits operations with a conventional physical layout, a straightforward product mix, and a small number of carrier integrations.

Custom WMS development makes sense when your operation has requirements the platform cannot handle without significant configuration or workarounds. Common triggers: an unusual physical layout or multi-temperature zone setup that the slotting engine cannot model correctly; a multi-client billing model with complex rate structures, volume tiers, and VAT service charge codes the billing module does not support; a proprietary ERP like a bespoke SAP WM/EWM instance or a custom-built NetSuite environment with non-standard data models the integration layer cannot connect to cleanly; conveyor or sorter system integration via PLC Modbus TCP that the platform does not expose an interface for; or product handling requirements -- serial-number-tracked items, lot and expiry management with FEFO picking, or catch-weight products -- that require custom picking logic the platform approximates rather than handles natively.

If you have spent more than six months configuring an off-the-shelf platform and it still requires your warehouse team to work around it daily, that is a reliable signal your operation differs enough from the platform's assumptions to justify custom development. We scope every WMS project with an explicit review of what off-the-shelf options would require in configuration versus what custom development adds -- so you get an honest comparison before committing to either path.

Inventory accuracy is maintained between full stocktakes through a structured cycle counting program rather than relying on a single annual physical count to surface discrepancies. The warehouse is divided into count zones or product groups -- typically by velocity class (A/B/C) or location zone -- and a small number of locations are counted each day as part of normal operations. Over a rolling four-to-eight-week period, every location has been counted at least once without a warehouse shutdown or overtime shift.

Variances are captured and investigated at the time of count. The WMS applies a configurable variance threshold: minor discrepancies within tolerance are recorded and corrected immediately; significant variances above the threshold trigger a supervisor blind recount before the system quantity is adjusted. This two-step process prevents a single counting error from corrupting the inventory record without investigation.

Count history and variance trend reporting identify which locations, product categories, or time periods have recurring accuracy problems. A location that shows variance every count cycle is a signal of a structural issue -- a labelling problem, a mis-sort at the pick station, a receive shortfall the supplier disputes -- not a random count error. Tracking shrinkage rate separately from pick error rate makes the source of inventory loss identifiable. Yard management integration for dock scheduling is available for operations where inbound vehicle sequencing affects putaway timeliness and, by extension, inventory location accuracy.

Yes. WMS integration typically covers three categories of connected system: the order source, the carrier layer, and the accounting or ERP system.

Order source integration connects Shopify, Magento, WooCommerce, or a custom order management system to the WMS so orders flow in automatically at the point of release without manual re-entry. Fulfilment confirmations and carrier tracking numbers flow back to the e-commerce platform in real time as shipments are confirmed at the pack station.

Carrier integration uses the EasyPost API as a unified label generation layer, covering parcel carriers (UPS, FedEx, USPS, DHL Express) and LTL carriers in a single interface. Rate shopping across multiple carriers at pack station is included where the client contract allows rate comparison rather than fixed carrier assignment.

ERP and accounting integration covers SAP WM/EWM for enterprise operations, NetSuite WMS connector for mid-market distributors, and Xero or QuickBooks for smaller operations where full ERP integration is not required. Inventory adjustments, goods receipt events, and dispatch confirmations flow to the accounting system for stock valuation and cost-of-goods-sold reporting. The integration scope depends on what APIs your existing systems expose -- we review API documentation and data models during discovery before scoping the integration, not after development has started.

A focused WMS covering receiving, pick-pack-ship, cycle counting, barcode scanning, and carrier label generation typically runs $40,000--$90,000. A 3PL platform with multi-client billing, client portals, RFID integration, and accounting system integration typically runs $90,000--$200,000. Cost depends on the number of carrier integrations, the complexity of the billing model, the number of client portals, and whether RFID infrastructure is included. We scope every project before pricing it -- you get a fixed cost and clear scope before development starts.

What clients say

What our clients say

Three-year average engagement. Founders and operators describing the work in their own words. No marketing varnish.

Gil Nugraha
Gil Nugraha
Indonesia
Founder at UrShipper

I definitely recommend RaftLabs, especially to founders building complex platforms. They were transparent throughout the whole project.

01 / 02

Related services

Talk to us about your WMS project.

Tell us your warehouse layout, your client mix, and where your current system fails. We'll scope the right platform and give you a fixed cost.