Skip to content
ERP Migration

How to Map Legacy ERP Fields to Modern Odoo Data Models

A practical guide for CIOs and ERP consultants on mapping legacy ERP fields to Odoo data models, covering profiling, transformation, validation, and risk mitigation.

6 min readSysGenPro Editorial
How to Map Legacy ERP Fields to Modern Odoo Data Models

How to Map Legacy ERP Fields to Modern Odoo Data Models

Mapping legacy ERP fields to modern Odoo data models requires a structured approach that begins with comprehensive data profiling and ends with rigorous validation. The primary goal is to ensure that critical business data is accurately translated into Odoo's relational structure without losing integrity or breaking business processes. This process is critical because Odoo's data models are highly normalized and differ significantly from many legacy systems, which often use denormalized or flat-file structures. The main risks to control include data loss, incorrect transformation of business logic, and the creation of orphaned records that compromise reporting accuracy. Success depends on identifying which fields are essential for operations, which can be transformed, and which should be archived or discarded. A clear mapping strategy protects operational continuity and reduces the cost of post-migration fixes.

Phase 1: Data Profiling and Source System Analysis

Before writing any mapping rules, you must understand the source data. Data profiling involves analyzing the legacy ERP database to identify field types, data volumes, null values, duplicate records, and data quality issues. This step is often overlooked but is the foundation of a successful migration. You need to document the current state of the data, including any known inconsistencies or workarounds that users have implemented. For example, if a legacy system stores customer addresses in a single text field, you need to identify how to split this into Odoo's separate street, city, and country fields. This analysis should be performed by a team that includes both IT specialists and business process owners to ensure that technical data structures are understood in the context of business operations.

Identifying Critical Data Entities

Not all data in a legacy ERP is worth migrating. You must distinguish between master data, such as customers, products, and vendors, and transactional data, such as sales orders and invoices. Master data is typically migrated in full to ensure continuity, while transactional data may be migrated only for a specific historical period required for reporting or audit purposes. Identifying these entities helps in prioritizing the mapping effort. For instance, product data often requires the most attention because it involves complex attributes like variants, units of measure, and tax categories. Understanding the dependencies between entities is also crucial; for example, a sales order cannot be migrated without the associated customer and product records.

Phase 2: Target Model Analysis and Gap Assessment

Once the source data is profiled, the next step is to analyze the Odoo data models that will receive this data. Odoo uses a specific set of models for each module, such as res.partner for customers and products.product for items. You must map each legacy field to the corresponding Odoo field. This is where the complexity lies, as legacy fields often do not have a direct equivalent in Odoo. For example, a legacy system might have a single field for 'Customer Type' that includes values like 'Retail', 'Wholesale', and 'Internal'. In Odoo, this might need to be mapped to a property on the res.partner model or a custom field. A gap assessment identifies where Odoo's standard functionality does not match the legacy system's capabilities. These gaps must be resolved either by customizing Odoo, changing business processes, or accepting data loss for non-critical fields.

Handling Custom and Non-Standard Fields

Legacy systems often contain custom fields that were added over time to meet specific business needs. These fields may not exist in Odoo's standard models. You have three options for handling these fields: create custom fields in Odoo, map them to existing Odoo fields if the meaning is similar, or archive them in a separate table or document. Creating custom fields in Odoo is possible but should be done carefully to avoid complicating future upgrades. If a custom field is critical to business operations, it should be replicated in Odoo. If it is only used for historical reporting, it may be better to keep it in the legacy system or export it to a data warehouse. This decision requires input from business stakeholders to determine the long-term value of the data.

Phase 3: Defining Transformation Rules

Transformation rules define how data is converted from the legacy format to the Odoo format. This includes data type conversions, value mappings, and business logic translations. For example, if a legacy system uses a numeric code for product categories and Odoo uses a hierarchical category tree, you need to define a rule that maps each numeric code to the correct Odoo category. Transformation rules should be documented in a detailed mapping matrix that includes the source field, target field, transformation logic, and any exceptions. This matrix serves as the blueprint for the migration scripts and is a critical document for validation. It is important to test these rules with sample data before applying them to the full dataset. This helps identify edge cases and potential errors early in the process.

Source FieldTarget Odoo FieldTransformation RuleNotes
CUST_IDres.partner.idDirect MappingEnsure unique constraint
CUST_NAMEres.partner.nameTrim and CapitalizeHandle null values
PROD_CAT_CODEproduct.category.idLookup TableMap to Odoo category tree
ORDER_DATEsale.order.date_orderDate Format ConversionConvert to ISO 8601

Phase 4: Data Cleansing and Deduplication

Data cleansing is a critical step that should be performed before migration. Legacy systems often contain duplicate records, inconsistent formatting, and invalid data. Migrating dirty data to Odoo will result in a system that is difficult to use and maintain. Deduplication involves identifying and merging duplicate records, such as multiple entries for the same customer. This requires defining rules for what constitutes a duplicate, such as matching on email address or phone number. Data cleansing also includes standardizing formats, such as ensuring all dates are in the same format and all currency values are in the same unit. This step can be time-consuming but is essential for ensuring data quality in the new system. It is recommended to perform data cleansing in the legacy system or in a staging environment before the final migration.

Managing Data Quality Issues

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