ERP migration

Migrate from Infor LX to Odoo ERP

Field-level mapping, validation, and rollback between Infor LX and Odoo ERP. We move data and schema; workflows are rebuilt natively in Odoo ERP.

Infor LX logo

Infor LX

Source

Odoo ERP

Destination

Odoo ERP logo

Compatibility

82%

9 of 11

objects map 1:1 between Infor LX and Odoo ERP.

Complexity

BStandard

Timeline

5-8 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Infor LX stores master-file data in an IBM i master-file model where GL Accounts, Customers, Vendors, Items, and Orders are period-bound records with configurable Enterprise Financials for multi-currency. Odoo ERP uses a relational model with a unified Accounting app, Inventory app, Manufacturing app, and Purchase/Sales apps. The migration requires extracting from Infor's database export tool during a scheduled maintenance window (all user sessions suspended), resolving the multi-currency AP/AR into Odoo's chart of accounts and fiscal positions, mapping Infor MMS001 item stocking parameters to Odoo product variants with BOM structures, and translating CMS470 custom field definitions into Odoo custom fields. Document exports via IDM carry a 5,000-item run cap and strip historical versions — we split large libraries into chunked export sessions and build a document ID cross-reference for post-import linking. We do not migrate ION connector configurations, custom RPG programs, or Infor-specific workflows as code; we deliver a written inventory of these for the customer's technical team to evaluate for Odoo API-based rebuilds.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Infor LX logo

Infor LX

What's pushing teams away

  • UI modernisation lag makes the green-screen-centric interface increasingly difficult to train new users on compared with browser-native ERP alternatives.
  • Customisation complexity accumulates over years — reports, macros, and form customisations become tightly coupled and expensive to maintain during upgrades.
  • Limited real-time API access forces reliance on maintenance-mode database exports for bulk data movement, which interrupts production users.
  • Annual maintenance costs and the effort required to stay current on releases push some mid-market manufacturers toward cloud-native ERP platforms with included updates.

Choosing

Odoo ERP logo

Odoo ERP

What's pulling them in

  • Modular pay-as-you-grow model with 80+ apps under one database — teams start with CRM and add Accounting, Inventory, or Manufacturing without switching platforms.
  • Free Community edition lets businesses validate Odoo fit before committing to Enterprise licensing costs that scale with user count.
  • Lowest per-user pricing among mid-market ERPs, with a published free tier for one app and Standard plans starting around $24.90 per user per month.
  • Native integration between modules — a confirmed Sales Order automatically updates inventory, invoicing, and accounting without manual re-entry.
  • Strong Odoo Gold Partner ecosystem provides local implementation support, reducing risk for companies without in-house developers.

Object mapping

How Infor LX objects map to Odoo ERP

Each row shows how a Infor LX object lands in Odoo ERP, including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

Infor LX

Chart of Accounts (GL Accounts)

maps to

Odoo ERP

Account (Accounting)

1:1
Fully supported

Infor LX GL accounts with defined account types, currency associations, and cost-centre groupings map to Odoo Account records with Account Type, Account Tag, and internal_group. We extract account codes, descriptions, and account-group mappings from the database export and map them to Odoo's accounting.chart template for the relevant country, adding any Infor-specific cost-centre accounts as Odoo analytic account records. Multi-currency account flags from Infor Enterprise Financials map to Odoo Foreign Currency Gain/Loss accounts on the Fiscal Position.

Infor LX

Customer (AR Master)

maps to

Odoo ERP

Contact / Address (res.partner)

1:1
Fully supported

Infor LX customer master records include credit limits, payment terms, address data, and multi-currency AR settings. We map customer records to Odoo res.partner with type=contact, customer_rank set for deduplication, and payment terms from Infor's payment terms code. Multi-currency AR from Infor translates to a Fiscal Position in Odoo that assigns the correct currency and exchange rate account per customer. Open receivable balances migrate as Odoo Account Move lines against the customer partner.

Infor LX

Vendor (AP Master)

maps to

Odoo ERP

Contact / Address (res.partner)

1:1
Fully supported

Infor LX vendor master records include tax registration, Pay-to addresses, and multi-currency AP settings. We map vendors to Odoo res.partner with type=supplier and vendor_rank set. Infor's Pay-to location concept maps to Odoo's multi-address capability on the vendor partner record. Multi-currency AP settings map to a vendor-specific Fiscal Position in Odoo that controls the correct currency and gain/loss account on foreign-currency AP.

Infor LX

Item (MMS001 Item Master)

maps to

Odoo ERP

Product / Product Template

1:1
Fully supported

Infor LX MMS001 item records carry stocking parameters, unit-of-measure conversions, Phantom Item flags, and item-type classifications. We map standard items to Odoo Product Template with the product type (stockable, consumable, service) derived from the Infor item type. Unit-of-measure conversions in Infor map to Odoo's UoM categories and conversion factors in the uom.uom model. Phantom Items in Infor (used as assembly explode components) map to Odoo BoM lines with type=phantom. CMS470 custom fields attach to item headers and map to Odoo ir.model.field custom fields created on product.template.

Infor LX

Purchase Order

maps to

Odoo ERP

Purchase Order (purchase.order)

1:1
Fully supported

Infor LX PO headers with approval workflows, distribution accounts, and foreign-currency amounts map to Odoo purchase.order records. PO status (open, closed, cancelled) maps to Odoo's state field (draft, sent, purchase, done, cancel). Line-level distribution accounts in Infor translate to Odoo's analytic account on PO lines for cost allocation. We preserve PO dates, payment terms, and line quantities; Infor-specific discounting rules and promotional pricing that rely on Infor pricing engines are noted as requiring manual review or Odoo pricelist configuration post-migration.

Infor LX

Sales Order

maps to

Odoo ERP

Sale Order (sale.order)

1:1
Fully supported

Infor LX SO records include pricing structures, warehouse assignments, and inventory commitments. We map SO headers and line-level quantities to Odoo sale.order and sale.order.line. Warehouse commitment from Infor maps to Odoo's picking policy and delivery reservation logic. Infor's pricing and promotional rules that are source-specific are not carried forward; Odoo pricelist configuration replaces these post-migration. Customer-specific credit limits from Infor AR migrate as Odoo partner credit limits on the res.partner record.

Infor LX

Work Order

maps to

Odoo ERP

Manufacturing Order (mrp.production)

1:1
Fully supported

Infor LX work orders tie production operations to BOMs and routing steps. We map work order numbers, scheduled dates, and component allocations to Odoo mrp.production records with associated mrp.workorder lines. Infor BOM components map to Odoo mrp.bom lines; Infor routing steps map to Odoo work centre operations. Operation-level dependencies and scheduling constraints that rely on Infor's finite capacity scheduling engine are flagged as requiring Odoo planning configuration review post-migration. Component allocations (issuance quantities) migrate as Odoo mrp.workorder qty values.

Infor LX

Inventory Transactions / On-hand Balances

maps to

Odoo ERP

Stock Quant (stock.quant)

1:1
Fully supported

Infor LX physical inventory adjustments and stock movements are recorded as transaction history against warehouse locations and items. We extract current on-hand balances by warehouse location from the database export and create Odoo stock.quant records for the initial inventory snapshot. Full historical transaction logs migrate as Odoo stock.move records if the scope includes inventory history; otherwise, the current on-hand balances serve as the opening inventory for Odoo's stock valuation.

Infor LX

Period Tables

maps to

Odoo ERP

Fiscal Year / Accounting Period (account.fiscal.year)

lossy
Fully supported

Infor LX period tables define financial reporting intervals with start and end dates, organised by year and calendar name. We export the period table structure and the current year's open/closed status and map them to Odoo account.fiscal.year records. Infor's period-based accounting (where transactions are bound to a specific period) requires Odoo's lock date and fiscal year lock configuration to replicate the same access control. Inter-company or multi-subsidiary period calendars map to separate Odoo fiscal year configurations per company.

Infor LX

Custom Fields (CMS470)

maps to

Odoo ERP

Custom Fields (ir.model.field)

lossy
Fully supported

CMS470 custom fields in Infor LX attach to items, suppliers, and purchase agreement headers and lines. They support alphanumeric, numeric, and date types. We extract field definitions and their values together, create the equivalent Odoo ir.model.field definitions (custom fields on the relevant model), and populate the values during the corresponding record import. Alphanumeric multi-select CMS470 fields map to Odoo selection fields or many2many tags depending on the cardinality of values.

Infor LX

IDM Documents

maps to

Odoo ERP

Attachments (ir.attachment)

1:1
Fully supported

Infor Document Management exports carry a 5,000-document cap per run, strip historical versions, and reassign IDs on import. We split large document libraries into numbered chunked export sessions, build a cross-reference table mapping source document IDs to destination attachment IDs, and re-link attachments to their associated transactional records (POs, SOs, work orders) after import by matching document filenames or metadata keys against the migrated record identifiers.

Gotchas + challenges

What specifically takes care here

Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.

Infor LX logo

Infor LX gotchas

High

Maintenance mode required for database exports

Medium

IDM document export caps at 5,000 items per run

Medium

ION API execution timeouts are strict

Low

Document IDs and properties are reassigned on import

Odoo ERP logo

Odoo ERP gotchas

High

No rollback for CSV imports

High

External ID conflicts on re-import

Medium

Many2many field encoding in CSV imports

Medium

Large export timeouts require batching

Medium

Version schema drift between Odoo releases

Pair-specific challenges

  • Infor LX requires maintenance-mode for database exports

    Infor LX's built-in database export tool prompts for maintenance mode if any user sessions are active, suspending all production access during extraction. We schedule the export during a planned maintenance window, extract target tables (GL accounts, customers, vendors, items, orders) in a single sequenced pass to preserve referential integrity, and resume user sessions immediately after. If the organisation runs shifts across multiple time zones, the maintenance window must span all active periods. This constraint adds coordination overhead but does not change the data quality of the export itself.

  • Multi-currency AP/AR period mapping requires fiscal position design

    Infor LX's Enterprise Financials handles multi-currency AP and AR with configurable currency per account and foreign currency revaluation at period close. Odoo handles multi-currency via Fiscal Position and exchange rate provider (defaulting to ECB). We map each Infor currency-assigned account to an Odoo Fiscal Position that pairs the currency with the correct exchange gain/loss account. If the customer has multiple open foreign-currency invoices spanning different periods, we carry forward the original exchange rates as Odooaml entries so that AP/AR balances reconcile without revaluing at current rates mid-migration.

  • IDM document export caps at 5,000 items per run and strips history

    When exporting document objects via IDM's Export/Import tool with SharePoint in use, a 5,000-document limit applies per exporter run and only the latest version of each document transfers. We split large document libraries into sequential numbered export sessions, track the ID remapping table during each run, and flag any documents that exceeded the version-retention expectation. We do not extract document version history from IDM since it is not included in the export; the written handoff document notes this limitation for the customer's records management review.

  • CMS470 custom fields require schema pre-creation before data import

    Infor LX CMS470 custom fields attach to items, suppliers, and purchase agreement headers and lines, and can be alphanumeric, numeric, or date types. Odoo requires ir.model.field definitions to exist on the target model before any custom field data can be imported. We extract CMS470 field definitions first, create the corresponding Odoo custom field definitions in the development environment, validate them with a test import, then deploy to the destination Odoo instance before any production record import begins. Skipping this step results in custom field values being silently dropped or rejected on import.

  • Work-order BOM and routing dependencies do not auto-translate to Odoo planning

    Infor LX work orders carry operation-level dependencies and scheduling constraints that reference Infor's routing engine. Odoo MRP handles work orders with work centre sequences and BoM lines but does not replicate Infor's finite capacity scheduling logic. We migrate work order numbers, component allocations, and scheduled dates as Odoo mrp.production records with mrp.workorder lines, and we flag the routing dependency constraints in the written inventory as requiring Odoo MRP planning configuration review. The customer's production planner rebuilds the scheduling constraints in Odoo's planning view post-migration.

Migration approach

Six steps for a successful Infor LX to Odoo ERP data migration

  1. Maintenance window scheduling and source audit

    We coordinate with the customer's Infor LX operations team to identify the smallest maintenance window that covers all active shifts across time zones. During this window we run the built-in Database Export tool across the target tables: GL accounts, customers, vendors, items, period tables, POs, SOs, work orders, and inventory snapshots. We simultaneously audit the CMS470 custom field registry to capture all active field definitions and their target models. Any table that exceeds the document export cap (such as IDM document libraries) is noted for chunked sequencing. The source audit output is a written inventory of record counts, foreign key relationships, and identified data quality issues (duplicate SKUs, missing customer addresses, null balances) to be resolved before transformation.

  2. Odoo environment provisioning and schema design

    We provision the destination Odoo environment with the appropriate edition (Standard at $24.90/user/month or Custom at $46.80/user/month) and install the core apps required for the migration scope: Accounting, Inventory, Purchase, Sales, and Manufacturing. We then pre-create all CMS470 custom fields as Odoo ir.model.field definitions on the target models (product.template for items, res.partner for customers and vendors, purchase.order and sale.order for orders). We configure the chart of accounts by installing the country-specific accounting template, adding any Infor cost-centre accounts as analytic account records, and designing the Fiscal Position structure for multi-currency mapping. The schema is validated in a staging environment before any production data loads.

  3. Multi-currency and fiscal position design

    We map each Infor currency-assigned customer and vendor to an Odoo Fiscal Position that specifies the currency and the corresponding exchange gain/loss account. For open foreign-currency AP and AR balances, we create Odooaml entries that lock the original exchange rate so that the balance does not revalue during migration. We configure the Odoo exchange rate provider (defaulting to ECB) for ongoing currency updates post-migration. Period tables from Infor map to Odoo account.fiscal.year records, and Infor's period-lock configuration maps to Odoo's lock dates for the journal entries.

  4. Master data migration in dependency order

    We run master data migration in strict dependency order: chart of accounts (first, no dependencies), then customers and vendors (res.partner records with payment terms and fiscal positions resolved), then products (product.template with CMS470 custom fields and UoM conversions), then analytic accounts. Each phase emits a row-count reconciliation report against the source export. After master data is validated, we migrate open POs and SOs (purchase.order, sale.order with lines and analytic accounts), then work orders (mrp.production with mrp.workorder lines and BoM references), then the inventory on-hand snapshot (stock.quant). Document libraries migrate last via chunked IDM export sessions with ID cross-reference tables built incrementally.

  5. IDM document chunking and cross-reference build

    For document libraries exceeding 5,000 items, we split the IDM export into numbered sequential sessions. After each session completes, we update the cross-reference table mapping source document ID to destination ir.attachment ID. Once all chunks are loaded, we run a post-import linking script that matches document filenames or metadata against migrated PO, SO, and work order identifiers and attaches the documents to the correct Odoo records. Any documents that failed to link (orphaned metadata) are flagged in the reconciliation report for manual review.

  6. Cutover, validation, and inventory handoff

    We freeze Infor LX writes during the cutover window, run a final delta migration of any records modified since the initial export, then validate Odoo record counts against the source. The customer's finance team spot-checks open AP/AR balances, the operations team validates on-hand inventory quantities, and the production team confirms work order component allocations. We deliver the ION connector inventory, CMS470 custom field map, document version history limitation note, and work-order routing dependency flag as written scope for the customer's technical team. We do not rebuild Infor ION integrations or workflows as Odoo automations; those are documented for separate rebuild scope.

Platform deep dives

Context on both ends of the pair

Infor LX logo

Infor LX

Source

Strengths

  • Deep manufacturing capabilities with strong MRP/MPS and shop-floor functionality, popular with large discrete and process manufacturers
  • Stability and longevity on the IBM i (AS/400) platform — Infor LX 8.4 still runs on this trusted, scalable hardware
  • Effective integration of planning, manufacturing, and distribution within a single ERP
  • Available in both Infor Cloud and on-premises deployment, allowing flexibility for customers with data residency or hardware preferences
  • Large enterprise segment focus — about 45% of PeerSpot researchers come from large enterprise, validating the platform for that scale

Weaknesses

  • Support is widely reported as lacking, with vendor attention focused on newer products over LX
  • APIs are underdeveloped relative to the IBM i foundation, complicating integration with modern cloud applications
  • User interface is dated and needs significant enhancement to match contemporary ERP UX expectations
  • Finance and administration features fall short for some country localizations (e.g., Italian accounting)
  • Customer base skews toward established enterprises rather than growing/cloud-first companies, limiting peer-community modernization patterns
Odoo ERP logo

Odoo ERP

Destination

Strengths

  • Modular architecture with 80+ apps sharing one database — add Sales, Accounting, Inventory, and Manufacturing incrementally.
  • Free Community edition for self-hosting with no per-user license cost, backed by an active open-source community.
  • Per-user pricing starting around $24.90/month on Standard, significantly lower than comparable ERPs like NetSuite or SAP.
  • Automatic workflow propagation across modules — a confirmed sales order updates inventory, triggers invoicing, and posts accounting entries without manual steps.
  • Odoo.sh provides a managed cloud hosting environment with CI/CD for custom module deployment and staging databases.

Weaknesses

  • Performance suffers under heavy customization — large implementations with many active modules require dedicated optimization.
  • No single-click migration between Odoo major versions; each release introduces ORM changes, deprecated API calls, and schema revisions requiring manual adaptation.
  • Per-user and per-module licensing costs can escalate unpredictably for growing teams adding multiple apps.
  • Steep learning curve with hundreds of configuration options across dozens of modules creates adoption friction and training requirements.
  • Support tiers on Enterprise have inconsistent response times, pushing some customers toward alternatives with more reliable SLAs.

Complexity grading

How hard is this migration?

Standard ERP migration. 2 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Infor LX and Odoo ERP.

  • Object compatibility

    B

    2 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Infor LX: PRD tenants capped at 250 concurrent REST executions across all deployed services; non-PROD tenants capped at 125. Individual REST handlers limited to 25 seconds per call..

  • Data volume sensitivity

    B

    Infor LX doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Infor LX to Odoo ERP migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Infor LX to Odoo ERP data migrations

Answers to the questions buyers ask most during Infor LX to Odoo ERP migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Infor LX to Odoo ERP migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most Infor LX to Odoo migrations complete in five to eight weeks for organisations with under 50,000 items, 5,000 customers, and 2,000 open orders with no multi-site or inter-company accounting. Migrations with multi-currency AP/AR across multiple fiscal years, CMS470 custom field schemas above 50 fields, large open-order backlogs, or work-order component history extend to ten to sixteen weeks because of the maintenance-window coordination, period-table mapping, and BOM-level item transformation required. The maintenance window itself is the primary schedule constraint since it requires halting all Infor LX user sessions.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Infor LX.
Land in Odoo ERP, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day