From spreadsheets finance couldn't trust to one ledger everyone can.
How a wholesale distributor rescued a drifting Odoo 14 into a governed Odoo 18 core — one truth from purchase order to posted ledger.
Numbers arrived from spreadsheets nobody could reconcile.
Two versions of every figure
Buying ran on spreadsheets, stock on another, and the ledger on a stale Odoo 14 — so purchasing, warehouse and finance each quoted a different number for the same order.
A version left to drift
The old Odoo core had been customized off-path and never upgraded, so month-end meant manual re-keying and finance reconciling by hand what the system should have posted.
Margins discovered too late
Landed cost, supplier price moves and stock write-offs surfaced only at close — well after the deals they should have shaped had already been priced.
Rescued the core, then made it the single source of truth.
Mapped the drift, then rescued 14 → 18
A discovery sprint documented the as-is processes and every off-path customization, then CDS migrated the data in staged, validated batches onto a clean, supported Odoo 18.
One flow from purchase to ledger
Purchase, Inventory and Accounting were wired as one core — every receipt, landed cost and vendor bill posting automatically, so the ledger reflects the warehouse in real time.
Governed purchasing with a trail
An approvals matrix put thresholds on purchase orders and price changes, giving finance a complete audit trail of who approved what — and why.
Trained the team, kept it governed
Every role was trained in Arabic on the new flow, and named engineers with quarterly reviews keep the core supported and on-path since go-live.
One number, agreed on before month-end.
One source of truth, order to ledger
Purchasing, warehouse and finance now read the same live figures — reconciliation stopped being a monthly negotiation.
Close became routine, not a project
Postings that were re-keyed by hand now flow automatically, shrinking month-end from a scramble to a routine.
Supported and upgrade-ready
Off the abandoned version and onto a governed Odoo 18, the core stays patched, supported and ready for the next upgrade rather than drifting again.
Your books could read like this.
It starts with the same discovery sprint — free, documented, no commitment.