• Stock levels in the system that don't match what's on the shelf because the current platform can't handle variant-level tracking across locations?

  • Buying team manually building purchase orders in spreadsheets because the system has no reorder point automation?

Custom Retail Inventory Management Software

Custom inventory management software for multi-location retailers with complex SKU mixes -- variant-level stock tracking, purchase order automation, reorder point rules, and supplier management that actually matches how your buying team works.

We build systems for retailers who have outgrown spreadsheet-based buying and whose current platform can't track stock at the size, colour, and location level accurately enough to trust.

  • Variant-level stock tracking across every location with real-time accuracy after every transaction

  • Automated reorder point rules that generate purchase orders without manual buying team intervention

  • Full purchase order lifecycle from supplier catalogue through goods receipt and invoice matching

  • Supplier cost management with margin reporting and price variance alerts

RaftLabs builds custom retail inventory management software for multi-location retailers with complex SKU mixes. The software covers variant-level stock tracking across locations, purchase order creation and approval, automated reorder points, goods receipt, invoice matching, and supplier cost management. A custom system is the right choice when off-the-shelf platforms cannot model your product hierarchy or automate your replenishment logic accurately. Most retail inventory projects ship in 12--14 weeks at a fixed cost.

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

The spreadsheet buying cycle is a choice, not a constraint

Most multi-location retailers arrive at their buying process from the same direction: they added locations faster than their system could keep up, so the buying team started maintaining stock positions in spreadsheets because the platform couldn't be trusted. Now the spreadsheet is the source of truth, the system is a secondary record, and the buying team spends half their time reconciling two sets of numbers instead of buying stock.

The underlying problem is that most off-the-shelf retail platforms track total quantity rather than variant-level quantity across locations. A retailer with twelve colours and six sizes per style, spread across eight stores, has 576 stock positions per style. Generic systems aggregate them and the numbers drift. Custom inventory management software models your actual product hierarchy -- style, colour, size, location -- and keeps every position accurate after every sale, receipt, and transfer.

Reorder point automation follows naturally from accurate stock data. When the system knows the current stock of each variant at each location, it can calculate when to reorder, how much to order, and from which supplier -- and generate the purchase order without a buying team member having to check a spreadsheet.

What we build

SKU and variant management

Product hierarchy that models your range accurately: style, colour, size, or any attribute combination your buying team works with. Barcode assignment at the variant level with support for supplier barcodes, internal barcodes, and GS1 EPC SGTIN encoding for RFID-tagged inventory. GS1 SGTIN (Serialised Global Trade Item Number) encodes both the product identity and a unique serial number into the RFID tag so individual units can be tracked at item level, not just quantity level -- the foundation for RFID-enabled cycle counting and item-level shrinkage attribution.

Where Zebra FX-series fixed RFID readers are deployed in stockrooms or on fitting room doors, the inventory system receives item-level read events and updates stock positions without a manual count. For stores without RFID infrastructure, barcode-based variant identification using a Zebra mobile scanner connects to the same inventory records through the warehouse receiving and stock count workflows. Bundle and kit management tracks component stock separately from finished kit stock so a promotional bundle does not misrepresent the availability of individual components. Product import via spreadsheet or supplier EDI feed includes validation before it touches live stock records. Attribute-based filtering across the full catalogue supports buying team analysis by category, season, supplier, or margin band.

Multi-location stock tracking

Per-location stock levels at the variant level updated in real time after every sale, goods receipt, write-off, and transfer. Real-time stock deduction at the point of sale is the critical integration: when a sale is rung through the POS (whether Shopify POS, Square, or a bespoke till system), the inventory management system receives the sale event via webhook or API and deducts the sold variants from the location's stock record immediately. Nightly batch reconciliation is not sufficient for a multi-location retailer -- a stock position that is six hours old creates overselling in click-and-collect and store-to-store transfer errors.

Shopify, WooCommerce, and Magento stock sync is maintained via webhook (inventory_level.update events in Shopify, WooCommerce's order.completed webhook) so available quantity on the e-commerce front end reflects the physical stock position at each location. ABC/XYZ inventory classification segments the SKU catalogue by revenue contribution (A: top 80%, B: next 15%, C: bottom 5%) and demand variability (X: stable, Y: seasonal, Z: erratic) so buying team effort and safety stock investment is directed at the SKUs that matter most. Stock reservation for click-and-collect deducts available quantity at the fulfilment location before the customer collects. Allocation views show the buying team where stock is concentrated before a new delivery arrives.

Purchase order management

Supplier product catalogue with cost prices, minimum order quantities, and lead times per supplier. Lead time variability is tracked per supplier alongside the nominal lead time -- if a supplier nominally delivers in 14 days but has delivered in 9 to 21 days over the last 12 POs, the system uses the variability data in safety stock calculations rather than assuming the nominal figure. Supplier lead time variability is one of the most commonly ignored inputs in retail replenishment logic, and it is the reason safety stock calculations drift from theory when the nominal lead time is used uncritically.

PO creation from the buying team dashboard or auto-generated by reorder point rules. Barcode label generation using Zebra ZPL (Zebra Programming Language) prints GS1-compliant product labels at goods receipt for any items that arrive without compliant labels -- the label print job is triggered from the goods receipt workflow without a separate label design step. PO approval workflow has configurable spend thresholds and approver routing. Invoice matching against the goods receipt flags quantity and price variances for the finance team to resolve before payment is approved. ERP integration with SAP MM, Oracle Inventory, or NetSuite passes PO, goods receipt, and invoice matching data to the financial system automatically without the finance team re-entering the transaction.

Reorder point automation

Configurable minimum and maximum stock levels per variant per location, or aggregated across locations for centralised replenishment. Safety stock calculation uses the formula: safety stock = Z * sigma_d * sqrt(L), where Z is the service level z-score (1.65 for 95% service level), sigma_d is the standard deviation of daily demand over the trailing period, and L is the supplier lead time in days. This means the reorder point adjusts automatically as demand patterns shift -- a variant with stable demand carries a lower safety stock than one with erratic demand at the same average velocity. Economic order quantity (EOQ) optimisation minimises the combined cost of ordering frequency and holding cost: EOQ = sqrt(2DS/H), where D is annual demand, S is order cost per PO line, and H is annual holding cost per unit.

Demand forecasting with LightGBM or Facebook Prophet (seasonal decomposition) projects forward demand using historical sales, incorporating seasonal decomposition for holiday spikes -- the weeks before Christmas, summer peak for seasonal categories -- so reorder points automatically increase ahead of known high-demand periods rather than reacting to stockouts after they happen. Automatic PO generation fires when stock falls to the calculated reorder point, using the preferred supplier and EOQ-derived order quantity. Exception reporting shows variants approaching reorder point for buying team review before a bank holiday or a known promotional period.

Wastage and shrinkage tracking

Write-off recording at the variant and location level with reason codes: damaged, expired, theft, unknown shrinkage. Cycle count workflow for continuous inventory accuracy: a fraction of the SKU catalogue is counted each day (ABC-weighted -- A-class SKUs counted more frequently than C-class) so every variant is counted on a rolling cycle without a full store closure. Cycle count variance -- the difference between the system position and the physical count -- is reviewed and approved before stock levels are adjusted. This approval step prevents unauthorised stock adjustments and ensures every change has an authorised explanation in the audit trail.

RFID-enabled cycle counting, where Zebra FX readers are deployed in the stockroom, reduces the physical count time significantly: a reader scanning the stockroom passively identifies tagged items without individual scanning. Shrinkage variance reports break out cycle count variances by location, product category, reason code, and time of day -- time-of-day correlation can identify shift patterns or staffing gaps associated with theft-related shrinkage. Shrinkage rate by location compared across the estate makes outlier locations visible without manual calculation. The loss prevention data that moves shrinkage conversations from anecdotal to evidence-based.

Supplier and cost management

Supplier profiles with contact information, payment terms, lead times, minimum order requirements, and lead time variability history. Cost price by supplier per variant so the system knows which supplier to use when generating an automated PO based on current cost rather than the last manually updated price list. Price variance alerts fire when a goods receipt cost differs from the PO cost by more than a configured threshold -- flagging the discrepancy for the buying team to resolve with the supplier before the invoice is approved for payment rather than after.

Margin reporting at product, category, and supplier level uses current cost prices against selling prices from your POS or e-commerce platform. SAP MM, Oracle Inventory, and NetSuite ERP integrations pass landed cost data (including duty and freight allocated to PO lines) into the margin calculation so the reported margin reflects the true cost of delivered goods rather than just the ex-works price. Supplier performance tracking covers on-time delivery rate, order fill rate (percentage of ordered lines delivered in full), and return rate per supplier, over rolling 12-month and trailing-quarter windows. A supplier delivering at 92% fill rate on a 14-day lead time is a different purchasing risk than one delivering at 99% fill rate on a 21-day lead time -- the system surfaces both dimensions so buying decisions are based on margin and reliability rather than habit.

Frequently asked questions

The system is built to handle your specific product hierarchy -- no artificial limits on attribute depth, variant count, or SKU volume. We have built for retailers with styles carrying 200+ variant combinations and catalogues with 50,000+ active SKUs. The critical design question is how your buying team thinks about product: by style, by category, by supplier, or by season. We model the hierarchy to match that mental model so the system is usable for the people running it, not just technically correct at the database level.

Stock allocation works at the variant and location level. When a goods receipt arrives at a central warehouse, the buying team allocates quantities to each store location based on demand history, current stock position, and planned promotions. The allocation is confirmed and the stock transfer dispatched from the warehouse to each store. Store managers confirm receipt and the location stock is updated. For retailers who ship direct from supplier to store, the goods receipt is recorded at the store level rather than centrally. We model whichever distribution flow matches your actual operation.

Yes. Common integrations include Xero and QuickBooks for cost of goods and purchase order financial data, and ERP systems including SAP, Microsoft Dynamics, and NetSuite for retailers who run a full ERP alongside a retail-specific inventory tool. We also integrate with POS systems so stock deductions happen in real time at the point of sale rather than via a nightly batch. Integration scope is defined during discovery -- we document the data flows, confirm what each system's API supports, and price the integration as a defined scope item before development starts.

Standard reports include: stock on hand by variant and location, stock movement history, days of cover by SKU, sell-through rate by category and style, shrinkage and write-off by location and reason code, open purchase orders and expected delivery dates, and supplier fill rate and on-time delivery rate. ABC/XYZ classification reports show the revenue contribution and demand variability of every SKU so the buying team can prioritise safety stock investment and review cycles on the variants that drive the business rather than managing all SKUs equally.

Demand forecasting outputs show projected demand by variant for the next four and eight weeks alongside the current safety stock level, so the buying team can see in advance where coverage is at risk before a stockout occurs. Management summary reports consolidate the buying team's key daily decisions: which reorder points have triggered and what POs were auto-generated, which variants have excess stock relative to days of cover, and where the shrinkage variance outliers are by location. Reports are available in the dashboard and exportable to Excel, CSV, or your BI tool (Looker, Tableau, Power BI). Specific reporting requirements are built into the project scope during discovery.

What clients say

What our clients say

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

Nuala C.
Nuala C.
Ireland
Director, BrandFire

RaftLabs was outstanding at addressing our complex platform needs, delivering a stable, high-performance loyalty application that has been genuinely loved by the customers.

01 / 02

Related services

Talk to us about your inventory management project.

Tell us your location count, SKU complexity, current system, and where the buying team's biggest pain points are. We'll scope the right system and give you a fixed cost.