ERP migration
Field-level mapping, validation, and rollback between Axelor ERP and Dolibarr ERP. We move data and schema; workflows are rebuilt natively in Dolibarr ERP.
Axelor ERP
Source
Dolibarr ERP
Destination
Compatibility
14 of 15
objects map 1:1 between Axelor ERP and Dolibarr ERP.
Complexity
BStandard
Timeline
4-8 weeks
Overview
Moving from Axelor ERP to Dolibarr is a platform simplification: Axelor's Java-based, Low Code studio, multi-company, and BPM-heavy architecture gives way to Dolibarr's PHP-based modular stack designed for small and mid-sized teams that need core ERP functions without the deployment overhead. We extract Axelor data through its REST API and direct PostgreSQL or MySQL reads, enumerate every custom Studio domain model from XML files at scoping time, split inter-company journal entries into per-company standard entries, and migrate attachment metadata while scheduling a separate file-binary transfer job. BPM processes and workflows do not migrate as code; we deliver a written inventory of each process and its recommended Dolibarr equivalent for the customer admin to rebuild. Projects, tasks, stock moves, and the full product catalog migrate as structured records, while the general ledger and custom objects require explicit field-level mapping decisions before any data moves.
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 Axelor 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.
Axelor ERP
Partner
Dolibarr ERP
ThirdParty (societe)
1:1Axelor Partner is a unified object for customers, suppliers, and prospects with addresses, bank details, and contact persons stored as related records. It maps to Dolibarr's ThirdParty (societe) table. We split the Axelor Partner type (customer, supplier, prospect) into Dolibarr's separate isCustomer and isSupplier boolean flags on the same record. Contact persons map to Dolibarr's contact table with the parent third-party reference preserved as s.fk_soc.
Axelor ERP
Product
Dolibarr ERP
Product (produit)
1:1Axelor Products cover both stocked items and services with BOM support for manufacturing, product variants, units of measure, and supplier info. They map to Dolibarr's Product table with type (0=service, 1=stockable, etc.), barcode, and price information. Multi-UoM is normalised to Dolibarr's single unit of measure per product with weight and volume dimensions migrated as product attributes.
Axelor ERP
SaleOrder
Dolibarr ERP
Order (commande)
1:1Axelor Sale Orders carry line items, taxes, discounts, and status workflows with order-to-invoice linking preserved via originId. They map to Dolibarr's commande table with order status (0=draft, 1=validated, etc.), and order lines migrate to commande_fournisseurdet for supplier orders or commande_det for customer orders. The Axelor currency code maps to Dolibarr's fk_multicurrency field for multi-currency orders.
Axelor ERP
PurchaseOrder
Dolibarr ERP
SupplierOrder (commande_fournisseur)
1:1Axelor Purchase Orders map to Dolibarr's commande_fournisseur table with supplier reference, order status, and line items. Axelor's purchase order workflow states map to Dolibarr's Status values. We resolve the supplier third-party reference to Dolibarr's fk_soc during import and preserve the purchase representative as aDolibarr user assignment.
Axelor ERP
Invoice
Dolibarr ERP
Invoice (facture)
1:1Axelor Invoices are multi-currency and multi-company aware with invoice lines, tax computation, payment terms, and overdue flags. They map to Dolibarr's facture table, with type区分 customer invoice (facture), supplier invoice (facture_fournisseur), and credit note (factureavoir). Open invoices vs historical records are separated so that only posted invoices are imported. Axelor's originId linking to orders is preserved as fk_origin on the Dolibarr record.
Axelor ERP
Project
Dolibarr ERP
Project (projet)
1:1Axelor Projects contain Tasks, Milestones, Time Entries, and Invoicing plans in a hierarchical structure. They map to Dolibarr's projet table. The full project hierarchy including subtask nesting and assigned users migrates, with project status mapped from Axelor's state to Dolibarr's fk_statut. Dolibarr does not support native project hierarchies beyond one level, so we flatten multi-level Axelor project trees into a flat project list with a parent_reference custom field for the customer to re-establish relationships manually.
Axelor ERP
Task
Dolibarr ERP
Task (projet_task)
1:1Axelor Tasks belong to Projects and carry status, priority, assignees, and custom fields. They map to Dolibarr's projet_task table with the parent project reference preserved as fk_projet. Axelor's task date fields map to dateo (start) and datee (end), and the Axelor assigned user maps to fk_user_assign. Subtask inheritance varies by Axelor version; we flatten nested task hierarchies to flat tasks with a parent_task reference for Dolibarr's admin to reassemble if needed.
Axelor ERP
StockMove
Dolibarr ERP
StockMovement (stock_mouvement)
1:1Axelor Stock Moves track internal transfers, receipts, and shipments with real-time inventory impact. They map to Dolibarr's stock_mouvement table with warehouse references (Axelor fromWarehouse/toWarehouse to Dolibarr fk_entrepot), lot/serial numbers ( Axelor lotNumber to Dolibarr lot_id), and move quantities. Open moves at migration time are flagged so that partial stock impact is reconciled against Dolibarr's current stock levels after import.
Axelor ERP
ProductStock
Dolibarr ERP
ProductStock (product_stock)
1:1Axelor ProductStock represents real-time inventory quantities per product per warehouse. It maps to Dolibarr's product_stock table (or stock_reel computed from stock_mouvement) with product reference, warehouse reference, and physical quantity. We take a snapshot of current stock levels at migration time and use them to seed Dolibarr's stock warehouse records, reconciling against any open stock moves imported separately.
Axelor ERP
GeneralLedger / JournalEntry
Dolibarr ERP
AccountancyRecord (accounting_account + finance_pcr)
1:1Axelor's General Ledger with Chart of Accounts, Journals, and Journal Entries maps to Dolibarr's accounting tables (accounting_account for the chart of accounts, accounting_document for journal entries, and accounting_lines for debit/credit lines). Multi-company journal entries with debit entries in one company and corresponding credit entries in another are split into separate standard journal entries per company, and the inter-company relationship is flagged via a custom reference field (intercompany_ref) for manual reconciliation post-migration. We do not replicate Axelor's analytic accounting structure unless the destination Dolibarr installation includes the accountancy module.
Axelor ERP
Employee
Dolibarr ERP
User (user)
1:1Axelor Employee records include contact info, job title, department, and employment dates. They map to Dolibarr's user table with the employee's login, last name, first name, email, and job title migrated. The Axelor department maps to Dolibarr's departmental custom field. User-to-record ownership mappings are preserved by resolving the employee reference to Dolibarr's fk_user on related records.
Axelor ERP
Custom Object (Studio)
Dolibarr ERP
Custom Object or Module
1:1Axelor Studio allows creation of entirely custom domain objects defined in XML files and compiled into the application at build time. We enumerate every custom model by inspecting the application's XML domain files during scoping. Each custom object is mapped to a Dolibarr custom object or a new Dolibarr module depending on complexity. Custom fields stored in Axelor's attrs JSON column are enumerated and mapped to Dolibarr's extrafields table structure. If a custom object has relationships to standard Axelor objects, we replicate those relationships in Dolibarr via foreign key fields. Custom objects without a clear Dolibarr equivalent are documented in the migration handoff with a recommended module approach.
Axelor ERP
BPM Process
Dolibarr ERP
Workflow / Process (documented for rebuild)
lossyAxelor BPM processes and decision tables are stored as application-level configuration exported as DMN XML or Excel files rather than database records. They do not migrate as executable code into Dolibarr. We extract the relevant XML files from the Axelor application deployment and produce a written inventory of every BPM process with its trigger conditions, steps, decision logic, and referenced object types mapped to Dolibarr equivalents. The customer admin or a Dolibarr implementation partner uses this inventory to rebuild the processes in Dolibarr's workflow system or via a third-party workflow add-on.
Axelor ERP
Attachment / Document
Dolibarr ERP
Document (ecm_files)
1:1Axelor stores file attachments in a designated filesystem directory or database blobs depending on configuration. The REST API returns attachment metadata but does not stream file binary content in bulk. We export attachment metadata (filename, size, record association, creation date) during migration scoping and schedule a separate SFTP or cloud storage sync job to transfer actual file binaries to Dolibarr's document directory. The record associations are written to Dolibarr's ecm_files table and linked to the migrated record via entity/type/id columns.
Axelor ERP
UserRole
Dolibarr ERP
Permission / Group (right_def + usergroup)
1:1Axelor user records carry email, role, and team membership. Role-to-permission mappings vary significantly between Axelor versions. We extract user identity (email, name, active status) and role names but recommend manual permission review in Dolibarr after migration because Dolibarr's permission model (right_def based) differs structurally from Axelor's role definitions. Active Axelor users are provisioned as Dolibarr users; inactive users are imported with status=0 and flagged for the customer admin to activate if needed.
| Axelor ERP | Dolibarr ERP | Compatibility | |
|---|---|---|---|
| Partner | ThirdParty (societe)1:1 | Fully supported | |
| Product | Product (produit)1:1 | Fully supported | |
| SaleOrder | Order (commande)1:1 | Fully supported | |
| PurchaseOrder | SupplierOrder (commande_fournisseur)1:1 | Fully supported | |
| Invoice | Invoice (facture)1:1 | Fully supported | |
| Project | Project (projet)1:1 | Fully supported | |
| Task | Task (projet_task)1:1 | Fully supported | |
| StockMove | StockMovement (stock_mouvement)1:1 | Fully supported | |
| ProductStock | ProductStock (product_stock)1:1 | Fully supported | |
| GeneralLedger / JournalEntry | AccountancyRecord (accounting_account + finance_pcr)1:1 | Fully supported | |
| Employee | User (user)1:1 | Fully supported | |
| Custom Object (Studio) | Custom Object or Module1:1 | Fully supported | |
| BPM Process | Workflow / Process (documented for rebuild)lossy | Fully supported | |
| Attachment / Document | Document (ecm_files)1:1 | Fully supported | |
| UserRole | Permission / Group (right_def + usergroup)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.
Axelor ERP gotchas
Custom Studio domain models require manual enumeration
BPM workflow definitions are not standard data records
Multi-company inter-company journals need manual reconciliation mapping
Attachment file binaries require separate storage migration
Version upgrade breaks custom entity field overrides
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 scoping with custom model enumeration
We audit the source Axelor ERP instance across version, database type (PostgreSQL, MySQL, or Oracle), active modules, custom Studio domain objects, BPM process count, multi-company configuration, and data volumes per object. We specifically request access to the application's XML domain files or a full database schema dump to enumerate every custom model that exists outside the standard Axelor schema. We also extract attachment metadata (file list, record associations, storage locations) and BPM XML files at this stage. The discovery output is a written migration scope document listing all objects to migrate, all custom models with their field inventory, all BPM processes with their artefact locations, and a recommendation on inter-company journal handling.
Schema design and Dolibarr module activation planning
We design the destination Dolibarr configuration by identifying which Dolibarr modules to activate (CRM, Sales, Purchases, Stock, Accounting, Projects, HR) based on the objects being migrated. We map every Axelor object to its Dolibarr equivalent, define custom field mappings for any non-standard attributes, and plan the inter-company journal split strategy. For custom Studio domain objects, we design Dolibarr custom object schemas or module-level tables with appropriate foreign key references to standard Dolibarr tables. This design is validated against a Dolibarr test instance before any production migration begins.
Test migration in a Dolibarr staging environment
We run a full migration into a staging Dolibarr instance using a representative subset of production data (at minimum 500 records per major object type). The customer's team reviews the migrated records, spot-checks 25-50 records per object type against the Axelor source, and validates that custom field values transferred correctly. Any field mapping corrections, date format issues, or attachment transfer failures surface here. We also verify that BPM artefacts were correctly catalogued and that the written workflow inventory is complete and actionable. The customer signs off the mapping and staging results before production migration proceeds.
Partner and product master data migration first
We migrate core master data in dependency order: ThirdParty records (from Axelor Partners) are imported first, followed by Product records, then warehouse and unit-of-measure configurations. These objects have no parent dependencies in Dolibarr and must be present before any transactional data (orders, invoices, stock moves) can reference them. We resolve any Axelor currency codes to Dolibarr's multi-currency setup and seed the Dolibarr price list with Axelor product pricing data. This phase produces a reconciliation report comparing Axelor source record counts against Dolibarr imported record counts for each object type.
Transactional records migration in dependency order
We migrate transactional data in strict dependency order: Projects and Tasks (with project references resolved), then Orders (with third-party and product references resolved), then Invoices (with order references preserved as fk_origin), then Stock Moves and Product Stock snapshots (with warehouse references resolved). Accounting journal entries are imported last, after all transactional records are in place, with inter-company entries split and tagged. Each object type emits a row-count reconciliation report before the next phase begins, and any records that fail validation (date format, required field, reference resolution) are written to an exception queue for manual review.
Attachment file binary transfer and BPM artefact handoff
We execute the separate SFTP or cloud storage sync job to transfer all attachment file binaries to Dolibarr's document directory, updating the ecm_files record associations to point each file to the correct Dolibarr entity, type, and record ID. We deliver the written BPM and workflow inventory document to the customer's admin team, listing every Axelor process with its trigger, steps, and Dolibarr rebuild recommendation. We do not rebuild workflows inside the migration scope. We conduct a one-week hypercare window to resolve any record reconciliation issues raised by the customer's team during initial Dolibarr usage.
Platform deep dives
Axelor ERP
Source
Strengths
Weaknesses
Dolibarr ERP
Destination
Strengths
Weaknesses
Complexity grading
Standard ERP migration. All 8 core objects map 1:1 between Axelor ERP and Dolibarr ERP.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Axelor ERP and Dolibarr ERP.
Object compatibility
All 8 core objects map 1:1 between Axelor ERP 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
Axelor ERP: Not publicly documented.
Data volume sensitivity
Axelor 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 Axelor ERP to Dolibarr ERP migration scoping. Not seeing yours? Book a call.
Walk through your Axelor 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 Axelor 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.