Skip to content
Manufacturing · FMCG · 12 warehouses

Replacing SAP: a WMS for an FMCG manufacturer

After SAP left the market the client was running on spreadsheets, an accounting system and paper delivery notes. We replaced that with a full WMS: addressed storage, a mobile app for warehouse staff, real-time stock and accounting integration.

−89%
order picking errors in the warehouse
+44%
picking speed per order
0
warehouse shutdowns for stocktaking
Project scenario

This is a representative build based on our expertise and stack. The architecture and the approaches are real. The metrics and the context are given as a reference point for projects of similar complexity, not as a delivered result.

Budget
high seven figures in roubles
Duration
5 months
Team
6 people
Stack
FastAPI · PostgreSQL · RabbitMQ · React Native

About the client

A food manufacturer with twelve warehouses across the country and 180 shipping points a day. Classified as a critical-infrastructure operator, which makes running on domestic software a legal obligation rather than a preference.

The problem

After SAP left, the client ran on a temporary combination:

  • an accounting system, spreadsheets and paper delivery notes;
  • 14% error rate on order picking, which meant claims and penalties from retail chains;
  • stocktaking twice a year, each time shutting the warehouse for three days;
  • no real-time visibility of stock across twelve warehouses — an order in one place, the stock in another.

What we built

A WMS with addressed storage

Every storage location has a unique address: rack, shelf, cell. Every item is tied to an exact address. That turns picking from “find it in the pile” into a defined route between addresses.

Accounting system integration

Two-way synchronisation over REST and RabbitMQ:

  • receipts and sales flow from the accounting system into the WMS;
  • actual stock and movements flow from the WMS back;
  • conflicts are resolved by an explicit rule — the WMS is the source of truth for physical stock, the accounting system for documents.

A mobile app for warehouse staff

A native app on React Native and Expo:

  • barcode and QR scanning, through the camera and through Bluetooth hardware scanners;
  • a picking route: the optimal path through the warehouse;
  • confirmation of every line;
  • offline mode: when the connection drops the app keeps working and synchronises once it is back.

Real-time stock visibility

All twelve warehouses in one dashboard. The manager sees where the stock is, can move it between warehouses, and can authorise shipment from a distant warehouse when the nearest one is empty.

Dashboards for management

  • Staff load by day and hour.
  • Picking speed by shift and by person.
  • Losses and discrepancies by item.
  • Performance of each warehouse.

Registry submission

We prepared the artefacts required for submission to the national software registry. For this client that is a sales argument, because it is a precondition for working with government and critical-infrastructure customers.

On-premise deployment

Installed on the client’s own infrastructure, with no external dependency:

  • Ubuntu 22.04 on their own servers in each regional data centre;
  • Docker Compose for all services;
  • a local Postgres cluster with replication;
  • backups to a separate server with 90-day retention;
  • monitoring through Grafana and Prometheus.

The hardest parts

Working over an unreliable network between warehouses

Regional warehouses sometimes have a poor connection. A design that simply sends a request falls over.

The fix was eventual consistency: each warehouse keeps a local copy of its own state, changes are published to a RabbitMQ queue, and the central server picks them up in the background. On the device, the picker never waits for the network — the operation applies locally and synchronises afterwards.

Migrating data out of SAP

Part of the data sat in IDoc format, which had to be parsed and mapped onto the new model. We wrote a one-shot tool in Python with a detailed audit of every record. The migration took two weeks instead of the month we had planned.

Results

  • 89% fewer picking errors, from 14% of order lines down to 1.5%.
  • 44% faster picking per order.
  • Continuous stocktaking, with no warehouse shutdowns.
  • Registry submission completed, which opened additional sales of the solution to other FMCG manufacturers.
  • Payback in eight months.

What changes for each role

A WMS is one of the rare systems where the people on the warehouse floor notice the effect before management does.

The picker and the shift lead. A mobile app with barcode scanning and a picking route changes how a shift works: a new hire reaches the norm in days rather than months, because the route comes from the system instead of from memory. Offline mode is not an option here but a necessity for regional warehouses on weak connections: the link drops, the shift carries on, and the data synchronises later.

The warehouse manager. Addressed storage removes the main source of picking errors, and with them the claims from retail chains. Stocktaking stops being an event that closes the warehouse for days and becomes a continuous process, because stock is visible in real time.

The logistics director. Every warehouse appears in one dashboard: stock across the country is visible, and shipment can be authorised from a neighbouring warehouse when the nearest one is empty. That is what raises service levels for the chains and removes penalties for short deliveries.

The IT director. For a critical-infrastructure operator, running on domestic software is an obligation. The system deploys on-premise on the client’s own infrastructure, with the option of registry submission. The accounting integration over REST and RabbitMQ rests on an explicit division of responsibility: the WMS owns physical stock, the accounting system owns documents. Without that division, data conflicts are guaranteed.

The operations director. Dashboards for picking speed, staff load and discrepancies at each warehouse give a level of control that often did not exist even before the replacement: the old systems did bookkeeping but never showed the operational picture.

When this fits

  • A manufacturer, distributor or large e-commerce operation with five or more warehouses.
  • A regulatory obligation to replace foreign software, or a plain business requirement to.
  • Shipping 100 or more orders a day.
  • A readiness for serious change management with warehouse staff.

A similar problem in your business?

In one call we will work out what this would be worth to you and which architecture fits.