ERP migration
Field-level mapping, validation, and rollback between MERCI and Odoo ERP. We move data and schema; workflows are rebuilt natively in Odoo ERP.
MERCI
Source
Odoo ERP
Destination
Compatibility
10 of 11
objects map 1:1 between MERCI and Odoo ERP.
Complexity
CModerate
Timeline
5-8 weeks
Overview
Moving from MERCI Cloud ERP to Odoo ERP is a structural migration driven by the absence of a public API on MERCI's side and Odoo's advantage as an open, modular platform with a documented REST API. Because MERCI runs single-tenant per deployment, each migration requires a discovery phase to map the customer's unique schema before any data movement. We extract from MERCI via CSV or direct database access, rehydrate foreign-key relationships, and push into Odoo through its XML-RPC or REST API endpoints with batch chunking. We do not migrate Workflows, automated actions, or Odoo Studio customizations as code. Binary attachments stored in MERCI's blob store cannot be retrieved programmatically and are flagged for manual download. Open versus closed invoice status, order-to-invoice linkage, and chart of accounts type taxonomy require explicit mapping decisions before cutover.
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 MERCI 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.
MERCI
Customer
Odoo ERP
res.partner
1:1MERCI Customer records map to Odoo res.partner with partner_type set to 'contact' for billing entities. Address fields (street, city, state, zip, country) flatten into Odoo's standard address fields. Where MERCI uses custom customer classification codes, we map to res.partner.category_id (tags) or create custom Char fields on the partner model. Email, phone, and website map directly. Foreign-key references from orders and invoices resolve through partner_id during the Customer phase before dependent objects import.
MERCI
Sales Order
Odoo ERP
sale.order
1:1MERCI Sales Orders map to Odoo sale.order. Order header fields (order number, date, customer reference, payment terms) map directly. Line items from MERCI map to sale.order.line with product_id resolved from the Items phase. Order status (draft, confirmed, shipped, invoiced) maps to Odoo state values. Order-to-invoice linkage preserves by storing the MERCI order number in a custom field on the corresponding Odoo account.move record.
MERCI
Invoice
Odoo ERP
account.move
1:1MERCI Invoices map to Odoo account.move with move_type = 'out_invoice' for AR invoices and 'in_invoice' for AP. Payment terms, invoice dates, and due dates migrate. Open versus closed status maps to state (draft, posted, cancelled). Where MERCI invoices reference a source Sales Order, we embed the MERCI order ID in a custom field on the Odoo account.move for audit trail. Tax codes require verification against Odoo's tax structure.
MERCI
Item
Odoo ERP
product.product
1:1MERCI Items (products and services) map to Odoo product.product. Item type (good, service, bundle) maps to Odoo's product.type field. Pricing tiers from MERCI map to Odoo product.pricelist.item records. Bundle and kit compositions in MERCI require expansion into Odoo's product.pack.line records or BoM structures depending on complexity. SKU from MERCI maps to product.default_code.
MERCI
Chart of Accounts
Odoo ERP
account.account
1:1MERCI Account codes and names map directly to account.account.code and name. MERCI uses a simplified five-type taxonomy; Odoo uses the standard accounting type enumeration (receivable, payable, liquidity, etc.). We verify account type mapping during schema profiling and flag any MERCI accounts that require reclassification in Odoo before migration. Account codes must be alphanumeric per Odoo's account.account model.
MERCI
Vendor
Odoo ERP
res.partner
1:1MERCI Vendor records map to Odoo res.partner with partner_type set to 'contact' and supplier_rank = 1. Vendor contacts, payment terms, and bank account details map to the partner record. The same address-flattening logic used for Customers applies. Vendor-specific fields (such as W-9 status) map to custom fields on the partner record.
MERCI
Employee
Odoo ERP
hr.employee
1:1MERCI Employee records map to Odoo hr.employee. Department, job title, and employment status migrate directly. Compensation fields map to hr.contract or hr.employee fields depending on Odoo HR module configuration. Effective-dated compensation history flags as a reconciliation item for the customer's HR admin to validate against Odoo's payslip history if payroll is activated.
MERCI
Sales Order Line Item
Odoo ERP
sale.order.line
1:1Order line items are processed as a child phase after the parent order is created in Odoo. Each line resolves product_id from the Items phase, maps quantity and unit price, and applies the correct tax IDs verified against the Odoo tax chart. Discounts from MERCI map to Odoo's discount field (percentage or amount depending on line configuration).
MERCI
Invoice Line Item
Odoo ERP
account.move.line
1:1Invoice lines migrate after the parent account.move is created in Odoo. Line items map with product_id, quantity, price_unit, and tax IDs. Analytic account distribution from MERCI maps to Odoo's analytic_distribution field if the Analytic module is active in the destination Odoo instance.
MERCI
Attachments
Odoo ERP
ir.attachment
1:1Binary attachments stored in MERCI's blob store cannot be retrieved via any documented API endpoint or standard CSV export. We flag all Attachment records as unsupported migration scope. Customers must download files manually from the MERCI UI or request a full blob export directly from MERCI's account manager. If blob export is provided as a file share, we can ingest it into Odoo's ir.attachment records during a supplementary migration phase.
MERCI
Foreign-Key Relationships
Odoo ERP
Database Relationships
lossyMERCI stores relationships in foreign-key columns rather than explicit join tables. During the profiling phase, we trace every foreign key (customer_id on orders, order_id on invoices, item_id on lines, vendor_id on purchases) and build a dependency graph that determines migration sequence. Parent records (Customers, Vendors, Items) must import before child records. Circular references or missing foreign keys are flagged in the reconciliation report.
| MERCI | Odoo ERP | Compatibility | |
|---|---|---|---|
| Customer | res.partner1:1 | Fully supported | |
| Sales Order | sale.order1:1 | Fully supported | |
| Invoice | account.move1:1 | Fully supported | |
| Item | product.product1:1 | Fully supported | |
| Chart of Accounts | account.account1:1 | Mapping required | |
| Vendor | res.partner1:1 | Fully supported | |
| Employee | hr.employee1:1 | Fully supported | |
| Sales Order Line Item | sale.order.line1:1 | Fully supported | |
| Invoice Line Item | account.move.line1:1 | Fully supported | |
| Attachments | ir.attachment1:1 | Not supported | |
| Foreign-Key Relationships | Database Relationshipslossy | 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.
MERCI gotchas
No public API documentation found
Single-tenant schema variation across deployments
Binary attachment export not supported via API
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
Schema profiling and MERCI extraction
We work with the customer's MERCI administrator to extract data via CSV exports from the MERCI UI or via a coordinated direct database read from the AWS-hosted instance. During extraction, we profile the per-instance schema: identifying custom fields, renamed objects, non-standard picklist codes, and foreign-key column names. We build a written schema map that documents the MERCI baseline against what we found in this specific deployment. Any binary blob storage is identified and flagged for manual download. This phase typically takes one to two weeks and produces the migration scope document.
Odoo configuration audit
We audit the destination Odoo instance for activated modules, configured chart of accounts structure, tax settings, pricelist configurations, and any existing custom fields or Studio modifications. We identify gaps between what MERCI exports and what Odoo expects (e.g., account types, tax codes, product types). The Odoo administrator configures missing elements (tax groups, fiscal positions, warehouse assignments) before we begin data import. If the customer does not have an Odoo instance yet, we provide a module recommendation based on the MERCI footprint.
Transformation design and sandbox migration
We design the field-level transformation map: MERCI customer_id columns to Odoo res.partner records, MERCI order headers to sale.order, MERCI invoice lines to account.move.line, and so on. Non-standard MERCI picklist codes translate to Odoo selection fields or tags. We run a full migration into an Odoo sandbox (test database) matching the target version. The customer's team reconciles record counts and spot-checks 25-50 records against the MERCI source. Schema and mapping corrections happen in sandbox, not production.
Parent-record sequencing and dependency resolution
We sequence migration by dependency: Customers and Vendors (no foreign-key dependencies), then Items (product masters), then Chart of Accounts (financial structure), then Employees (HR foundation), then Sales Orders, then Invoices. Each phase must complete and reconcile before the next begins. Any MERCI foreign-key values that reference records not yet migrated go into a holding queue and reprocess after the parent phase completes.
Production migration with reconciliation
We run production migration in the sequenced phases. CSV-sourced data is transformed through the mapping rules, chunked into Odoo's API-friendly batch sizes, and pushed via XML-RPC or REST API depending on the Odoo version. After each phase, we emit a reconciliation report comparing MERCI record counts to Odoo record counts. Discrepancies are investigated and corrected before proceeding. The customer freezes MERCI writes during the final cutover window.
Cutover, delta sync, and automation handoff
We freeze MERCI writes, run a final delta migration of any records modified during the migration window, then enable Odoo as the system of record. Binary attachments sourced from manual MERCI downloads are ingested into Odoo ir.attachment in a supplementary phase. We deliver a written inventory of MERCI automations, workflows, and any Odoo Studio customizations requiring rebuild. We do not rebuild automations as code; that work falls to the customer's Odoo administrator or a certified Odoo partner as a separate engagement.
Platform deep dives
MERCI
Source
Strengths
Weaknesses
Odoo ERP
Destination
Strengths
Weaknesses
Complexity grading
Moderate ERP migration. 4 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Moderate migration
Derived from compatibility, mapping clarity, API constraints, and data volume across MERCI and Odoo ERP.
Object compatibility
4 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
MERCI: Per-call billed (₹0.56/call) rather than throttled — cost acts as a soft throttle.
Data volume sensitivity
MERCI exposes a bulk API — large-volume migrations stream efficiently.
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 MERCI to Odoo ERP migration scoping. Not seeing yours? Book a call.
Walk through your MERCI 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 MERCI
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.