ERP migration

Migrate from MERCI to Odoo ERP

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

MERCI logo

MERCI

Source

Odoo ERP

Destination

Odoo ERP logo

Compatibility

91%

10 of 11

objects map 1:1 between MERCI and Odoo ERP.

Complexity

CModerate

Timeline

5-8 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

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

MERCI logo

MERCI

What's pushing teams away

  • Per-API-call pricing (₹0.48, revised to ₹0.56 as of May 1, 2025) creates ongoing operational cost for high-volume E-Invoice and E-Way Bill users.
  • Specific tiered pricing for the full ERP system is not clearly published — buyers must contact Merciglobal sales for non-API costs.
  • Vendor footprint primarily in India; international support and partner network are thin.
  • Reviewer footprint on G2/Capterra/TrustRadius is limited compared to global cloud ERPs — peer benchmarking harder.
  • Documentation at docs.merciglobal.com focuses on GST APIs; full ERP API surface (financials, inventory, sales) is less prominently documented.

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

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

maps to

Odoo ERP

res.partner

1:1
Fully supported

MERCI 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

maps to

Odoo ERP

sale.order

1:1
Fully supported

MERCI 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

maps to

Odoo ERP

account.move

1:1
Fully supported

MERCI 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

maps to

Odoo ERP

product.product

1:1
Fully supported

MERCI 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

maps to

Odoo ERP

account.account

1:1
Mapping required

MERCI 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

maps to

Odoo ERP

res.partner

1:1
Fully supported

MERCI 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

maps to

Odoo ERP

hr.employee

1:1
Fully supported

MERCI 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

maps to

Odoo ERP

sale.order.line

1:1
Fully supported

Order 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

maps to

Odoo ERP

account.move.line

1:1
Fully supported

Invoice 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

maps to

Odoo ERP

ir.attachment

1:1
Not supported

Binary 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

maps to

Odoo ERP

Database Relationships

lossy
Fully supported

MERCI 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.

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.

MERCI logo

MERCI gotchas

High

No public API documentation found

Medium

Single-tenant schema variation across deployments

Medium

Binary attachment export not supported via API

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

  • MERCI has no public API — migration uses CSV or database access

    MERCI Cloud ERP does not publish API documentation, authentication schemes, or bulk export endpoints. We work from CSV exports generated by the MERCI UI or from direct database reads coordinated with MERCI's hosting team on AWS. Both paths require per-instance schema profiling because single-tenant deployments may have custom fields, renamed columns, or modified picklists not present in a notional baseline schema. The profiling phase extends the migration timeline by one to two weeks and is quoted separately.

  • Per-instance schema variation requires manual mapping

    Because MERCI runs single-tenant per customer, each deployment has a unique schema that diverges from any baseline. Custom picklist codes, renamed objects, and non-standard field names discovered during profiling require manual mapping decisions by the customer's MERCI administrator before data transformation begins. Odoo's modular schema adds a second layer of complexity: the customer may not have activated all Odoo modules (e.g., HR, Inventory, Manufacturing), so destination object availability must be confirmed during scoping.

  • Odoo custom modules may break on version upgrade

    Custom Odoo modules written in Python or XML may be incompatible with newer Odoo versions due to API changes between releases (e.g., Odoo 15 to 16 or 16 to 17 introduced breaking changes in several ORM methods). We test custom modules in a sandbox Odoo instance matching the target version before production migration. If a custom module is not compatible and the customer requires it, a module porting estimate is provided as a separate engagement.

  • Binary attachments cannot be migrated programmatically

    Attachments (PDFs, images, order documents) stored in MERCI have no documented export endpoint. We cannot retrieve them via API or standard CSV. Customers must independently download files from the MERCI UI or request a bulk blob export from their account manager. If provided as a file directory, we can ingest attachments into Odoo ir.attachment records, but the sourcing step falls outside automated migration scope.

  • Skipping sandbox testing causes production reconciliation failures

    Odoo migration research consistently identifies skipping sandbox testing as a primary cause of post-launch problems. Odoo configurations (tax charts, account types, pricelists, workflow triggers) interact in ways that only surface under production data volume. We run a full sandbox migration before production and require customer sign-off on record counts and spot-check validation before cutover.

Migration approach

Six steps for a successful MERCI to Odoo ERP data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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

Context on both ends of the pair

MERCI logo

MERCI

Source

Strengths

  • All-in-one platform consolidates sales, CRM, financials, and operations into a single database
  • Cloud-hosted on AWS with automated backups and automatic failover systems
  • SLA commitment of 99.9% uptime as stated on their public materials
  • Single-tenant deployment model keeps customer data isolated per installation
  • Affordable positioning targets SMBs seeking to replace fragmented point solutions

Weaknesses

  • No publicly documented API — migration relies on CSV exports or direct database access
  • Single-tenant model means each deployment has a unique schema, requiring per-instance mapping
  • Limited industry-specific functionality compared to vertical ERPs
  • Small vendor footprint makes support responsiveness and long-term viability less certain
  • No published pricing tiers or transparent cost structure in public sources
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?

Moderate ERP migration. 4 of 8 objects need a mapping; the rest are 1:1.

C

Overall complexity

Moderate migration

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

  • Object compatibility

    C

    4 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

    C

    MERCI: Per-call billed (₹0.56/call) rather than throttled — cost acts as a soft throttle.

  • Data volume sensitivity

    A

    MERCI exposes a bulk API — large-volume migrations stream efficiently.

Estimator

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

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

Can't find your answer?

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 consultation

Most MERCI to Odoo migrations land between five and eight weeks for accounts with clean CSV exports, fewer than 15,000 customers, and 3,000 orders. Migrations with custom MERCI fields, schema variations, or complex item bundles extend to ten to sixteen weeks because of the additional profiling and reconciliation work required before data movement. Large attachment volumes or multi-company Odoo structures add separate phases.

Adjacent paths

Related migrations to explore

Ready when you are

Move from MERCI.
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