この記事は現在英語版のみです。翻訳は近日公開予定です。
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: QWeb テンプレート、paperformat、アクション バインディングを使用して、Odoo 19 でブランド化された PDF レポートを構築します。印刷ロゴ + フッターのオーバーライド付き。
Manufacturing in the AI Eraのその他の記事
Odoo 在庫 vs Katana MRP 2026: 軽工業
Odoo Inventory vs 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 年の製造業向けオープンソース ERP トップ 5: 正直な比較
製造業に最適なオープンソース ERP: Odoo、ERPNext、Tryton、metasfresh、iDempiere - MRP、BOM、MES、製造現場、および PLM 機能の正直な比較。