Skip to content
Odoo Migration

Migrating Manufacturing BOMs and Routing Data from Legacy Systems to Odoo

A practical guide for CIOs and ERP consultants on migrating complex manufacturing BOMs and routings to Odoo, covering data profiling, mapping, validation, and risk mitigation strategies.

5 min readSysGenPro Editorial
Migrating Manufacturing BOMs and Routing Data from Legacy Systems to Odoo

How to Migrate Manufacturing BOMs and Routing Data from Legacy Systems to Odoo

Migrating manufacturing Bill of Materials (BOM) and routing data from legacy systems to Odoo requires a structured approach focused on data integrity, process mapping, and rigorous validation. The primary risk is the loss of hierarchical complexity or operational logic, which can disrupt production planning and inventory accuracy. To mitigate this, organizations must profile source data, map fields to Odoo's manufacturing models, cleanse inconsistencies, and execute multiple trial migrations in a staging environment. Success depends on aligning legacy process definitions with Odoo's manufacturing module capabilities, ensuring that work centers, operations, and component relationships are accurately translated. This process is not merely a data transfer but a re-engineering of manufacturing logic to fit the target system's architecture.

Preparation: Data Profiling and Requirements Analysis

The migration begins with a comprehensive audit of the legacy system's manufacturing data. This involves extracting BOM structures, routing definitions, work centers, and associated metadata. Data profiling identifies anomalies such as orphaned components, circular references, inconsistent units of measure, and missing operation sequences. It is critical to document the business rules governing these structures, such as how scrap rates are applied or how phantom components are handled. Stakeholders from production, engineering, and IT must collaborate to define the target state in Odoo, ensuring that the new system supports existing workflows or provides a better alternative. This phase establishes the baseline for mapping and validation criteria.

Identifying Data Dependencies

BOMs and routings are not isolated entities; they depend on product master data, work center definitions, and resource assignments. Before migration, ensure that all referenced products and work centers are migrated and validated. If a BOM references a component that does not exist in the target system, the migration will fail or create broken links. Similarly, routings depend on work centers and operations, which must be defined with correct capacities and cost rates. Mapping these dependencies early prevents cascading errors during the data load.

Mapping Legacy Structures to Odoo Models

Odoo's manufacturing module uses specific models for BOMs (mrp.bom), BOM lines (mrp.bom.line), routings (mrp.routing), and operations (mrp.routing.workcenter). The mapping process involves translating legacy fields to these Odoo models. For example, a legacy BOM header maps to mrp.bom, while components map to mrp.bom.line. Routing steps map to mrp.routing.workcenter. It is essential to verify how Odoo handles multi-level BOMs, as the system supports recursive structures but requires careful handling of phantom components and virtual items. Custom fields in the legacy system may need to be mapped to Odoo's custom fields or ignored if not critical. This mapping document serves as the blueprint for the ETL (Extract, Transform, Load) process.

Legacy EntityOdoo ModelKey FieldsNotes
BOM Headermrp.bomproduct_id, type, operation_idEnsure product exists in Odoo
BOM Componentmrp.bom.lineproduct_id, bom_id, product_qtyHandle phantom components carefully
Routing Stepmrp.routing.workcenterworkcenter_id, operation_id, timeMap work centers and operations
Work Centermrp.workcentername, capacity, costDefine capacities and cost rates

Data Cleansing and Transformation

Raw data from legacy systems often contains duplicates, obsolete records, and formatting inconsistencies. Data cleansing involves removing obsolete BOMs, deduplicating components, and standardizing units of measure. Transformation rules must be applied to convert legacy data formats to Odoo's expected structures. For instance, if the legacy system uses a different date format or currency, these must be converted. Scrap rates and efficiency factors should be validated against current production standards. This step is crucial for ensuring that the migrated data is accurate and usable. Automated scripts can perform bulk transformations, but manual review is necessary for complex or ambiguous records.

Handling Complex BOM Structures

Multi-level BOMs and sub-assemblies require special attention. Odoo supports recursive BOMs, but the migration process must ensure that parent-child relationships are preserved. Phantom components, which are used for grouping but not stored in inventory, must be correctly flagged in Odoo. If the legacy system uses a different method for handling phantom items, a transformation rule must be created to map them to Odoo's phantom component logic. Failure to do so can result in incorrect inventory calculations and production planning errors.

Trial Migrations and Validation

Before the final cutover, execute multiple trial migrations in a staging environment that mirrors the production setup. Each trial should include data extraction, transformation, loading, and validation. Validation involves checking data integrity, such as ensuring that all BOM lines reference valid products and that routing steps are correctly linked to work centers. Reconciliation reports should compare source and target data to identify discrepancies. User acceptance testing (UAT) is critical, where production managers and engineers verify that the migrated BOMs and routings support their workflows. Defects identified during UAT must be resolved and re-tested before proceeding to the next trial.

  • Verify that all BOMs are accessible and editable in Odoo.
  • Check that routing steps are correctly sequenced and linked to work centers.
  • Validate that component quantities and units of measure are accurate.
  • Test production order creation using migrated BOMs and routings.
  • Reconcile inventory levels and production costs between source and target.

Cutover Planning and Execution

The cutover phase involves finalizing the data load and switching from the legacy system to Odoo. A detailed cutover plan must define the sequence of activities, responsible roles, and rollback triggers. The final data load should occur during a planned downtime window to minimize disruption. Before the load, ensure that all data cleansing and transformation rules are finalized and tested. During the load, monitor for errors and log all activities. Post-load, perform a final validation to ensure data integrity. If critical issues arise, the rollback plan should be executed to restore the legacy system and revert any changes made in Odoo.

Go/No-Go Criteria

Written by
SysGenPro Editorial

SysGenPro Editorial

Platform & solutions team

Practical guidance on ERP, AI automation, cloud deployment and enterprise transformation from the SysGenPro team.

Share this article
Continue learning
View all articles
Explore the platform

Where to go next

Browse the knowledge hub

See how SysGenPro fits your business

Discuss your workflows, modules and deployment options with our team.

Back to resources