ERP migration
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
Source
Odoo ERP
Destination
Compatibility
9 of 12
objects map 1:1 between Epicor Eclipse and Odoo ERP.
Complexity
BStandard
Timeline
4-8 weeks
Overview
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.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
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
Odoo ERP
Contact (address type = Delivery or Invoice)
1:1Eclipse 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
Odoo ERP
Contact (address type = Supplier)
1:1Eclipse 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
Odoo ERP
Product Template + Product Variant
1:1Eclipse 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
Odoo ERP
Sale Order
1:1Open 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
Odoo ERP
Purchase Order
1:1PO 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
Odoo ERP
Stock Quant
1:1Eclipse 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
Odoo ERP
Account Account
lossyEclipse 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
Odoo ERP
Account Move (Invoice) + Account Payment
1:1Outstanding 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
Odoo ERP
Account Move (locked)
1:1Sales 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
Odoo ERP
Sale Order (state = Draft or Sent)
1:1Open 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
Odoo ERP
Account Tax
lossyEclipse 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
Odoo ERP
Department (HR) or Analytic Account
lossyEclipse 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.
| Epicor Eclipse | Odoo ERP | Compatibility | |
|---|---|---|---|
| Customer | Contact (address type = Delivery or Invoice)1:1 | Fully supported | |
| Supplier | Contact (address type = Supplier)1:1 | Fully supported | |
| Part / Product | Product Template + Product Variant1:1 | Fully supported | |
| Open Sales Order | Sale Order1:1 | Fully supported | |
| Open Purchase Order | Purchase Order1:1 | Fully supported | |
| Inventory / Stock | Stock Quant1:1 | Mapping required | |
| Chart of Accounts | Account Accountlossy | Mapping required | |
| Open AR / AP | Account Move (Invoice) + Account Payment1:1 | Mapping required | |
| Historical Transactions | Account Move (locked)1:1 | Mapping required | |
| Quote / Estimate | Sale Order (state = Draft or Sent)1:1 | Fully supported | |
| Tax Code / Jurisdiction | Account Taxlossy | Fully supported | |
| Department / Cost Center | Department (HR) or Analytic Accountlossy | Fully supported |
Gotchas + challenges
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 gotchas
UniVerse MultiValue extraction requires non-standard tools
Performance degradation post-Kinetic migration
End-to-end workflow must be validated as a chain
Historical data scoping determines migration cost
Integration connections require separate migration planning
Odoo ERP gotchas
No rollback for CSV imports
External ID conflicts on re-import
Many2many field encoding in CSV imports
Large export timeouts require batching
Version schema drift between Odoo releases
Pair-specific challenges
Migration approach
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.
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.
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.
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.
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.
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
Epicor Eclipse
Source
Strengths
Weaknesses
Odoo ERP
Destination
Strengths
Weaknesses
Complexity grading
Standard ERP migration. 2 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Epicor Eclipse and Odoo ERP.
Object compatibility
2 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
Epicor Eclipse: Rate limiting settings exist on the app server but are not publicly documented by Epicor.
Data volume sensitivity
Epicor Eclipse doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Epicor Eclipse to Odoo ERP migration scoping. Not seeing yours? Book a call.
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 consultationAdjacent paths
Other ways to leave Epicor Eclipse
Other ways to arrive at Odoo ERP
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.