ERP migration

Migrate from Epicor Eclipse to Odoo ERP

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

Epicor Eclipse logo

Epicor Eclipse

Source

Odoo ERP

Destination

Odoo ERP logo

Compatibility

75%

9 of 12

objects map 1:1 between Epicor Eclipse and Odoo ERP.

Complexity

BStandard

Timeline

4-8 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Epicor Eclipse to Odoo ERP is a platform architecture migration, not a simple record export. Eclipse runs on Rocket UniVerse, a MultiValue/NoSQL database with file-based storage and dynamic arrays that do not map directly to Odoo's PostgreSQL relational schema. We extract Eclipse data through the REST API (the API package Eclipse offers) supplemented by direct file parsing via Eterm connections, transform MultiValue fields into standard Odoo relational records, and insert via Odoo's XML-RPC API with throttling at approximately 1 request per second and no parallel calls. Eclipse's tightly-linked workflow chain (Quote → Order → Job → Material → Labor → Shipment → Invoice → Financials) must survive migration intact; we validate each stage end-to-end after load. Custom UniBASIC programs, EDA analytics configurations, and custom UniBASIC-based tax logic do not migrate automatically and require redevelopment in Odoo.

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

Epicor Eclipse logo

Epicor Eclipse

What's pushing teams away

  • Eclipse lacks a true cloud-native version, pushing organizations toward Kinetic or competing cloud ERPs for scalability and remote access.
  • The character-based green screen interface feels outdated compared to modern web-based ERPs, creating friction for new employees and remote teams.
  • Limited built-in reporting and analytics capabilities require significant customization or third-party tools to gain actionable insights.
  • Integration with modern CRM, e-commerce, and MES systems is challenging without custom development, creating data silos.
  • Rising per-user costs ($120-200/month) and implementation fees drive organizations to evaluate lower-cost cloud alternatives.

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 Epicor Eclipse objects map to Odoo ERP

Each row shows how a Epicor Eclipse 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.

Epicor Eclipse

Customer

maps to

Odoo ERP

Contact (address type = Delivery or Invoice)

1:1
Fully supported

Eclipse customer records stored in UniVerse file dictionaries with dynamic array address fields map to Odoo Contact records. Eclipse's multiple ship-to addresses per customer become separate Contact records under the same parent Contact. Customer-specific pricing tiers, salesperson assignments, and credit limits transfer to Odoo Contact fields and res_partner properties. Customer ERP customer ID becomes the Odoo external ID for cross-reference.

Epicor Eclipse

Supplier

maps to

Odoo ERP

Contact (address type = Supplier)

1:1
Fully supported

Eclipse vendor records include PO history, rebate terms, EDI capabilities, and buying codes stored as MultiValue fields. We extract the vendor master, normalize buying codes to Odoo Supplier Pricelists, and preserve vendor terms and EDI flags as Contact properties and Purchase configuration fields. Vendor account numbers map to Odoo Contact reference fields.

Epicor Eclipse

Part / Product

maps to

Odoo ERP

Product Template + Product Variant

1:1
Fully supported

Eclipse part records contain dynamic attributes, substitute and replacement chains, warehouse-specific stocking data, lot/serial tracking, and substitute relationships stored as dynamic arrays. We flatten these into Odoo Product Templates with Variants (if attribute-based sizing applies), extract warehouse-level quantities to Odoo quant records, and flag user-defined dictionary fields that do not map to standard Odoo product fields. Product ERP ID becomes the Odoo external ID.

Epicor Eclipse

Open Sales Order

maps to

Odoo ERP

Sale Order

1:1
Fully supported

Open orders link to customer, part, pricing, and warehouse records. We extract order headers and line detail with order-specific discounts and notes, preserving the original order number as the Odoo name. Eclipse order-specific pricing and customer-specific contract prices map to Odoo Sale Order Lines with manual price override where applicable. Warehouse assignment per line maps to Odoo's multi-warehouse picking rules.

Epicor Eclipse

Open Purchase Order

maps to

Odoo ERP

Purchase Order

1:1
Fully supported

PO records include vendor terms, line items, and receiving status. We extract open POs, map them to Odoo Purchase Orders, and flag partially-received orders that require line-level status preservation. PO line taxes from Eclipse tax jurisdiction assignments migrate to Odoo fiscal positions or line-level tax selection based on vendor country.

Epicor Eclipse

Inventory / Stock

maps to

Odoo ERP

Stock Quant

1:1
Mapping required

Eclipse tracks on-hand, allocated, and on-order quantities per warehouse per part using MultiValue fields. We extract warehouse-level quantities per bin/location to Odoo Stock Quants with location_id resolved per warehouse. Lot and serial number tracking migrates to Stock Production Lot. Allocation status from Eclipse maps to Odoo reservation state on quants.

Epicor Eclipse

Chart of Accounts

maps to

Odoo ERP

Account Account

lossy
Mapping required

Eclipse account structures use non-standard numbering and can embed divisions and cost centers in a single field. We extract the account master, segment per Odoo's chart of accounts structure (account type, account code, parent_id), and map external account references to Odoo account codes. If Eclipse uses cost centers as part of account numbering rather than standalone entities, we propose an Odoo analytic account plan for cost center tracking post-migration.

Epicor Eclipse

Open AR / AP

maps to

Odoo ERP

Account Move (Invoice) + Account Payment

1:1
Mapping required

Outstanding invoices and vouchers are extracted with full aging data, customer/vendor references, payment terms, and apply-to information. We preserve open invoice totals, aging buckets, and partial payment allocations in Odoo Account Moves with reconciled link tracking. AR aging from Eclipse maps to Odoo Account Aged Trial Balance; AP aging maps to Odoo Vendor Bill reconciliation.

Epicor Eclipse

Historical Transactions

maps to

Odoo ERP

Account Move (locked)

1:1
Mapping required

Sales history, purchase history, and invoice history spanning 2-5 years migrate as locked Odoo Account Moves. We scope historical volume during discovery to avoid surprise extraction volumes, noting that Eclipse does not auto-purge unlike most SQL-based ERPs. Invoice PDF references migrate as Odoo ir_attachment records linked to the corresponding Account Move where available.

Epicor Eclipse

Quote / Estimate

maps to

Odoo ERP

Sale Order (state = Draft or Sent)

1:1
Fully supported

Open Eclipse quotes migrate in full detail as Odoo Draft Sale Orders. Quote lines with configuration and pricing migrate to Sale Order Lines. Closed quote statistics (total quoted, won/loss counts, average close time) migrate as summary records in a custom Odoo model or as analytic entries for reporting. Quote expiration dates map to Odoo validity_date on Sale Orders.

Epicor Eclipse

Tax Code / Jurisdiction

maps to

Odoo ERP

Account Tax

lossy
Fully supported

Eclipse tax jurisdiction assignments tied to customer ship-to locations map to Odoo Account Tax records with country-based fiscal position assignment. Tax rate values migrate to Odoo tax amounts. Any tax calculation logic embedded in custom UniBASIC programs is flagged in the handoff inventory as requiring redevelopment in Odoo using Python tax computation or an Odoo fiscal position rule.

Epicor Eclipse

Department / Cost Center

maps to

Odoo ERP

Department (HR) or Analytic Account

lossy
Fully supported

Eclipse organizations may use cost centers as part of the account structure rather than standalone entities. We extract department definitions, map them to Odoo HR Department for organizational structure, and propose an Analytic Account plan for cost-center tracking across orders and invoices post-migration. If Eclipse cost centers are purely financial and not HR-related, we recommend using Odoo Analytic Accounts exclusively.

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.

Epicor Eclipse logo

Epicor Eclipse gotchas

High

UniVerse MultiValue extraction requires non-standard tools

High

Performance degradation post-Kinetic migration

High

End-to-end workflow must be validated as a chain

Medium

Historical data scoping determines migration cost

Medium

Integration connections require separate migration planning

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

  • UniVerse MultiValue extraction requires non-standard API access

    Eclipse runs on Rocket UniVerse NoSQL with file-based storage and PICK BASIC programming. Standard SQL connectors and ODBC tools cannot read Eclipse data directly. The only modern extraction path is the Eclipse REST API (a separate paid subscription that most Eclipse shops do not have enabled) or direct Eterm terminal emulator connections for file-based extraction. We assess which method is available during discovery, and if neither API nor Eterm access is available, we scope a pre-migration phase to configure API access before data extraction begins. Shops that have only green-screen Eterm access require Eterm scripting or file export configuration that adds timeline and cost.

  • Dynamic array fields must be flattened before Odoo insertion

    Eclipse stores customer addresses, part attributes, warehouse quantities, and order line data as dynamic arrays within single field values. A single Eclipse order line may contain part number, quantity, warehouse, bin, lot, substitute part, and pricing all encoded in one field separated by delimiters. We write transformation logic to parse these arrays and map each element to the correct Odoo relational field. Inconsistent delimiter usage across Eclipse modules (sometimes comma, sometimes value mark, sometimes subvalue mark) requires module-by-module parsing rules that we document in the mapping specification before migration runs.

  • Quote-to-Invoice workflow chain must validate end-to-end post-migration

    Eclipse workflows (Quote → Order → Job → Material → Labor → Shipment → Invoice → Financials) are tightly linked with field-level cross-references that do not exist as foreign keys in UniVerse but function as linked chains. If even one stage breaks in Odoo, the downstream chain breaks. We run full end-to-end test scenarios after migration, creating a test Quote in Odoo, converting it to a Sale Order, receiving material against the related manufacturing order if applicable, shipping, and validating that the resulting invoice totals match Eclipse balances. We flag any workflow stage that cannot replicate the Eclipse chain behavior as a configuration gap in Odoo.

  • Odoo API throttling at 1 call per second constrains migration throughput

    Odoo's XML-RPC API enforces approximately 1 request per second with no parallel calls for unsustained usage per the Odoo acceptable use policy. For migrations with tens of thousands of records (parts, orders, inventory quants), this throttling significantly extends migration timeline. We batch Odoo API calls using xmlrpc batch operations, chunk records into groups of 100 per request, and pre-validate all data in staging before the throttled production insert. Large inventory migrations with 500,000+ quant records may require multiple migration sessions spread across days to respect the rate limit without triggering a suspension.

  • Custom UniBASIC programs and EDA analytics do not migrate

    Eclipse customers with custom UniBASIC programs for rebate calculation, special pricing logic, or EDI mapping cannot migrate these programs to Odoo. We extract the program source code from Eclipse file stores, document the business logic it implements, and deliver it as a reference specification for Odoo Python module development. Epicor Data Analytics (EDA) dashboards, pre-built reports, and data warehouse exports similarly do not migrate; we map EDA report definitions to Odoo BI report specifications or recommend Odoo Studio for equivalent dashboard rebuilding. This redevelopment work is outside standard migration scope and is scoped as a separate deliverable or handled by the customer's Odoo partner.

Migration approach

Six steps for a successful Epicor Eclipse to Odoo ERP data migration

  1. Discovery and Eclipse API availability assessment

    We audit the source Eclipse environment including current version (9.x series), licensed modules, active custom UniBASIC programs, EDA configurations, number of warehouses, historical data spans (order history, customer records, inventory snapshots), and integration endpoints (EDI, shipping, MES). The critical discovery question is whether the Eclipse REST API is available and licensed. If not, we scope the API subscription and configuration as a pre-migration task. We extract Eclipse data volume estimates (customer count, part count, open order count, historical transaction count) to size the migration environment and establish throttling budget against Odoo's 1 call/second limit.

  2. Schema design for Odoo target environment

    We design the Odoo target schema based on the customer's selected Odoo edition and apps. Odoo Inventory covers warehouse and bin locations; Odoo Purchase covers POs and vendor management; Odoo Sales covers customer Quotes and Sale Orders; Odoo Accounting covers the chart of accounts, AR/AP, and invoice posting; Odoo Manufacturing covers Jobs and Material planning if applicable. We map Eclipse fields with no direct Odoo equivalent to custom fields in the relevant Odoo model. We design the account structure, fiscal positions for multi-jurisdiction tax, and warehouse locations before any data loads begin. The Odoo schema is deployed into a staging database for validation before production migration.

  3. Extraction, transformation, and staging validation

    We extract Eclipse data using the REST API (preferred) or Eterm file parsing. Dynamic arrays are parsed per module with documented delimiter rules. We produce staging flat files in CSV/JSON format with Odoo external ID fields cross-referenced to Eclipse record IDs. The customer reviews a sample of transformed records (typically 25-50 per major object) against the Eclipse source and approves the mapping specification. Data quality issues (duplicate SKUs, inconsistent units of measure, inactive customer records with open orders) are flagged and resolved before production migration begins. We do not load dirty data into Odoo and leave it for post-migration cleanup.

  4. Sandbox migration and reconciliation

    We run a full migration into an Odoo staging or sandbox environment using production data volumes. The customer's team reconciles record counts per object (Customers in, Suppliers in, Products in, Open Orders in, Quants in, Open AR/AP in, Historical Moves in), spot-checks field-level accuracy on a statistical sample, and validates the Quote-to-Invoice workflow chain end-to-end by placing a test Quote, converting it to a Sale Order, processing related moves, and confirming invoice totals. Any mapping corrections and workflow gaps are resolved in staging before production migration begins.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Contacts (Vendors first, then Customers), Products (Product Templates with Variants), Stock Quants (after Products), Open Purchase Orders (after Vendors), Open Sale Orders (after Customers and Products), Open AR/AP (after Customers and Vendors), Historical Transactions (last, as locked Account Moves), Chart of Accounts (before or in parallel with Historical Transactions). Each phase emits a reconciliation report (record count, rejected count, mapping log) before the next phase begins. We pause between phases if rejection rates exceed 1 percent and diagnose before proceeding.

  6. Cutover, validation, and handoff

    We freeze Eclipse writes during cutover, run a final delta migration of any records created or modified during the production migration window, then enable Odoo as the system of record. We deliver the custom UniBASIC program inventory with business logic documentation, the EDA report map with Odoo BI equivalents, and the EDI integration endpoint list with re-enrollment recommendations. We do not rebuild UniBASIC programs as Python Odoo modules or rebuild Eclipse automations as Odoo Server Actions inside the migration scope; that work is handled by the customer's Odoo implementation partner as a separate engagement. We support a one-week hypercare window for reconciliation issues raised by the customer's operations team.

Platform deep dives

Context on both ends of the pair

Epicor Eclipse logo

Epicor Eclipse

Source

Strengths

  • Specialized for wholesale distribution with counter/POS, cross-docking, RF scanning, and rebate tracking built in.
  • Strong multi-warehouse inventory management with bin locations, lot/serial tracking, and drop-ship capabilities.
  • Integrated financial management including AR/AP, credit management, and multi-currency for distributors.
  • Hot-key interface (F11) allows rapid data entry for high-volume counter sales environments.
  • Epicor Data Analytics (EDA) provides cloud-based dashboards and pre-built reports from Eclipse data.

Weaknesses

  • No true cloud-native version exists; organizations must move to Epicor Kinetic for cloud deployment.
  • UniVerse NoSQL database requires specialized extraction tools and transformation logic not needed for SQL-based ERPs.
  • Character-based green screen interface is dated and creates steep learning curve for new and remote users.
  • Limited analytics and reporting require custom development or third-party tools to achieve modern BI expectations.
  • Custom UniBASIC programs and EDA configurations do not migrate automatically and may require redevelopment.
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 Epicor Eclipse 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

    Epicor Eclipse: Rate limiting settings exist on the app server but are not publicly documented by Epicor.

  • Data volume sensitivity

    B

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

Estimator

Estimate your Epicor Eclipse 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 Epicor Eclipse to Odoo ERP data migrations

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Eclipse to Odoo migrations land between four and eight weeks for straightforward datasets under 50,000 parts, 10,000 customers, and a single warehouse with no custom UniBASIC programs. Migrations with large multi-warehouse inventory datasets (500,000+ quants), complex custom programs, EDI integrations requiring trading partner re-enrollment, full multi-year order and invoice history, or Odoo multi-company configurations move to ten to eighteen weeks because of Eterm extraction complexity, dynamic array transformation per module, and the end-to-end Quote-to-Invoice workflow validation that Eclipse chains require.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Epicor Eclipse.
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