Stock numbers the buyers stopped trusting
Most inventory problems start as a habit, not a bug. A technician grabs three boxes of filters for a job and promises to sort the paperwork later. Now the system is wrong by three boxes. Give that a year and you’ve got a stock report the warehouse lead openly laughs at.
ERPNext and Odoo both track stock properly out of the box. Every movement becomes a ledger entry, valuation follows FIFO or moving average, and batches and serial numbers are standard. What neither can do is guess your rules. Which items need a batch? Who may adjust stock without a count? When does a low quantity turn into a purchase request, and for how much? Those answers are yours, and they’re the part erpfly writes.
What goes into the inventory management system we generate
On ERPNext, you get a Frappe app that sits beside ERPNext and never edits it. Typical pieces: custom fields on Item and Item Group shipped as fixtures, a small DocType for your reorder rules, doc_events in hooks.py that check Stock Entries before they post, and a Script Report that reads projected quantity from the Bin table. Nightly work goes into scheduler_events, so anyone can see what runs and when.
On Odoo, it’s an addon that extends stock.quant, stock.move and stock.warehouse.orderpoint through _inherit, with views that inherit the standard ones and access rights in ir.model.access.csv. Inventory itself is part of Community, so none of this needs Enterprise.
One caveat. Both platforms already do fixed min/max reordering. If a fixed minimum works for an item, keep it.
Worked example: a spare parts distributor outgrows fixed minimums
Picture a distributor with about 4,000 SKUs of bearings, belts and seals across two warehouses. Fixed reorder levels were fine when the range was small. Now half of them are stale. Fast movers run out, slow movers sit for a year.
The buyer, Leena, already has a rule. It just lives in her head:
- Take the last 60 days of issues for each item in each warehouse, divided by 60, as daily use.
- Reorder point is daily use times (supplier lead time + 7 safety days).
- If projected stock falls below that, request enough to get back to the reorder point plus 30 days of cover.
Take one V-belt. It shipped 240 units in 60 days, so 4 a day. The supplier needs 14 days, so the reorder point is 4 × 21 = 84. The Bin says projected quantity is 70. The nightly job raises a Material Request for 84 − 70 + 120 = 134 units. Leena looks at it over coffee and turns it into a Purchase Order. Or she doesn’t, because she knows a big customer just went bust. The job proposes. A human buys.
The code on this page is the core of that job. Around it sit a Reorder Rule DocType where Leena sets lead time and safety days, and a report that shows why each request was raised.
Requests we’d argue against
Negative stock “just for now”. Both platforms let you switch it on. Valuation gets messy fast, and untangling it later costs someone a week. We’d rather fix whatever makes people want it.
Serial numbers on every screw. Serials make sense for items with warranties or service history. For consumables, a batch is plenty. Often nothing is.
A quick “fix quantity” button. Corrections belong in Stock Reconciliation (ERPNext) or an inventory adjustment (Odoo), with a reason. Anything that edits quantities outside the ledger will eventually meet your accountant, and it won’t go well.
Syncing five marketplaces in week one. Get the internal numbers right first.
Leaving the spreadsheet behind
Most people arrive with an Excel file, or three. We generate an import that loads items, warehouses and counted quantities as a single dated posting on your go-live day, so opening value is booked once. Do a physical count the weekend before. Yes, really. A spreadsheet you don’t trust becomes a system you don’t trust, just with nicer menus.
Where inventory meets the rest of the ERP
Stock matters because something moves it. Receipts come from purchase management, deliveries follow sales orders, and if you need bins, putaway and pick lists inside each building, that’s warehouse management. Distributors should read how we approach ERP for distribution businesses. Still choosing a platform? The ERPNext vs Odoo comparison covers how each one handles stock.