Case study
One inventory engine behind three sales channels
Wholesale, retail and e-commerce moved onto one Odoo inventory and pricing engine, with integration contracts, batch and expiry control, and margin reported at SKU and customer level.
- Client
- National FMCG distributor
- Profile
- Six warehouses · wholesale, retail and online
- Duration
- 18 weeks
- Services
- Odoo ERP · Integrations · Master Data Governance · Custom Software
01 — CHALLENGE
What was actually broken
Three channels each held their own view of stock and price. The e-commerce storefront oversold weekly, and near-expiry stock was written off rather than moved.
- Storefront stock was synced by a nightly file, so anything sold during the day could be promised twice.
- Wholesale price lists, retail shelf prices and online prices were maintained separately, and drifted within days of every revision.
- Batch and expiry were tracked in a parallel spreadsheet per warehouse, and near-expiry stock was routinely discovered after it had expired.
- True margin per line was unknown because freight, damage and settlement discount sat outside the transaction.
02 — APPROACH
The sequence we used
A single inventory and pricing engine, then contracted interfaces to every channel that consumes it.
01
Master data and pricing unification
Product, customer and price-list masters deduplicated and rebuilt as one governed structure with channel-specific price rules derived from a single base, not maintained in parallel.
02
Warehouse configuration with FEFO
Bin locations, batch and expiry attributes, and first-expiry-first-out allocation across all six warehouses, with cycle-count schedules replacing the annual stock-take argument.
03
Integration contracts
Each interface documented before build — source of truth, field mapping, trigger, frequency, idempotency rule and failure behaviour — with real-time stock reservation replacing the nightly file.
04
Van sales application
A custom offline-tolerant mobile app for loading, delivery, returns and cash collection, reconciling to the depot automatically instead of the following morning.
05
Margin and ageing analytics
Landed cost, settlement discount and damage brought into the line, with net margin by SKU, customer and route, plus a stock-ageing dashboard with automated action thresholds.
03 — RESULT
Where it landed
One stock number serves all three channels, and near-expiry stock is now a decision instead of a write-off.
- No oversell incidents recorded in the first two quarters after go-live, against a weekly baseline.
- Around fourteen days of working capital released by FEFO discipline and ageing-triggered action.
- Every interface monitored with a named owner, dead-letter replay and a daily automated reconciliation report.
- Van sales reconciled same-day, ending the next-morning depot reconstruction.
- Net margin visible at SKU, customer and route level, which changed the discount policy within one quarter.
We had eleven versions of our item master across three companies. Techlyst rebuilt it as one governed standard and then made sure it stayed that way. Stock accuracy went from an argument to a number.
Services used
What this engagement drew on
Odoo ERP
Modular, open-source ERP for growing companies that want to start small and stay flexible.
ODOOIntegrations
Contracted, monitored interfaces between ERP, CRM, e-commerce, banking and the floor.
INTEGRATIONMaster Data Governance
One customer, one item, one vendor — with rules and stewards that keep it that way.
MDMCustom Software
Built only where the platform genuinely cannot reach — and built to be handed over.
CUSTOM_DEVMore engagements
Other case studies
One ledger for three entities, closed in four days
A spinning, weaving and garment group running three disconnected accounting systems consolidated onto a single NetSuite ledger — with a governed item master and export documentation generated from order data.
Three legal entities · 1,400 staff · export-ledSAP_B12025Product costing the shop floor actually recognises
Standard costs that had drifted for years rebuilt against real routings and consumption, with shop-floor capture on rugged terminals and variance reported per production order.
Two plants · discrete manufacturing · 600 staffNext step
We would rather show you the working than the summary
Ask for the blueprint structure, the migration reconciliation approach, or a reference call with a client in your sector.