本文目前仅提供英文版本。翻译即将推出。
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.
属于我们的AI 时代的制造业系列
阅读完整指南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. For manufacturing migrations to Odoo 19, 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 Research and Development Team技术写作
ECOSIRE 技术写作团队的内容涵盖 Odoo ERP、Shopify 电子商务、AI 智能体、Power BI 分析、GoHighLevel 自动化以及企业软件最佳实践。我们的指南帮助企业做出明智的技术决策。
相关文章
AI 支持的客户细分:从 RFM 到预测聚类
了解 AI 如何将客户细分从静态 RFM 分析转变为动态预测聚类。使用 Python、Odoo 和真实 ROI 数据的实施指南。
用于供应链优化的人工智能:可见性、预测和自动化
利用人工智能改变供应链运营:需求感知、供应商风险评分、路线优化、仓库自动化和中断预测。 2026年指南。
B2B 批发电商指南:买家门户、账期与客户专属定价
打造买家真正愿意用的 B2B 批发门户:客户专属定价、账期与信用额度、采购单与审批结账,以及基于订单历史的一键复购。
更多来自AI 时代的制造业
时尚和服装 ERP:PLM、尺码和季节性系列
ERP 系统如何管理时尚产品生命周期、尺码-颜色矩阵、季节性系列、面料采购、样品管理以及 B2B 加 DTC 渠道。
家具制造 ERP:BOM、定制订单和交付
了解 ERP 系统如何处理按订单配置的家具、复杂的 BOM、木材和织物库存、自定义尺寸、交货计划和陈列室 POS。
Odoo 与 Epicor:2026 年制造业 ERP 比较
Odoo 与 Epicor Kinetic 制造 ERP 比较,涵盖 MRP、车间、质量控制、调度、物联网、定价和实施时间表。
制造业中的数字孪生:连接物理和数字
了解数字孪生技术如何改变制造业——从机器级预测性维护到完整的工厂模拟和 ERP 集成策略。
汽车 ERP:零件管理、服务和制造
汽车行业 ERP 完整指南 - 2026 年零部件管理、经销商运营、车辆服务、制造和供应链。
工业5.0:制造中的人机协作
了解工业 5.0 以及人机协作如何改变制造业——从协作机器人和外骨骼到人工智能引导的装配和弹性供应链。