After years of doing this across discrete manufacturers, job shops, and process environments, here's the honest breakdown of the decisions that actually matter.
When demand fires — from a sales order or a scheduler run — the Odoo MRP module is supposed to trace the full component tree, check on-hand stock, factor in supplier lead times, flag shortages, and sequence multi-level production orders so sub-assemblies are ready when the parent order needs them.
In practice, most implementations configure it to generate a manufacturing order with a due date and leave it at that. The planning logic that makes MRP valuable never gets turned on.
The first question we ask any client: are your workcenter capacity parameters configured with real shift availability and efficiency numbers? If the answer is "we left them at defaults," that's the conversation starter.
The BoM isn't just a parts list. In Odoo it drives:
One master BoM with variant attributes and conditional components handles this cleanly. Maintenance drops to one document. Engineering changes propagate correctly. The cost rollup stays accurate across all variants.
This seems like an obvious choice — but we've seen experienced implementers still build per-SKU BoMs because it "feels safer." It isn't.
Routing defines how a product moves through your floor: which workcenters it visits, in what sequence, how long each operation takes.
Two configuration decisions that most implementations get wrong:
Time modes: Fixed time applies the same duration regardless of quantity. Per-unit time scales with order size. Using fixed time where per-unit time applies means your scheduled completion dates are wrong for any order that isn't exactly one unit. Which is most of them.
Workcenter efficiency: This is the ratio of actual throughput to theoretical maximum. If your CNC machines run at 80% of rated capacity after changeovers and minor stoppages, efficiency should be set to 80% — not 100%. Leaving everything at 100% means every scheduled date is a theoretical maximum you will miss consistently.
When schedulers stop trusting the system's dates and go back to spreadsheets, this is usually why.
The back-office configuration can be perfect. BoM correct, routing accurate, quality checks defined. Then operators get pointed at the standard manufacturing interface.
The standard interface requires multiple clicks to log a work order step. Between machine cycles. On a mounted tablet. With gloved hands. Low adoption follows. Production data stops flowing in real time. Reporting becomes manual. The ROI case unravels.
Odoo's Shop Floor module is a purpose-built operator interface — workcenter-specific views, tablet-optimized layout, single-tap time logging. Quality checkpoints appear inline and block advancement until completed.
The implementation error: treating Shop Floor as a nice-to-have and pointing operators at the back-office screens to save setup time. It doesn't save time. It costs adoption.
The pattern repeats itself:
The setup cost is low. The cost of not having it at the moment you need it is high.
We put together the full breakdown: MRP configuration, BoM architecture decisions, routing setup with time mode guidance, Shop Floor implementation approach, PLM from day one, and a complete real-world setup walkthrough for a discrete manufacturer.
It's the implementation guide we wish had existed when we started doing this.
Full guide: https://theintechgroup.com/blog/odoo-erp-manufacturing-guide/
Has anyone here been through a manufacturing ERP implementation — Odoo or otherwise? What was the configuration decision that caused the most downstream pain?
For us it's almost always either BoM architecture or routing time modes. Curious if others see different failure patterns.
INTECH Group — certified Odoo partner, manufacturing and logistics ERP. India / USA / UAE / Hong Kong. Happy to dig into any specific implementation question in the comments.