Este artigo está atualmente disponível apenas em inglês. Tradução em breve.
Parte da nossa série Manufacturing in the AI Era
Leia o guia completoOdoo 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.
Escrito por
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.
ECOSIRE
Transforme seu negócio com o Odoo ERP
Implementação, personalização e suporte especializado do Odoo para agilizar suas operações.
Artigos Relacionados
Como adicionar um botão personalizado a uma visualização de formulário Odoo (2026)
Adicione botões de ação personalizados às visualizações de formulário do Odoo 19: método de ação Python, herança de visualização, visibilidade condicional, caixas de diálogo de confirmação. Testado em produção.
Como adicionar um campo personalizado no Odoo sem Studio (2026)
Adicione campos personalizados por meio de módulo personalizado no Odoo 19: herança de modelo, extensão de visualização, campos computados, decisões de loja/não loja. Código primeiro, controlado por versão.
Como adicionar um relatório personalizado no Odoo usando layout externo
Crie um relatório PDF de marca no Odoo 19 usando web.external_layout: modelo QWeb, formato de papel, vinculação de ação. Com logotipo impresso + substituições de rodapé.
Mais de Manufacturing in the AI Era
Inventário Odoo vs Katana MRP 2026: Fabricação leve
Odoo Inventory vs Katana MRP: preços, BoM, fabricação, sincronização multicanal. Comparação honesta para fabricantes e fabricantes de lâmpadas.
Odoo Manufacturing vs Epicor Kinetic 2026: comparação honesta
Odoo Manufacturing vs Epicor Kinetic (anteriormente ERP): preços, cenários MES, APS, MTO. Quando cada ERP se ajusta + manual de migração.
Odoo Manufacturing vs IQMS DPM 2026: comparação honesta
Odoo Manufacturing vs IQMS Dassault DELMIAworks DPM: preços, fabricação de plásticos/processos, MES. Quando cada um se encaixa + manual de migração.
Odoo Manufacturing vs Plex Smart Mfg 2026: comparação honesta
Plataforma Odoo Manufacturing vs Plex Smart Manufacturing: preços, MES, nível 1/2 automotivo, implantação. Quando cada ERP se ajusta + manual de migração.
Odoo Manufacturing vs SAP Business One 2026: Guia honesto
Odoo Manufacturing vs SAP Business One: preços, profundidade do MRP, escopo de fabricação, adequação ao mercado intermediário. Quando cada um é o manual de migração ERP + certo.
Os 5 principais ERPs de código aberto para manufatura em 2026: comparação honesta
Melhores ERPs de código aberto para manufatura: Odoo, ERPNext, Tryton, metasfresh, iDempiere — comparação honesta de recursos de MRP, BOM, MES, chão de fábrica e PLM.