ERP migration
Field-level mapping, validation, and rollback between ERPnext Enterprise - Bespoke and Dolibarr ERP. We move data and schema; workflows are rebuilt natively in Dolibarr ERP.
ERPnext Enterprise - Bespoke
Source
Dolibarr ERP
Destination
Compatibility
17 of 18
objects map 1:1 between ERPnext Enterprise - Bespoke and Dolibarr ERP.
Complexity
BStandard
Timeline
3-5 weeks
Overview
ERPnext and Dolibarr are both open-source ERP platforms under GPL-3.0, but they serve different organizational scales and operational complexity levels. ERPnext is built on the Frappe Python Framework with a MariaDB backend and a DocType-centric data model that supports mid-market manufacturing, multi-company, and multi-currency operations. Dolibarr uses a PHP and MySQL stack with a modular architecture that ships as a lightweight all-in-one ERP and CRM for smaller teams without a dedicated IT department. This migration requires translating ERPnext DocTypes into Dolibarr modules, mapping GL voucher double-entry accounting into Dolibarr's banking and expense module structure, and evaluating which BOM and manufacturing records have a viable Dolibarr equivalent. File attachments do not export through the standard data tools and require a separate file-system export workflow. We do not migrate ERPNext workflows, DocType scripts, manufacturing recipes, or automations as code; we deliver a written inventory of these for the customer's admin to rebuild in Dolibarr.
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 ERPnext Enterprise - Bespoke 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.
ERPnext Enterprise - Bespoke
Customer
Dolibarr ERP
Third Party (customer mode)
1:1ERPNext Customer DocType maps to Dolibarr Third Party with the customer flag enabled. We extract name, territory (preserved in a custom field for downstream reporting), contact details, and tax ID. The Dynamic Link table in ERPNext stores contact-address relationships as separate records; we resolve these relationships during export to produce flat contact records with embedded address data compatible with Dolibarr's structure. Territory linkage is preserved so reporting hierarchies carry forward.
ERPnext Enterprise - Bespoke
Supplier
Dolibarr ERP
Third Party (supplier mode)
1:1ERPNext Supplier DocType mirrors Customer in structure. We migrate supplier type, payment terms, and address records. ERPNext supplier-specific tax categories are carried forward as Dolibarr Custom Fields on the Third Party. Email addresses are set as the dedupe key so duplicate suppliers do not re-import.
ERPnext Enterprise - Bespoke
Item
Dolibarr ERP
Product / Article
1:1ERPNext Items carry a broad attribute set — item code, description, item group, stock UoM, valuation method, and barcodes. We preserve the full item master including barcodes and custom fields at the item level. Item groups map to Dolibarr categories, and the ERPnext valuation method (FIFO, Moving Average) is stored as a custom field since Dolibarr's default stock valuation uses Moving Average.
ERPnext Enterprise - Bespoke
Bill of Materials (BOM)
Dolibarr ERP
BOM (if production module enabled)
1:1ERPNext BOMs are nested structures referencing Items with quantity ratios and operation routing. We map BOM hierarchies directly but validate that all child item codes exist in Dolibarr before committing to avoid orphaned assembly records. If Dolibarr's production module is not enabled at the destination, BOMs are exported as a reference file rather than imported. BOMs referencing ERPNext-specific operation routing (workstation types, operation timings) cannot be fully represented in Dolibarr without manual reconstruction of the routing steps.
ERPnext Enterprise - Bespoke
Sales Order
Dolibarr ERP
Commercial Proposal or Order
1:1ERPNext Sales Orders contain document headers, line items, taxes, discounts, and shipping details. We map the full header and child rows into Dolibarr Commercial Proposal or Sales Order depending on the order status at migration time. For open orders, we preserve the qty-delta logic against linked Delivery Notes as Dolibarr does not natively track partial delivery ratios. Closed orders migrate as invoice records.
ERPnext Enterprise - Bespoke
Purchase Order
Dolibarr ERP
Supplier Quote or Purchase Order
1:1ERPNext Purchase Orders mirror Sales Orders in structure. We migrate PO headers and line items, flagging any advance allocation records that require separate handling as Payment Entries in Dolibarr. PO status mapping: Draft and Submitted map to Dolibarr Draft and Validated; Ordered maps to Ordered; Received maps to Received; Cancelled is not migrated.
ERPnext Enterprise - Bespoke
Delivery Note
Dolibarr ERP
Shipment
1:1ERPNext Delivery Notes map to Dolibarr Shipments. We preserve the linked Sales Order reference as a custom field on the Dolibarr record since Dolibarr's shipment-to-order linkage is module-dependent. Items, quantities, and batch numbers (if tracked) migrate with the shipment.
ERPnext Enterprise - Bespoke
Purchase Receipt
Dolibarr ERP
Reception
1:1ERPNext Purchase Receipts map to Dolibarr Reception records. We preserve the linked Purchase Order reference, incoming items, received quantities, and any quality inspection results. Rejected quantities are stored as a custom field on the reception line since Dolibarr's standard reception does not natively record rejection sub-quantities.
ERPnext Enterprise - Bespoke
Sales Invoice
Dolibarr ERP
Customer Invoice
1:1ERPNext Sales Invoices map to Dolibarr Customer Invoice. Header fields (customer, currency, payment terms, due date) migrate directly. Line items map with qty, rate, tax, and discount. The ERPNext outstanding amount and write-off amount migrate to Dolibarr fields. Paid invoices migrate with payment records attached.
ERPnext Enterprise - Bespoke
Purchase Invoice
Dolibarr ERP
Supplier Invoice
1:1ERPNext Purchase Invoices map to Dolibarr Supplier Invoice. The mapping mirrors the Sales Invoice path in reverse. ERPNext's cost centre and project references on invoice lines are preserved as custom fields on Dolibarr invoice lines.
ERPnext Enterprise - Bespoke
GL Voucher / Journal Entry
Dolibarr ERP
Bank Account Entry or General Ledger Entry
1:1ERPNext uses a voucher-based double-entry system with voucher rows carrying account code, debit, and credit. Dolibarr handles general ledger through its banking and expense modules with direct database entries rather than a formal journal voucher interface. This is the most complex mapping in an ERPNext-to-Dolibarr migration. We map journal entry rows to Dolibarr account codes but validate that the destination chart of accounts has matching account numbers, which frequently requires pre-migration account restructuring. If ERPNext multi-company setup is in use, Dolibarr's inter-company module must be explicitly enabled and configured before GL data can be meaningful in the destination.
ERPnext Enterprise - Bespoke
Stock Ledger Entry (SLE)
Dolibarr ERP
Stock Current Quantities
1:1ERPNext SLEs track individual stock movements with timestamp, warehouse, item, qty, and valuation rate. Dolibarr does not maintain a full movement ledger; it stores current stock position per warehouse-item. We migrate the latest stock snapshot as Dolibarr opening quantities and export historical SLEs as a reference file. The reference file is provided as a CSV so the customer can run analytics on historical stock trends outside Dolibarr.
ERPnext Enterprise - Bespoke
Project
Dolibarr ERP
Project
1:1ERPNext Projects carry a nested task hierarchy with assignees, start/end dates, billable hours, and billing rates. We map the full project-task tree including custom task fields and hourly rate settings. ERPNext's project-specific billing types (based on hours, task, or fixed) are preserved as Dolibarr project task categories.
ERPnext Enterprise - Bespoke
User
Dolibarr ERP
User
1:1ERPNext User records include email, name, enabled status, and role profiles. We export enabled users and match by email to Dolibarr User records. ERPNext role permission rules and DocType-level access controls do not have a direct Dolibarr equivalent and must be reconstructed manually based on the exported configuration. The FlitStack AI inventory document captures the full role matrix for the admin to rebuild.
ERPnext Enterprise - Bespoke
Custom Field
Dolibarr ERP
Custom Field
lossyERPNext Custom Fields attach to any DocType via the Custom Field DocType. We export all custom field definitions separately and create matching fields in Dolibarr before importing data so that target fields exist at import time. ERPNext custom field types (Check, Table MultiSelect, Dynamic Link) require mapping to Dolibarr equivalent field types, which we define during the schema design phase. Custom fields referencing deprecated ERPNext v15 modules (Social Media, TaxJar, Exotel, Lending, e-commerce) are flagged and excluded from migration.
ERPnext Enterprise - Bespoke
Asset
Dolibarr ERP
Fixed Asset
1:1ERPNext Fixed Asset records include purchase details, depreciation schedule, and current value. We map asset masters and active depreciation schedules. Assets already fully depreciated to zero are migrated as historical records unless the customer specifically requests them carried forward as active.
ERPnext Enterprise - Bespoke
Employee
Dolibarr ERP
User (HR module if enabled)
1:1ERPNext Employee DocTypes expose employment details, department, and reporting structure. We migrate active employees and current compensation records including department and reporting manager linkage. ERPNext payroll history and historical salary records are out of scope; those are better handled through a dedicated HR system migration or a separate payroll data export.
ERPnext Enterprise - Bespoke
File Attachment
Dolibarr ERP
Document
1:1ERPNext file attachments — scanned documents on Purchase Receipts, images on Item masters, PDFs on Sales Invoices — are stored in the file store (file system or S3 bucket) and are not included in the standard CSV Data Export or REST API response. We export attachments separately via direct file system access or bench export-background-files, preserve the folder hierarchy, and re-associate files with the correct records in Dolibarr using filename-to-record mapping during post-migration.
| ERPnext Enterprise - Bespoke | Dolibarr ERP | Compatibility | |
|---|---|---|---|
| Customer | Third Party (customer mode)1:1 | Fully supported | |
| Supplier | Third Party (supplier mode)1:1 | Fully supported | |
| Item | Product / Article1:1 | Fully supported | |
| Bill of Materials (BOM) | BOM (if production module enabled)1:1 | Mapping required | |
| Sales Order | Commercial Proposal or Order1:1 | Fully supported | |
| Purchase Order | Supplier Quote or Purchase Order1:1 | Fully supported | |
| Delivery Note | Shipment1:1 | Fully supported | |
| Purchase Receipt | Reception1:1 | Fully supported | |
| Sales Invoice | Customer Invoice1:1 | Fully supported | |
| Purchase Invoice | Supplier Invoice1:1 | Fully supported | |
| GL Voucher / Journal Entry | Bank Account Entry or General Ledger Entry1:1 | Fully supported | |
| Stock Ledger Entry (SLE) | Stock Current Quantities1:1 | Fully supported | |
| Project | Project1:1 | Fully supported | |
| User | User1:1 | Fully supported | |
| Custom Field | Custom Fieldlossy | Fully supported | |
| Asset | Fixed Asset1:1 | Fully supported | |
| Employee | User (HR module if enabled)1:1 | Fully supported | |
| File Attachment | Document1: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.
ERPnext Enterprise - Bespoke gotchas
Open-source licence does not cover implementation or hosting costs
Rate limiting is site-configured and returns HTTP 429
No documented bulk-read API for large DocTypes
Major version upgrades break custom DocType scripts
CSV Data Export does not include file attachments
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
Source audit and scope definition
We audit the source ERPNext instance across DocTypes, custom fields, custom scripts, and record volumes. We count third parties, items, BOMs, open commercial documents, GL voucher rows, stock ledger entries, projects, employees, and asset records. We identify any custom scripts referencing deprecated v15 modules and flag them for remediation before migration begins. We assess chart of accounts alignment between the ERPNext and Dolibarr charts, particularly if GL voucher migration is in scope. We confirm which Dolibarr modules are enabled at the destination.
Dolibarr destination setup
We activate the required Dolibarr modules (CRM, Sales, Purchases, Stock, Projects, HR, BOM if applicable, Accounting, Banking) and configure the custom field definitions that mirror the ERPNext custom fields. We set up the chart of accounts structure if GL migration is in scope, mapping ERPNext account codes to Dolibarr account codes. We configure warehouse structures, item groups, and third-party categories to match the ERPNext source taxonomy. The destination setup phase runs in parallel with source audit.
ERPNext data export
We export ERPNext data using the REST API for standard DocTypes (Customers, Suppliers, Items, Sales Orders, Purchase Orders, Employees, Projects) and CSV Data Export for high-row-count tables (Stock Ledger Entries, Communication Logs). We resolve ERPNext Dynamic Link relationships to produce flat contact records with embedded address data. We extract BOM hierarchies, validate that all child item codes exist in the export set, and queue any BOMs with missing dependencies for retry. We run a pre-export duplicate check against the Dolibarr destination to flag any records that already exist at the target.
Test migration and validation
We run a full migration into a non-production Dolibarr instance using production-like data volumes. We generate reconciliation reports comparing source record counts against destination record counts across all DocTypes. We spot-check 25-50 records per DocType against the ERPNext source for field-level accuracy, paying particular attention to custom field values, address linkage, and BOM structure integrity. We flag any mapping corrections and document them before production migration begins. The customer reviews the test migration output and signs off the schema and mapping rules.
Production migration in dependency order
We run the production migration in record-dependency order: Dolibarr modules and custom fields (setup), then third parties, items, BOMs (if applicable), stock opening quantities, commercial documents (Sales Orders, Purchase Orders, Invoices), GL entries (if in scope), projects and tasks, employees, assets, and finally activity history. Each phase emits a row-count reconciliation report before the next phase begins. Owner and user mapping is resolved by email match before record import. Any records referencing unmapped owners or accounts are held in a reconciliation queue.
File re-association, cutover, and DocType script inventory
We re-associate exported file attachments with their correct Dolibarr records using filename-to-record mapping. We perform a final validation pass comparing record counts and spot-checking field values against the ERPNext source. We enable Dolibarr as the system of record and freeze ERPNext writes during the cutover window. We deliver the DocType script and custom field dependency inventory document to the customer's admin team with Dolibarr replacement recommendations. We support a one-week post-migration window for reconciliation issues. We do not rebuild ERPNext workflows, automations, or DocType scripts as part of the migration scope; that is a separate engagement.
Platform deep dives
ERPnext Enterprise - Bespoke
Source
Strengths
Weaknesses
Dolibarr ERP
Destination
Strengths
Weaknesses
Complexity grading
Standard ERP migration. All 8 core objects map 1:1 between ERPnext Enterprise - Bespoke and Dolibarr ERP.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across ERPnext Enterprise - Bespoke and Dolibarr ERP.
Object compatibility
All 8 core objects map 1:1 between ERPnext Enterprise - Bespoke and Dolibarr ERP.
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
ERPnext Enterprise - Bespoke: Configurable per-site via site_config.json (default 600 seconds of request time per hour); defaults to HTTP 429 on exceedance with Retry-After header.
Data volume sensitivity
ERPnext Enterprise - Bespoke 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 ERPnext Enterprise - Bespoke to Dolibarr ERP migration scoping. Not seeing yours? Book a call.
Walk through your ERPnext Enterprise - Bespoke 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 ERPnext Enterprise - Bespoke
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.