The situation
Each depot had grown its own way of working and its own stock list. A transfer between depots was a phone call and a note, and the note was the only record that it had happened.
The month end invoice run took two days because half of it was checking whether a delivery had really gone out.
The work
Odoo Inventory across three warehouses with real internal transfers, so a van leaving one depot moves stock rather than a figure on a list.
Purchase with reordering rules per depot, Accounting for the invoice run, and a B2B portal where trade customers see their own prices and their own order history.
Cycle counting was the unglamorous part and the one that made the number move: a short count every morning instead of a shutdown every December.