Purchasing leaks money in small, boring ways
Nobody sets out to overpay suppliers. It happens because the usual supplier is quick to reply, because getting three quotes takes a day the buyer doesn’t have, and because the invoice looks roughly right. Each one is small. Across a year of orders it isn’t.
The standard purchasing flow in ERPNext and Odoo is solid. Requests, RFQs, orders, receipts and bills are all there. What’s missing is your organisation’s rules about when the process can be skipped, who can skip it and what has to be written down when they do. Those rules are what erpfly generates.
How the purchase management system is put together
On ERPNext, the chain is Material Request, Request for Quotation, Supplier Quotation, Purchase Order, Purchase Receipt and Purchase Invoice. The Frappe app hooks into Purchase Order submission to check quote rules, adds a Workflow for approvals by value and uses supplier scorecards for delivery performance. Custom fields ship as fixtures, so your test site and live site stay in step. If you want to see how a generated app is laid out, our page on ERPNext custom module development walks through it.
On Odoo, the addon inherits purchase.order, adds the single-source reason with tracking so changes show in the chatter, and extends the approval step with category-based thresholds. Where Odoo already has the setting you need, like billing on received quantities, we switch it on instead of writing code.
A good rule of thumb: if the platform has a setting for it, use the setting. Code is for the rules that are genuinely yours.
Before asking for the module, it’s worth writing down three numbers: the value above which quotes are required, the value above which a director signs, and the tolerance you’ll accept between billed and received quantities. Most of the back-and-forth in purchasing projects is about those three numbers, not about code.
Example: three quotes above $10,000
A food manufacturer buys cocoa, packaging and spare parts. Their rule is three quotes for anything over $10,000, unless there’s a documented reason to single-source.
The production planner raises a Material Request for 2,000 kg of cocoa powder. A buyer sends an RFQ to four suppliers. Two respond in time. The best quote works out to $14,600, and the buyer tries to submit the Purchase Order.
The check finds two supplier quotations against that request, not three, and stops the submission with a message saying so. The buyer has two options. Chase the other suppliers, or record why two is enough this time: the other approved suppliers can’t meet the allergen certification this recipe needs. They type that reason, the order goes through, and the reason is now on the order and in the compliance report.
A month later, 1,850 kg arrives, and a batch of 150 kg follows the week after. The supplier bills the full 2,000 kg straight away. The matching rule compares the bill with the receipts, finds it 150 kg ahead, and holds that line until the second delivery is booked in. The accounts clerk doesn’t need to open the warehouse log to know something is off.
Where we’d push back
- Approval for every order. If a $40 box of gloves needs a signature, people stop reading what they sign. Set thresholds high enough that approvals mean something.
- Automatic purchase orders from reorder levels. Letting the system raise Material Requests when stock runs low is useful. Letting it send orders to suppliers with no buyer in the loop is how you end up with a year’s supply of the wrong bolt.
- A custom supplier portal on day one. The built-in portals cover quoting and confirmation. Start there and see what suppliers actually ask for.
- Scoring suppliers on 20 criteria. On-time, in-full and quality rejections tell you most of what you need.
Receipts, stock and supplier quality
Purchasing only works when the receiving side records what actually arrived. Quantities received feed inventory management, inspection results on incoming goods belong in quality management, and matched bills move into invoice management for payment. Manufacturers get the most out of tying these together, which is why our page on ERP for manufacturing spends so much time on the purchasing side.