Skip to content
Back to cases

Warehouse Management System

Warehouse Management System designed for the bottling industry.

locating a batch in operation

From 4h to 30sec

picking errors

−87%

Context

A leading bottling company with several warehouses spread across the country. A critical operation for large B2B clients — supermarkets, distributors and wholesalers — where a shortage or a wrong pick is expensive. The warehouse management system had been dragging on for years and had become a ceiling for growth.

The problem

The legacy WMS was not designed for the current scale of the operation or for the sector’s regulatory demands. Locating a batch after a customer claim or an audit could take 4 hours: going through spreadsheets, asking several operators, cross-checking data by hand. Picking errors sat at 2.4% of everything dispatched and ended up as product on the street, with a cost in replacements and claims.

Internally, the operations team lived with a system that did not integrate with production or with quality control. Every inventory close was manual, every reconciliation took hours, and any new business requirement ended up living in a spreadsheet parallel to the system.

What we did

We built a custom WMS in .NET to replace the legacy system without stopping the operation. We designed batch traceability into the data model: every movement (production → warehouse → loading → dispatch) is tied to a unique batch identifier that can be queried in seconds. On top of that core we built the picking, truck loading and quality control modules, plus the integration with the existing systems.

  • Traceability by design. Every stock movement writes against a per-batch event model from the very first record. A traceability query is resolved directly on that model in a single operation.
  • Warehouse-by-warehouse migration, in parallel with the old system. We migrated one warehouse at a time, leaving the legacy WMS running as a backup. That let us adjust against the real operation before scaling to the rest of the network.
  • Picking guided by physical proximity. The system sequences picking by location inside the warehouse instead of following the order in which orders came in. It brought down both picking time and errors.
  • Truck loading optimized by product and destination. The module distributes pallets taking weight, fragility and unloading sequence into account. Fewer rearrangements en route, fewer breakages.

Why it worked

  • Traceability written into the data model from the first record.
  • Warehouse-by-warehouse migration in parallel with the old system: not a single day without operation.
  • The warehouse operator did not have to change the way they work.

Stack

  • .NET
  • Razor
  • Entity Framework
  • SQL Server
  • Azure DevOps

Outcome

  • From 4 hours to 30 seconds: locating a batch after a claim, an audit or a product recall.
  • From 2.4% to 0.3% picking errors (−87%).
  • Daily inventory close automated, with no manual reconciliation.
  • Integration with the production and quality control systems without rewriting them.
  • Food and beverage regulatory compliance secured from the data model up.
Warehouse Management System | Suris Code