ERP migration
Field-level mapping, validation, and rollback between eFacto ERP and Dolibarr ERP. We move data and schema; workflows are rebuilt natively in Dolibarr ERP.
eFacto ERP
Source
Dolibarr ERP
Destination
Compatibility
10 of 12
objects map 1:1 between eFacto ERP and Dolibarr ERP.
Complexity
CModerate
Timeline
3-5 weeks
Overview
Moving from eFacto ERP to Dolibarr is a platform switch from a vendor-locked Indian retail ERP to a community-maintained open-source ERP. The primary extraction challenge is that eFacto publishes no public REST API, so data must come from a read-only SQL export coordinated with the eFacto administrator. The primary schema challenge is that Dolibarr uses a double-entry accounting model with a Chart of Accounts attached to Bank and Cash accounts, while eFacto's retail-oriented ledgers often operate on cash-basis or simplified accrual that does not enforce debit-credit balance at record creation. We design the Dolibarr Chart of Accounts structure before migration, then sequence data loads so that the COA, Third Parties, Products, and Stock precede any invoice or order records. POS receipts from eFacto migrate as individual Bank or Cash transaction entries in Dolibarr rather than as invoices, because Dolibarr's POS module does not auto-link receipts to G/L entries. Custom SSRS reports built in eFacto do not migrate; we export the RDL definitions and document the report parameters for the customer's admin to rebuild in Dolibarr or a reporting tool of choice.
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 eFacto ERP object lands in Dolibarr ERP, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
eFacto ERP
Chart of Accounts
Dolibarr ERP
Bank Account / Cash Account
lossyeFacto stores account codes in a flat SQL-based chart (G/L codes, account types, and posting rules). Dolibarr requires a double-entry accounting structure where each account is a Bank or Cash account linked to a journal. We extract eFacto's account master, map each G/L code to a corresponding Dolibarr account type (accounting account type = Banque, Caisse, or Credit), and configure the accounting journal before any transaction import. Inactive accounts in eFacto are mapped to Dolibarr accounts with statut = 0 (inactive) for the customer's admin to review and reactivate as needed.
eFacto ERP
Customer
Dolibarr ERP
Third Party (client type)
1:1eFacto Customer records include billing and shipping addresses, payment terms, GSTIN registration, and credit limits. Dolibarr uses a unified Third Party object where the categorie (customer or supplier) is set per record. We deduplicate by phone and email, map eFacto's GSTIN to a custom Dolibarr field (Options for Third Party) for GSTIN compliance, and set the payment term from eFacto's credit_days into Dolibarr's cond_reglement. Customer addresses migrate to Dolibarr's address block (street, zip, town, country).
eFacto ERP
Vendor
Dolibarr ERP
Third Party (supplier type)
1:1eFacto Vendor records mirror Customer structure with additional fields for PAN/TIN registration and banking details for payment processing. We map vendors to Dolibarr Third Parties with categorie = Fournisseur, preserving PAN/TIN in a custom field, bank account details in Dolibarr's Ripro and IBAN fields, and purchase payment terms from eFacto's vendor terms. Outstanding purchase order references are carried forward as open PO links against the Third Party record.
eFacto ERP
Item (Product)
Dolibarr ERP
Product / Service
1:1eFacto Items carry SKU, description, unit of measure, cost price, selling price, and per-warehouse stock levels. Dolibarr Product records support the same fields plus batch/lot tracking and multi-price tiers. We map eFacto's unit of measure to Dolibarr's unit_of_measure field, eFacto's cost price to Dolibarr's cost_price, and eFacto's selling price to the primary price on the default price level. Variant data (size, color) from eFacto's BOM and variant schema splits into Dolibarr's Product Combination feature.
eFacto ERP
Item (BOM)
Dolibarr ERP
Bill of Materials (Dolibarr Manufacturing module)
1:1eFacto BOM (Bill of Materials) structures for manufactured items map to Dolibarr's Manufacturing module BOM entries. Each BOM header and its component lines (item, quantity, unit, position) transfer as Dolibarr llx_product_bom records. The Manufacturing module must be enabled in Dolibarr before this import runs. Customers without the Manufacturing module can archive BOM definitions as Product notes and enable the module later.
eFacto ERP
Open AR (Customer Invoices)
Dolibarr ERP
Invoice (client)
1:1We flag open Accounts Receivable invoices and credit notes as of the migration date. Partial payments are carried forward as Dolibarr payment records linked to the invoice, keeping the outstanding balance accurate rather than resetting to zero. Each invoice migrates with full line-item detail, tax amounts, and the eFacto invoice number preserved as a reference. Closed invoices are archived as paid invoices in Dolibarr and not marked open. The migration-as-of date is configurable and agreed with the customer before import.
eFacto ERP
Open AP (Supplier Invoices)
Dolibarr ERP
Invoice (supplier)
1:1Open Accounts Payable supplier invoices migrate to Dolibarr supplier invoices in the same way as AR, with partial payments preserved as payment records against the invoice. Credit notes from eFacto vendors migrate as negative-amount supplier invoices or credit notes in Dolibarr depending on how the vendor recorded them. We flag invoices past due date as overdue in Dolibarr by setting their due date and running a reconciliation pass after import.
eFacto ERP
Sales Order
Dolibarr ERP
Order (customer)
1:1Open Sales Orders from eFacto migrate with full line-item detail and are linked to the corresponding Third Party (customer) record via the customer_id lookup. Cancelled or fully fulfilled orders are archived and not imported. Dolibarr Order status (Draft, Validated, Shipped, Closed) is mapped from eFacto's order_status field. If eFacto tracks order reference numbers, we preserve them in Dolibarr's ref_customer field.
eFacto ERP
Purchase Order
Dolibarr ERP
Order (supplier)
1:1Open Purchase Orders migrate to Dolibarr supplier orders with vendor details, line items, and quantities, linked to the vendor Third Party record. eFacto's PO reference number maps to Dolibarr's ref_supplier field for cross-system audit trails. Fulfilled or cancelled purchase orders are excluded from import and archived in the eFacto export for reference only.
eFacto ERP
POS Transaction
Dolibarr ERP
Bank or Cash transaction entries
1:manyeFacto POS receipts are stored in a separate transaction log from the accounting ledger and do not auto-link to G/L entries. We aggregate daily POS totals and create individual Bank or Cash transaction entries in Dolibarr per shift or per cashier, depending on the customer's reconciliation requirements. Each transaction entry references the original eFacto receipt number and tender type. If Dolibarr's POS module is enabled, we evaluate whether to use POS invoices instead of direct bank entries on a case-by-case basis during scoping. We flag the POS-to-bank reconciliation decision for the customer's accountant to confirm before migration runs.
eFacto ERP
Inventory Stock
Dolibarr ERP
Stock (warehouse)
1:1Current stock quantities are extracted per warehouse from eFacto's inventory ledger. We map each eFacto warehouse to a corresponding Dolibarr entrepot, set the stock-as-of date, and import current quantities as Dolibarr stock entries (reel quantity per product per entrepot). Historical stock valuation entries are not migrated; Dolibarr recreates the stock value based on the current quantity and the migrated cost_price from the Product record. If batch or lot tracking is active in eFacto, batch numbers and expiry dates migrate as Dolibarr batch entries.
eFacto ERP
Employee
Dolibarr ERP
User (HR module)
1:1eFacto Employee master records include designation, department, and salary details. We migrate employee records as Dolibarr Users with the HR module enabled, mapping eFacto's designation to the job title, department to a Dolibarr group, and salary structure notes to the user's personal description. Payroll transaction history is not migrated; it stays in eFacto's HR/payroll records for audit and is recreated in Dolibarr's HR module or a dedicated payroll tool. Employee login credentials must be provisioned manually by the Dolibarr admin before cutover.
| eFacto ERP | Dolibarr ERP | Compatibility | |
|---|---|---|---|
| Chart of Accounts | Bank Account / Cash Accountlossy | Mapping required | |
| Customer | Third Party (client type)1:1 | Fully supported | |
| Vendor | Third Party (supplier type)1:1 | Fully supported | |
| Item (Product) | Product / Service1:1 | Fully supported | |
| Item (BOM) | Bill of Materials (Dolibarr Manufacturing module)1:1 | Fully supported | |
| Open AR (Customer Invoices) | Invoice (client)1:1 | Fully supported | |
| Open AP (Supplier Invoices) | Invoice (supplier)1:1 | Fully supported | |
| Sales Order | Order (customer)1:1 | Fully supported | |
| Purchase Order | Order (supplier)1:1 | Fully supported | |
| POS Transaction | Bank or Cash transaction entries1:many | Fully supported | |
| Inventory Stock | Stock (warehouse)1:1 | Mapping required | |
| Employee | User (HR module)1: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.
eFacto ERP gotchas
No documented public REST API for bulk data export
POS transaction IDs do not auto-link to G/L entries
Custom SSRS reports depend on hard-coded SQL stored procedures
Dolibarr ERP gotchas
Foreign key constraint errors on cross-distribution database restore
SQL injection vulnerabilities in version 9.0.1
Custom fields stored as JSON in extraoptions require field-by-field deserialization
Decimal precision and rounding configuration affects price fields
No native iOS/Android app forces reliance on browser
Pair-specific challenges
Migration approach
Discovery and extraction access
We audit the eFacto database schema and available SQL exports, working with the customer's eFacto administrator to identify tables for Chart of Accounts, Third Parties, Products, BOMs, invoices, orders, POS transaction log, stock ledger, and employees. We assess which modules the customer uses (retail POS, multi-store, manufacturing, HR) and which are inactive. We confirm SQL read-only access permissions and agree on the extraction format (flat CSV or SQL bulk export). We review Dolibarr's installed modules and determine which need to be enabled (Accounting, Products, Stock, Orders, Invoices, HR, POS) before migration data arrives.
Dolibarr accounting and schema design
We design Dolibarr's Chart of Accounts structure, mapping each eFacto G/L code to a Dolibarr accounting account (accountingaccount type = Banque, Caisse, or other) and configuring the accounting journal (janvier, achats, ventes, banquecaisse). For Indian GST compliance, we configure GST receivable and payable accounts. We configure Dolibarr warehouses (entrepot) to match eFacto's location codes, set up Third Party categories (customer and supplier), configure product price levels, and enable the required Dolibarr modules. All schema design is validated in a Dolibarr test installation before production migration begins.
SQL extraction and data normalisation
We run the agreed SQL export queries against the eFacto database (or process vendor-provided report files) to extract all source records. We normalise flat-file exports into the structure required by Dolibarr's REST API import or CSV upload format. This includes splitting combined address fields, normalising date formats to YYYY-MM-DD, mapping eFacto currency codes to Dolibarr multicurrency setup, and deduplicating Third Parties by phone and email. We generate a reconciliation report showing source record counts per object before any data is pushed to Dolibarr.
Dolibarr import and POS reconciliation
We import data into the production Dolibarr instance in dependency order: accounting accounts first, then Third Parties, then Products, BOMs, stock, orders, invoices, and employees. POS transactions are imported as bank or cash transaction entries with the original eFacto receipt reference preserved. We resolve Third Party IDs for order and invoice links, Product IDs for line items, and User IDs for employee records. After each object import, we emit a row-count reconciliation report against the source extraction.
Validation and reconciliation
We reconcile opened balances in Dolibarr's accounting module against the source eFacto trial balance as of the migration date. Open AR and AP totals are verified per customer and vendor. Stock quantities are spot-checked against eFacto's current inventory report at a sample of 10-15 SKU-warehouse combinations. POS daily totals from eFacto are verified against the total of imported bank entries. We fix any discrepancies before cutover. We deliver a written report summarising record counts, any records excluded (cancelled orders, inactive items), and any open items requiring post-migration resolution.
Cutover and reporting inventory handoff
We freeze writes in eFacto at the agreed cutover date and run a final delta import for any records modified between the last extraction and cutover. We enable Dolibarr as the system of record and validate live that new records are being created in the correct chart of accounts. We deliver the SSRS custom report inventory with RDL XML and parameter definitions for the customer's admin to rebuild in Dolibarr. We do not rebuild workflows, automations, or custom PHP modules; those are documented in a separate handoff sheet with Dolibarr equivalent configuration guidance. We provide a one-week post-cutover support window for reconciliation issues raised during the first live week.
Platform deep dives
eFacto ERP
Source
Strengths
Weaknesses
Dolibarr 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 eFacto ERP and Dolibarr 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
eFacto ERP: Not publicly documented.
Data volume sensitivity
eFacto 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 eFacto ERP to Dolibarr ERP migration scoping. Not seeing yours? Book a call.
Walk through your eFacto ERP to Dolibarr 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 eFacto ERP
Other ways to arrive at Dolibarr 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.