ERP migration
Field-level mapping, validation, and rollback between Marg ERP and Odoo ERP. We move data and schema; workflows are rebuilt natively in Odoo ERP.
Marg ERP
Source
Odoo ERP
Destination
Compatibility
9 of 10
objects map 1:1 between Marg ERP and Odoo ERP.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Marg ERP holds its data in flat-file exports with no documented REST API, which means migrating to Odoo ERP requires building a custom parser for each Marg version's proprietary export format before any field mapping begins. The migration maps Marg Items to Odoo Products (preserving HSN codes, MRP, salt names, and multi-UOM as custom fields), Marg Parties to Odoo Contacts and Vendors based on account-type classification, and Marg Vouchers to Odoo Account Moves with line-level GST rates preserved as separate invoice lines. Godown locations map to Odoo Warehouses with inter-location stock balances reconciled; batch numbers and expiry dates migrate as structured lot-number attributes. Marg's fixed-asset depreciation under Indian Schedule XIV conventions requires recomputation at Odoo rather than direct transfer. Custom fields, automations, and Marg's mobile app transaction data do not migrate; we document these gaps for the customer's admin team to address post-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 Marg ERP 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.
Marg ERP
Item
Odoo ERP
Product
1:1Marg Items include HSN/SAC codes, MRP, batch-level tracking, salt names for pharma products, and multi-unit-of-measure. We map each Marg item to an Odoo Product template with type (product, consumable, service) set according to Marg's item category. MRP becomes a custom field on the product form; HSN becomes the l10n_in_hsn_code field if the Indian localization module is active. Salt names and batch tracking migrate as product attribute values if Odoo's lots-and-serials module is installed. Multi-UOM migrates via Odoo's uom_uom table with a custom field mapping Marg's internal unit codes to Odoo UoM records.
Marg ERP
Party
Odoo ERP
Contact and Vendor
1:manyMarg Parties are ledger accounts with GSTIN, PAN, credit limits, and payment terms. We classify each Marg Party by its account type: purchase-ledger parties become Odoo Vendors; sales-ledger parties become Odoo Contacts; parties appearing on both ledgers create both records with shared GSTIN and PAN stored on the commercial partner. Party-level opening balances and outstanding amounts migrate as separate reconciliation entries rather than being rolled into the first voucher import.
Marg ERP
Voucher
Odoo ERP
Account Move
1:1Marg Sales Invoices, Purchase Bills, Credit Notes, and Debit Notes map to Odoo Account Moves with invoice type set accordingly. The most complex part of this migration is extracting the GST rate at the voucher line level and mapping it to Odoo's tax group structure. We build a rate-mapping table per Marg version, computing CGST+SGST splits or IGST based on the supplier's and customer's state codes. Vouchers with e-waybill or e-invoice references are flagged in a custom field for the customer's team to regenerate under Odoo's Indian e-invoicing module post-migration.
Marg ERP
Godown
Odoo ERP
Warehouse
1:1Marg's multi-location inventory uses Godown as the primary location entity. We map each Marg Godown to an Odoo Warehouse (stock.warehouse) with the corresponding location_id pointing to the physical location in Odoo's stock.location tree. Inter-godown stock balances migrate as opening stock quant records at the lot or product level. Marg's godown-level transfer vouchers do not map directly to Odoo internal pickings; we document the transfer history as a reconciliation report for the customer to action as needed.
Marg ERP
Batch and Expiry Tracking
Odoo ERP
Lot/Serial Number
1:1Marg tracks batch number and expiry date at both the voucher and stock-quantity level for pharmaceutical compliance. We extract these as structured lot_number attributes on Odoo stock.production.lot records, linked via stock.quant to the relevant product and warehouse. The lot's use_date field carries the expiry date. This mapping requires Odoo's stock_picking_batch or lot_expiry module to be active; we flag whether it is installed during scoping.
Marg ERP
Fixed Asset
Odoo ERP
Asset
1:1Marg maintains a fixed-asset register with depreciation under Indian Schedule XIV conventions (Companies Act). We extract the asset's original cost, accumulated depreciation, net book value, useful life, and depreciation method (straight-line or written-down value). Because Odoo's depreciation engine uses Schedule III (Companies Act 2013) conventions by default, we recompute the depreciation schedule at Odoo and flag any difference in the first year's charge. The original Marg Schedule XIV values are stored as custom fields on the Odoo asset record for audit.
Marg ERP
Chart of Accounts
Odoo ERP
Account
1:1Marg's ledger structure is flat, while Odoo uses a hierarchical account structure with account groups. We preserve every Marg account code, name, and opening balance, then reconstruct the hierarchy in Odoo by mapping each account to the appropriate parent_id in the account.account table. Statutory accounts for GST input/output, TCS, and TDS are identified by their GSTIN-linked naming convention and mapped to the corresponding Odoo tax accounts. Opening balances for all accounts are loaded as Odoo move lines on an opening-date journal entry.
Marg ERP
Bank and Cash Account
Odoo ERP
Bank Journal and Cash Journal
1:1Marg integrates with ICICI Bank for auto-ledger entries and reconciliation. We extract bank account balances, cheque registers, and bank reconciliation statements and map them to Odoo bank and cash journals (account.journal). Marg's bank-to-ledger reconciliation documents migrate as Odoo move lines for the customer to reconcile manually or via Odoo's bank reconciliation engine post-migration. ICICI-specific auto-ledger integration requires reconfiguration in Odoo and is documented as a post-migration step.
Marg ERP
Custom Fields
Odoo ERP
Custom Fields
1:1Marg does not expose a formal custom-field API. Any user-defined fields appear as extra columns in the export output but have no guaranteed schema, label, or data-type documentation. We handle Marg custom fields as ad-hoc column mappings during migration, but cannot guarantee they will be identified correctly or mapped to an equivalent Odoo custom field. We flag every unmapped extra column in the export as a reconciliation gap for the customer's admin to review post-migration.
Marg ERP
Mobile App Data
Odoo ERP
Not Migrated
1:1Marg's eRetail, salesman app, and MargPay transaction data are stored in subsidiary systems that do not share a common data store with the desktop or cloud ERP. Transactions created exclusively in the mobile apps are not accessible via Marg's file export and cannot be included in the migration. We document the existence of these systems and recommend the customer review their app-specific transaction history separately before cutover.
| Marg ERP | Odoo ERP | Compatibility | |
|---|---|---|---|
| Item | Product1:1 | Fully supported | |
| Party | Contact and Vendor1:many | Fully supported | |
| Voucher | Account Move1:1 | Fully supported | |
| Godown | Warehouse1:1 | Fully supported | |
| Batch and Expiry Tracking | Lot/Serial Number1:1 | Fully supported | |
| Fixed Asset | Asset1:1 | Fully supported | |
| Chart of Accounts | Account1:1 | Mapping required | |
| Bank and Cash Account | Bank Journal and Cash Journal1:1 | Fully supported | |
| Custom Fields | Custom Fields1:1 | Not supported | |
| Mobile App Data | Not Migrated1:1 | 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.
Marg ERP gotchas
Marg-to-Marg native export is the only documented bulk data path
No public API means migration is always file-based
Cloud plan user-count and company-count gates are migration prerequisites
GST rate and composition tier are stored per transaction line, not per party
Marg's fixed-asset depreciation schedules use Indian Schedule XIV conventions
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
File extraction and format characterisation
We work with the customer's Marg administrator to run the A/c & Inventory Export utility and export all entities: Items, Parties, Vouchers, Godowns, Fixed Assets, and Chart of Accounts. The output files are XLS or CSV with column headers that vary by Marg version and configuration. We parse the customer's actual export files to characterise column ordering, data-type anomalies, and any extra columns from user-defined fields. This characterisation produces a version-specific import spec used for all subsequent phases. Any Marg companies inactive at the time of scoping are excluded from the export to reduce data volume and cost.
Schema design in Odoo
We design the target Odoo schema based on the characterised Marg export. This includes creating Odoo product templates with l10n_in_hsn_code, custom MRP fields, and product attributes for pharma salt names; provisioning Odoo Contacts and Vendors from the Party export with GSTIN and PAN fields; designing the account.account hierarchy from Marg's chart of accounts; configuring stock.warehouse records from Marg Godowns; and installing the lot-expiry module if batch-and-expiry metadata is present. Tax groups and GST accounts are configured to match India's current GST rate structure (5%, 12%, 18%, 28%). All schema work is validated in a staging Odoo database before production.
Sandbox migration and reconciliation
We run a full migration into a test Odoo instance using production-exported data at representative volume. The customer's finance lead and operations lead review record counts (items, parties, vouchers, stock quants, fixed assets), spot-check 25-50 random records against the Marg source for field-level accuracy, and validate opening balances on the chart of accounts. Any mapping corrections, missing fields, or rate-table adjustments are documented and applied before production migration begins. The sandbox sign-off is a required gate before the production migration starts.
Production migration in dependency order
We run production migration in dependency order: chart of accounts (opening balances as journal entries), then products, then contacts and vendors, then warehouse and stock quant records (with batch/lot data if applicable), then fixed assets, then account moves from Marg vouchers with line-level GST rates applied. Each phase emits a row-count reconciliation report before the next phase begins. A 24-hour freeze window is coordinated with the customer for the final delta export to capture any records created between the bulk export and the cutover date.
Cutover, validation, and handoff
We freeze Marg write access during cutover, import the delta export, and reconcile the final record counts against Marg's trial balance and stock summary. We deliver a written inventory of Marg automations, e-waybill templates, and user-defined fields with recommendations for rebuilding in Odoo. We do not rebuild Marg workflows or automations as Odoo server actions inside the migration scope; that is a separate engagement. We support a one-week hypercare window for reconciliation issues raised by the customer's team after go-live.
Platform deep dives
Marg ERP
Source
Strengths
Weaknesses
Odoo ERP
Destination
Strengths
Weaknesses
Complexity grading
Standard ERP migration. 1 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 Marg ERP and Odoo ERP.
Object compatibility
1 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
Marg ERP: Not publicly documented.
Data volume sensitivity
Marg ERP 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 Marg ERP to Odoo ERP migration scoping. Not seeing yours? Book a call.
Walk through your Marg ERP 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 Marg ERP
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.