Inventory discrepancies discovered at stocktake, not in the system, mean your decisions between stocktakes are based on numbers that aren't real.
Inventory management ERP covers the movement, valuation, and visibility of stock across every location in your business -- from goods receipt at the dock through storage, picking, packing, and dispatch. When inventory lives in a spreadsheet or a system that doesn't update in real time, every decision made between updates is made on stale data: purchasing based on inventory that moved three days ago, production planned against stock that was already consumed.
RaftLabs builds custom inventory management ERP software designed for your stock model -- single-location or multi-warehouse, lot-tracked or serial-tracked, FIFO or FEFO, B2B or B2C fulfilment. Real-time inventory visibility, receiving workflows, pick-pack-ship, replenishment automation, and the integrations with your e-commerce, production, and finance systems that make the inventory record trustworthy.
Real-time inventory visibility by location, lot, and serial number -- not yesterday's spreadsheet
Goods receipt workflow with inspection and quality hold before stock is available
Pick-pack-ship workflow with barcode scanning and dispatch confirmation
Reorder point and safety stock management with automated purchase requisition generation
RaftLabs builds custom inventory management ERP software -- real-time stock visibility, goods receipt, pick-pack-ship, lot and serial tracking, replenishment automation, and multi-warehouse support -- designed around your stock model and fulfilment process. Most inventory ERP projects deliver in 12 to 20 weeks at a fixed cost.
Trusted by
Inventory accuracy isn't a warehouse discipline problem -- it's a systems problem. When transactions are entered manually, they're entered late. When the system doesn't support lot tracking, teams track lots in a separate spreadsheet. When the pick process doesn't require scan confirmation, picks are made from the wrong location and the discrepancy doesn't surface until a customer complaint or a stocktake. The inaccuracies that compound between physical counts aren't random. They follow the same gaps in the system every time.
Custom inventory ERP closes those gaps at the transaction level. Goods receipts post when stock is physically received, not when an administrator processes the paperwork. Pick confirmation requires a scan that matches the expected SKU, location, and quantity -- catching errors before they leave the warehouse. Lot and serial number tracking is part of the core transaction flow, not a workaround maintained alongside the system. The result is an inventory record your purchasing team, production planners, and finance team can trust without checking it against a separate source.
Capabilities
What we build
Real-time inventory visibility
Inventory records updated as each transaction is posted -- goods receipt, inter-warehouse transfer, pick confirmation, production consumption, sales dispatch, and returns receipt each generate an immediate inventory movement record with the quantity, lot or serial number, location, and the user or system that posted it. Quantity statuses tracked separately per SKU per location: on-hand (physically present), reserved (allocated to open sales orders not yet picked), available (on-hand minus reserved, the quantity purchasing can commit to), in-transit (transferred to another location but not yet received), and on-order (open purchase order lines not yet received). The available quantity is what purchasing and sales see when making commitments -- not the on-hand quantity that double-counts reserved stock. Inventory valuation methods: FIFO (first in, first out, required for US GAAP and most IFRS interpretations); FEFO (first expired, first out, for food, pharmaceutical, and perishable goods); weighted average cost (simpler, preferred for commodity goods without lot cost variation); and standard cost with variance reporting (for manufacturing environments where comparison against standard is the operational metric). Stock age and slow-mover reporting: every lot's age calculated from receipt date with configurable alert thresholds (alert at 60 days for items with 90-day shelf life; flag slow-movers with no movement in 90 days for review). Negative stock controls per item category: configurable allow (for items where receipt posting timing creates temporary negative positions) or hard block (for items where a negative inventory record would misrepresent available stock to purchasing or production).
Goods receipt and putaway
Goods receipt workflow designed for the warehouse dock rather than the back office -- mobile-optimised interface on Android handheld scanners (Zebra TC series, Honeywell CT40) or tablets, with barcode scan to identify the PO, GS1-128 or GS1-DataMatrix label scan to identify the SKU, and numeric keypad quantity entry. PO-based receipt: the system displays the expected delivery lines from the open PO; the receiver scans SKUs and enters quantities; over-receipt and under-receipt are flagged with configurable tolerance bands (±5% acceptable, ±10% requires supervisor override, over 10% blocks without a corrective PO line). Receiving inspection workflow: items flagged as inspection-required in the item master trigger a quality hold status at receipt -- stock is recorded as received but not available until the QC team logs an inspection outcome (pass, fail, or conditional release with restrictions). Inspection outcome records the inspector, timestamp, test results, and a condition note; failed lots are quarantined rather than returned to available stock. Lot and serial number capture: lot number from supplier label, expiry date (manual entry or barcode extraction from GS1 Application Identifier 17), supplier batch reference, and country of origin captured per receipt line and stored against each inventory unit. Directed putaway: the system suggests a putaway location based on product category zone, ABC velocity class (A-class items to golden zone prime pick locations), temperature zone requirements, and available capacity. The putaway suggestion is confirmed by scan at the destination location bin label. Blind receiving for unannounced deliveries: the receiver identifies the SKU by barcode scan and quantity by count; the system creates a receipt record against an automatically generated blind receipt document that the procurement team reconciles against the arriving invoice.
Pick, pack, and dispatch
Pick list generation optimises pick sequencing by warehouse zone, aisle, rack, and level -- reducing picker travel distance compared to order-sequence picking on large warehouses. Sequencing algorithm: configurable by warehouse layout (serpentine routing for single-aisle warehouses; zone-first then aisle for multi-zone facilities); pick face prioritisation for FEFO items; consolidation of multiple order lines for the same SKU at the same location into a single pick step. Wave picking for high-volume periods: orders released in waves grouped by shipping time window, carrier, or order type; wave is assembled simultaneously by multiple pickers then consolidated at a sort station. Pick confirmation by scan: the picker scans the bin location label to confirm they are at the correct location; scans the SKU barcode or lot label to confirm the correct item; enters quantity on screen; the system verifies that the scanned SKU and lot are the expected items for this pick step and rejects a mis-scan before the picker moves on. Short pick handling: if the pick location has insufficient quantity, the picker records a short-pick; the system automatically suggests an alternative location for the remaining quantity. At the packing station: packing slip generated with order line items, quantities, lot numbers, and customer reference; outer carton label generated per package with carrier label dimensions; for multi-carton orders, the carton count and weights are recorded. Carrier integration for shipping label creation: EasyPost or Shippo API for rate shopping and label generation across UPS, FedEx, USPS, DHL, Royal Mail, DPD; carrier tracking number captured and linked to the sales order. Dispatch confirmation simultaneously decrements inventory, sets sales order status to dispatched, fires customer dispatch notification, and creates the AR invoice line in the finance system.
Multi-warehouse and location management
Multi-warehouse management with fully separate inventory records per site -- stock at Warehouse A is not interchangeable with stock at Warehouse B unless an inter-warehouse transfer is posted, and the records at each site are the authority for what is physically there. Location hierarchy configurable per site: site (London DC) > warehouse (Building 2) > zone (Ambient, Chilled, Frozen, Hazmat) > aisle > rack > level > bin position. Bin-level management for high-density racking systems and pick-face management: primary pick location per SKU (the face location used for forward picking), reserve locations (bulk storage locations where replenishment picks for the pick face are drawn), and overflow locations. Bin capacity management: configurable maximum quantity per bin by SKU or by volume/weight, preventing over-assignment of putaway tasks to full locations. Inter-warehouse transfer workflow: transfer order raised at the requesting site specifying SKU, quantity, lot, requested delivery date, and destination location; the source warehouse picks and dispatches against the transfer order; in-transit inventory status (removed from source available, not yet added to destination available) prevents double-counting during transit; receipt at destination closes the transfer and posts the receipt. Transit inventory visible to procurement as a separate quantity status so purchasing doesn't reorder stock that is already in transit to the location running low. Consignment stock tracking: supplier-owned inventory held at your facility tracked in a separate consignment stock account with the owning supplier recorded against each lot; consignment items do not appear in your cost of inventory until consumed or purchased; monthly consignment reconciliation report generated automatically for supplier invoicing.
Lot and serial number traceability
Lot tracking records every inventory movement against the originating lot number, creating a complete chain of custody from goods receipt through every storage movement, production consumption, inter-warehouse transfer, and customer dispatch. Forward traceability query: given a supplier batch number, the system returns every customer shipment containing units from that lot -- the query required to execute a product recall within the regulatory timeframe (FDA 21 CFR 1.337 requires recall initiation within 48 hours for Class I food recalls; EU Regulation 178/2002 Article 19 requires traceability to market within hours). Backward traceability query: given a customer complaint or returned item, the system traces the serial or lot number back through every movement to the goods receipt, the supplier, and the supplier's batch reference. Serial number tracking for items tracked individually: each unit has a unique serial number captured at receipt (from manufacturer barcode or manual entry) and linked to a serial record tracking its location, condition, maintenance history, and customer assignment. Warranty tracking per serial: warranty start date, warranty expiry, claim history, and repair records stored against the serial number. Lot attribute management: custom attributes captured per lot at receipt (test result values, allergen declarations, country of origin, catch area codes for seafood, vintage year) are searchable for regulatory and quality queries. FEFO picking enforcement: when a pick is generated for a lot-controlled item, the system assigns the earliest-expiry lot from available stock -- FEFO is not a suggestion, it is the only valid lot selection for regulated goods.
Replenishment and purchase planning
Reorder point per SKU per location calculated as: average daily demand multiplied by supplier lead time plus safety stock (where safety stock equals Z-score for target service level multiplied by standard deviation of demand during lead time -- 1.65 standard deviations for 95% service level, 2.05 for 98%). Automated purchase requisition generation when on-hand-plus-on-order quantity falls below the reorder point: the requisition is pre-populated with the preferred supplier from the item master, the economic order quantity or a fixed order quantity, and the required delivery date calculated from today's date plus the supplier lead time. Requisitions route to the configured purchase approval workflow before becoming POs. Supplier lead time self-updating: the system recalculates the actual lead time from each goods receipt (receipt date minus PO send date) and updates the item master lead time with a rolling average, so the reorder calculation is always based on recent supplier performance rather than a static number entered years ago. MRP-linked replenishment for manufacturing environments: material requirements are calculated from the production schedule (planned production orders create material reservations) and purchase requisitions are generated to cover those requirements by the required-by date, not by stock level alone -- preventing the scenario where raw material is reordered based on safety stock while a large production run is about to consume the entire available stock. Purchase order consolidation: requisitions for the same supplier within a configurable forward period (5 or 10 days) are consolidated into a single PO to reduce order processing overhead and qualify for supplier volume discounts or minimum order quantities.
Have an inventory management project?
Tell us your stock model, the locations you manage, and where the current system breaks down. We'll scope the ERP and give you a fixed cost.
Lot tracking records the origin lot for every unit of stock from goods receipt through dispatch. Expiry date management assigns an expiry date to each lot at receipt and enforces FEFO (first expired, first out) picking so the nearest-expiry stock is always picked first. Quality hold at receipt prevents out-of-specification lots from entering available stock. Forward traceability from a lot to all customer shipments containing that lot supports recall management. The specific configuration of lot attributes -- batch number format, expiry date format, quality attributes captured at receipt -- is designed around your product and regulatory requirements.
E-commerce integration (Shopify, WooCommerce, Magento) creates sales orders in the inventory system from web orders, decrements stock on fulfilment, and updates the e-commerce platform with tracking information. 3PL integration requires an API or EDI connection to the 3PL's WMS to send pick instructions and receive confirmation. The integration approach depends on what interfaces your 3PL exposes -- most large 3PLs have EDI or API connectivity, smaller 3PLs may require file-based integration.
Inventory accuracy between full stocktakes is maintained through cycle counting -- counting a subset of locations on a rotating schedule so every location is counted multiple times per year without disrupting operations. Discrepancies found during cycle counts are investigated and adjusted before they accumulate. High-value or fast-moving items are counted more frequently. The cycle count programme is configured in the system with count assignments generated automatically, results recorded by scan, and discrepancies flagged for investigation before adjustment posting.
A core inventory ERP covering real-time stock visibility, goods receipt, pick-pack-ship, and basic replenishment typically runs $30,000 to $70,000. A more complete system with lot tracking, multi-warehouse management, 3PL integration, and e-commerce connectivity typically runs $70,000 to $150,000. Fixed cost agreed before development starts.
Work with us
Tell us what you need. We'll tell you what it would take.
We scope Inventory Management ERP in 30 minutes. You walk away with a clear cost, timeline, and approach. No commitment required.
Scope and cost agreed before work starts. No surprises. No obligation.
Working prototype within 3 weeks of kickoff.
Pay by milestone. You see progress before each invoice.
60-day post-launch warranty. Bug fixes, UI tweaks, and deployment support. No retainer.