本文目前仅提供英文版本。翻译即将推出。
属于我们的Manufacturing in the AI Era系列
阅读完整指南Odoo 19 Manufacturing: MRP, MPS, and Quality Module Changes
Manufacturing got the biggest internal rewrite in Odoo 19. The MRP scheduler was reimplemented with a different algorithm, the Master Production Schedule (MPS) module finally became usable for real production environments, and the Quality module's checkpoint workflow merged with shop-floor work orders. If you run a discrete manufacturer or a process-flow operation on Odoo 17, the upgrade affects daily planner, supervisor, and operator workflows.
This article covers the changes that matter on the floor and in the planning office, plus the migration pitfalls we have hit with manufacturing clients in the metals, food, and contract-manufacturing sectors.
Key Takeaways
- MRP scheduler runs roughly 3-5x faster on databases with 100+ open MOs and chained BOMs
- MPS module added rolling-horizon planning, demand-time-fence, and what-if scenarios
- Quality checkpoints attach directly to work-order steps, removing the parallel checklist module
- BOM versioning is first-class — replacing the "duplicate BOM and archive" pattern
- Work-order kiosk supports multi-operator, multi-machine, and pause/resume per work order
- Subcontracting got proper landed-cost integration and split-shipment support
- Routing operations support skill requirements (operator must hold cert X)
MRP scheduler — what changed and why it matters
Odoo 17's MRP scheduler used a procurement-pull model: each demand triggered an upstream cascade of supply needs, computed sequentially. On databases with thick BOMs (5+ levels) and many open MOs, the run took 20-90 minutes and held write locks. Planners in big shops just gave up running it during business hours.
Odoo 19 replaced the cascade with a graph-based solver that:
- Builds the full demand graph in one pass
- Resolves supply-demand pairings with topological ordering
- Batches database writes per BOM level instead of per item
In benchmarks at three of our clients (each with 200-500 active SKUs and 4-6 level BOMs):
| Database | Old runtime (17.0) | New runtime (19.0) |
|---|---|---|
| Metals fabricator | 38 min | 9 min |
| Food processor | 22 min | 6 min |
| Contract manufacturer | 71 min | 18 min |
Faster scheduler → planners can run it on demand instead of overnight, which means tighter feedback loops with sales and purchasing.
Master Production Schedule — finally production-ready
The MPS module existed in 17 but was a thin spreadsheet view. Odoo 19's MPS adds:
- Rolling horizon: 12-26 week forward view, configurable per category
- Demand time fence: lock the next N weeks against changes (capacity already committed)
- Planning time fence: beyond N weeks, system suggests but doesn't auto-create POs/MOs
- What-if scenarios: clone the MPS, modify a forecast row, see downstream impact without committing
- Multi-level MPS: schedule finished goods AND key components at different time fences
The data model has mrp.mps.production and mrp.mps.consumption tables driven by mrp.product.forecast. If you used a custom MPS in 17 (and most serious manufacturers did), this is your refactor target — the new module covers most of what custom modules did, with native upgrade compatibility.
Quality module — checkpoint integration
Odoo 17 had two separate flows for quality: quality.check records (manual or triggered) and the work-order step checklist (separate but related). They didn't talk well, leading to scenarios where a step was marked complete but its quality check was still open.
Odoo 19 unified these:
- Quality control points (QCPs) attach to operations on a routing
- Work-order steps execute QCPs inline; the operator sees the check on the same screen as the step
- Failure modes are first-class: pass/fail/measure/text/picture
- Rejected items create a quality alert and (configurably) block work-order completion
Tablet/kiosk UI shows the QCP as part of the step flow, no context switch.
BOM versioning
In 17, "version a BOM" meant duplicate the BOM, edit, archive the old one, and update default-BOM references on the product. Audit trail was loose. Odoo 19 introduced explicit BOM versioning:
# Each BOM now has version metadata
bom.version_number # e.g., 3
bom.version_effective_date # when this version goes live
bom.version_replaced_by_id # link to next version
bom.engineering_change_id # link to ECN/ECO record
A new BOM version can be created from the form view's "New Version" button. Existing MOs reference the version they were created against, so they don't change mid-flight. Reports filter by BOM version for proper audit.
For regulated industries (medical devices, aerospace), this replaces a custom ECN/ECO module that was a permanent line-item in our manufacturing engagements.
Work-order kiosk — multi-operator, multi-machine
The shop-floor kiosk in 17 assumed one operator, one machine. Real shops have:
- Two operators on a single line
- One operator running three CNC machines simultaneously
- Operators that pause work to handle a quality alert and resume
Odoo 19 supports:
- Multi-operator login on a single work order (records time per operator)
- Operator multi-tasking: same operator can have multiple work orders in "started" state across different machines
- Pause/resume with reason codes (configurable: maintenance, material wait, quality issue)
- Real-time machine availability indicator
Setup adds a few extra fields per work center but is otherwise self-configuring.
Subcontracting improvements
Odoo 17's subcontracting module shipped with the basic flow: vendor receives raw, ships finished goods, you pay them per unit. Real subcontracting has:
- Multi-stage subcontracting (vendor A → vendor B → return)
- Landed costs (freight, customs)
- Split shipments (vendor sends 60% now, 40% later)
- Yield variances (vendor returns fewer finished goods than expected)
Odoo 19 added:
- Native multi-stage chains via the resupply route
- Landed-cost integration into the subcontract MO
- Split-shipment receipts with backorder
- Yield variance journal entries via configurable accounts
Routing operations — skill requirements
mrp.routing.workcenter (the operation) gained a required_skill_ids field. Operators are assigned skills via hr.employee.skill. The kiosk and planning views check skill availability when assigning operators or scheduling work centers.
Useful for:
- Welding certifications (AWS, ASME)
- Forklift / overhead crane operator certs
- Cleanroom training (pharma, electronics)
Migration pitfalls
MRP scheduler runs differently
Post-migration, the first MRP run will likely produce a different schedule than your old 17.0 run did, because the new solver treats priority and reservation differently. Don't panic — review and re-tune your priority rules and reservation horizon.
BOM version IDs are new
If you had custom reports referencing mrp.bom with assumed uniqueness per product, they now need to handle multiple versions. The default _search includes only the active version, so most reports keep working without changes.
Quality check IDs migrate but UI references shift
If you had Studio-built fields on quality.check, audit them. The check is now embedded in mrp.workorder via a related model; access patterns may need a one-line update.
Subcontracting flows need re-validation
The subcontract route in 19 added intermediate stock moves. Custom analytics or KPIs that counted "subcontract receipts" may need recount logic.
Frequently Asked Questions
Is the new MRP scheduler compatible with custom procurement rules?
Yes, custom procurement.group and stock.rule records are honored. The change is internal: the scheduler evaluates them in graph order rather than cascade order. If you implemented a custom rule that relied on sequential evaluation order, validate the output post-migration.
Can I migrate my custom MPS module to the native one?
In most cases yes — the data model overlap is high. Map your custom forecast tables onto mrp.product.forecast rows, and your custom MPS reports onto the new spreadsheet templates. Plan 1-3 days of mapping per custom module.
Does the work-order kiosk support tablets and large monitors?
Both. The OWL-based kiosk UI scales from 10-inch tablets to 32-inch shop monitors. Touch and mouse input both work. Network-disconnected operation is partial — you can queue scans but not start a new work order without server contact.
How does BOM versioning interact with engineering change orders (ECOs)?
A new BOM version can be linked to an mrp.eco record (engineering change order) which tracks who proposed the change, who approved it, and the effective date. The ECO module ships with the version-control feature and is recommended for regulated manufacturing.
What is the recommended migration sequence for manufacturers?
- Migrate to staging and run MRP. 2) Compare the schedule output to the old run. 3) Tune priority/reservation. 4) Re-train kiosk operators on multi-operator flows. 5) Run a parallel period (1-2 weeks) before cutover. The total elapsed time is typically 4-6 weeks for mid-size manufacturers.
Manufacturing is where Odoo 19's gains are most measurable but also most disruptive to existing workflows. ECOSIRE's manufacturing team has migrated 12+ shops to Odoo 19 including pharma, food, metals, and electronics — see our Odoo customization service or browse our 215+ Odoo modules catalog for production-tested manufacturing modules. We also offer a fixed-fee MRP-tuning sprint that benchmarks your scheduler runtime before and after migration.
作者
ECOSIRE TeamTechnical Writing
The ECOSIRE technical writing team covers Odoo ERP, Shopify eCommerce, AI agents, Power BI analytics, GoHighLevel automation, and enterprise software best practices. Our guides help businesses make informed technology decisions.
相关文章
如何将自定义按钮添加到 Odoo 表单视图 (2026)
将自定义操作按钮添加到 Odoo 19 表单视图:Python 操作方法、视图继承、条件可见性、确认对话框。经过生产测试。
如何在没有 Studio 的情况下在 Odoo 中添加自定义字段 (2026)
通过 Odoo 19 中的自定义模块添加自定义字段:模型继承、视图扩展、计算字段、存储/非存储决策。代码优先,版本控制。
如何使用外部布局在 Odoo 中添加自定义报告
使用 web.external_layout 在 Odoo 19 中构建品牌 PDF 报告:QWeb 模板、paperformat、操作绑定。带有印刷徽标+页脚覆盖。
更多来自Manufacturing in the AI Era
Odoo Inventory 与 Katana MRP 2026:轻工制造
Odoo Inventory 与 Katana MRP:定价、BoM、制造、多渠道同步。制造商和灯具制造商的诚实比较。
Odoo Manufacturing 与 Epicor Kinetic 2026:诚实比较
Odoo Manufacturing 与 Epicor Kinetic(以前称为 ERP):定价、MES、APS、MTO 场景。当每个 ERP 适合时 + 迁移手册。
Odoo Manufacturing 与 IQMS DPM 2026:诚实比较
Odoo Manufacturing 与 IQMS Dassault DELMIAworks DPM:定价、塑料/流程制造、MES。当两者都适合时 + 迁移手册。
Odoo Manufacturing 与 Plex Smart Mfg 2026:诚实比较
Odoo Manufacturing 与 Plex 智能制造平台:定价、MES、汽车 Tier 1/2、部署。当每个 ERP 适合时 + 迁移手册。
Odoo Manufacturing 与 SAP Business One 2026:诚实指南
Odoo Manufacturing 与 SAP Business One:定价、MRP 深度、制造范围、中端市场契合度。当每一个都是正确的 ERP + 迁移手册时。
2026 年制造业排名前 5 的开源 ERP:诚实比较
适用于制造业的最佳开源 ERP:Odoo、ERPNext、Tryton、metasfresh、iDempiere — MRP、BOM、MES、车间和 PLM 功能的诚实比较。