Speeding Up Purchase-Order Approvals by 52% Across Three Warehouses


This client is a US industrial MRO parts distributor with 240 employees and roughly $46 million in annual revenue. It stocks more than 30,000 SKUs across three regional warehouses and supplies maintenance teams at manufacturing plants, facility operators, and contractors under standing supply agreements.
Procurement ran across a legacy ERP, a separate warehouse tool, and spreadsheets: reorder points sat in static files, buyers matched purchase orders against receipts and invoices by eye across two systems, and approvals moved through email with no enforced spend limits. The two systems even disagreed on stock per location.
The distributor needed one source of truth for procurement and inventory across all three warehouses, approvals that respected spend levels, and buyers spending their time on purchasing decisions instead of reconciliation.
Replenishment triggers lived in static spreadsheets, so buyers ordered against outdated thresholds and stocked out on high-turnover parts.
Buyers checked purchase orders against receipts and invoices by hand across two separate systems and regularly missed quantity and price discrepancies.
Purchase-order approvals ran through email without enforced thresholds, so large orders could clear without the right level of review.
Late deliveries and short shipments existed only as scattered notes, leaving procurement no documented basis to hold suppliers accountable.
The legacy ERP and the warehouse tool kept different inventory figures for each location, which made allocation decisions unreliable.
We moved the distributor onto Odoo's Custom plan, which provides the Automation Layer, Approval Rules, and external API that procurement automation needs, and added CogniAgent as the AI layer on top. The rollout ran in four phases between December 2025 and March 2026: discovery and planning, configuration, automation and testing, and go-live with role-based training and post-launch workshops for the buying team.
Odoo Purchase, Inventory, and Sales replaced three disconnected tools. SKU, vendor, and open-order records moved from the legacy ERP into one database, with bin-level tracking and per-location stock rules for each warehouse.
Approval Rules add ordered, spend-tier sign-off steps with delegation to every purchase order, replacing email threads and logging each decision to the record's chatter for audit.
Odoo replenishment handles reorder logic, and automation rules on Values Updated and Timing Conditions triggers raise alerts for exceptions instead of relying on a static spreadsheet.
Purchase orders, receipts, and vendor bills reconcile in the same Odoo record, with vendor exceptions routed for review, so mismatches surface before payment.
CogniAgent sits on top of Odoo as the AI layer, supporting purchasing decisions across the three warehouses and the handling of exceptions.
Inbound and outbound webhooks connect Odoo to vendor and carrier systems so order status and receipts post back automatically, and vendor-scorecard dashboards run on live data.
| Before | After | |
|---|---|---|
| PO approval | 2 to 3 days in email threads | Clears in one shift |
| Stockouts | Static reorder spreadsheet | 44% fewer |
| Three-way matching | By eye across two systems | Automatic |
| Vendor performance | Scattered notes | Logged per supplier |
| Stock per location | Two diverging counts | One figure |
| Buyer time returned every week | 20+ hrs |
Approval Rules on the Confirm button replaced email threads with ordered, spend-tier sign-offs and delegation. Approvals that once waited 2 to 3 days now clear in one shift.
Automation firing on live stock levels and timing conditions replaced the static reorder spreadsheet, so fast-moving SKUs stay available far more often.
Quantity and price mismatches between purchase order, receipt, and vendor bill surface before a payment goes out.
Late and short deliveries are logged against each supplier as orders close, giving procurement a record to hold vendors to service terms.
A single source of truth across all three warehouses ended the diverging counts, so allocation runs on numbers the whole team trusts.
Automated reorder alerts and match validation removed the manual reconciliation that used to consume buyer time every week, along with the errors that came with it.