ERP migration
Field-level mapping, validation, and rollback between De Facto ERP and Dolibarr ERP. We move data and schema; workflows are rebuilt natively in Dolibarr ERP.
De Facto ERP
Source
Dolibarr ERP
Destination
Compatibility
13 of 15
objects map 1:1 between De Facto ERP and Dolibarr ERP.
Complexity
BStandard
Timeline
6-8 weeks
Overview
Moving from De Facto ERP to Dolibarr is a structural migration from a highly customized, proprietary UK ERP with no documented public API to a community-driven open-source platform with modular activation and a MySQL/PostgreSQL-backed REST interface. De Facto organizes its data around a Product Supply Chain core with TSQL-scripted exports; Dolibarr uses a third-party model that conflates customers and suppliers by type, a product model with multi-warehouse stock support, and a document-attachment architecture that requires explicit document-to-record linkage restoration post-import. We extract De Facto's master data and transactional history via TSQL scripts scoped to each deployment's custom schema, map landed cost components (freight, insurance, duty, tax) into Dolibarr product Extra fields, and activate Dolibarr modules (stock, invoicing, BOM, project management) to match the migrated data scope. Automations, SSRS report definitions, and custom EDP workflows do not migrate; we deliver written inventories for admin rebuild.
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 De Facto 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.
De Facto ERP
Customer / Account
Dolibarr ERP
Third Party (societe)
1:1De Facto Customer records map to Dolibarr Third Parties (table llx_societe) with Type = Customer. We map customer name, primary contact, billing and delivery addresses, and account balance from De Facto's Financials module into Dolibarr's address fields (address, zip, town, country) and the account balance into a custom tracking field since Dolibarr tracks receivable via the invoices module rather than a standing balance field. Payment terms from De Facto map to Dolibarr cond_reglement_id.
De Facto ERP
Vendor / Supplier
Dolibarr ERP
Third Party (societe)
1:1De Facto Vendor records map to Dolibarr Third Parties with Type = Supplier. We preserve vendor address, bank details, currency assignment, and tax code from De Facto's multi-country supplier management. De Facto's supplier-specific fields (payment terms, Incoterms) map to Dolibarr's cond_reglement_id and fk_typent for supplier type classification. Currency codes from De Facto carry forward into Dolibarr's multi-currency configuration on the third-party record.
De Facto ERP
Item / Product
Dolibarr ERP
Product (produit)
1:1De Facto stock items including SKU, description, unit of measure, and cost price map to Dolibarr Product records. De Facto's landed cost components (freight, insurance, duty, tax per item) map to Dolibarr Extra fields or the Product Extra Prices module since standard Dolibarr does not natively model multi-element landed cost. We create a landed_cost_type field on each product to flag whether cost includes landed components and document the component breakdown in product notes for the customer's finance team to validate post-migration.
De Facto ERP
Bill of Materials
Dolibarr ERP
BOM (nomenclature)
1:1De Facto BOM (bill of materials) structures for manufactured items map to Dolibarr Product BOM (llx_product_bom). Each BOM line from De Facto maps to llx_bom_bomline with fk_product, fk_component, and qty required. We preserve the parent assembly product and the component ratios exactly; De Facto's multi-level BOM support maps to Dolibarr's nested BOM structure. BOM validation is performed in a Dolibarr test instance before production migration.
De Facto ERP
Open AP / AR
Dolibarr ERP
Invoice / Credit Note (facture)
1:1De Facto open invoices, credit notes, and outstanding balances map to Dolibarr Invoice (llx_facture) with status preserved (Draft, Validated, Paid, Cancelled). For open AP/AR, we set the invoice status to match De Facto's payment state and use Dolibarr's payment reconciliation (releve de facture) post-import to match payments. De Facto's transaction-level AP/AR tracking becomes individual Dolibarr invoice records; the customer's admin reconciles partial payments and credit note offsets against the imported documents.
De Facto ERP
Chart of Accounts
Dolibarr ERP
Accounting Account (compte)
1:1De Facto's chart of accounts exports from TSQL scripts in structured CSV or XML format, which we parse into Dolibarr's llx_accounting_account table. Account numbers, labels, and parent-account hierarchy map 1:1. We flag account types ( receivable, payable, asset, liability, income, expense) against Dolibarr's account_type field. Multi-company chart of accounts from De Facto's multi-entity support map to separate Dolibarr accounting configurations per company entity.
De Facto ERP
User / Employee
Dolibarr ERP
User (user)
1:1De Facto user records and role assignments map to Dolibarr Users (llx_user) by extracting the user name, email, and active status via TSQL. De Facto's EDP role definitions are often highly custom and do not map 1:1 to Dolibarr's permission groups (Commercial, RH, Accountant). We extract all roles during discovery, present a role translation matrix to the customer's admin, and apply the agreed permission set during migration. Deactivated De Facto users are imported as inactive Dolibarr users with login disabled.
De Facto ERP
Document / Attachment
Dolibarr ERP
Document (document)
1:1De Facto documents and OCR-linked records are exported from the EDP document management layer as files with their associated record metadata. We map the file content into Dolibarr's documents directory (dolibarr_main_data_root) and restore document-to-record linkages using a reconciliation table that maps De Facto's record IDs to Dolibarr's object IDs (Third Party, Product, Invoice). Any OCR-processed records retain their text content as Dolibarr notes on the linked object.
De Facto ERP
Historical Transactions
Dolibarr ERP
Document / Invoice / Order (facture / commande)
1:1De Facto historical transactions including purchase orders, sales orders, and warehouse movements export via TSQL script output in CSV or XML. We map these to Dolibarr objects: completed sales orders become Dolibarr Customer Order (llx_commande) with status = Closed, purchase history becomes Supplier Order, and warehouse movements become Dolibarr Stock Movement records. Large transaction volumes are chunked by date range and validated in batches to avoid export timeouts on the De Facto side.
De Facto ERP
Fixed Assets
Dolibarr ERP
Asset (immobilisation)
1:1De Facto fixed asset registers including acquisition cost, depreciation method, accumulated depreciation, and asset location map to Dolibarr Asset (llx_asset). De Facto's landed cost tracking for imported items may overlap with fixed asset acquisition cost; we separate them by asset classification during scoping. Depreciation schedules from De Facto map to Dolibarr amortization records (llx_amortissement) with the original acquisition date and depreciation method preserved. Mid-life revaluation or impairment records from De Facto require custom mapping as Dolibarr does not natively handle in-service revaluation.
De Facto ERP
CRM / Opportunities
Dolibarr ERP
Opportunity (projet or commercial)
1:1De Facto CRM opportunity tracking maps to Dolibarr Project (llx_projet) with the opca flag set to distinguish commercial opportunities from internal projects. We map opportunity name, estimated value, stage, expected close date, and associated contacts (linked via llx_element_contact). De Facto's custom CRM fields migrate as Dolibarr extra fields on the Project record. If the Dolibarr commercial opportunity module is activated, opportunities map to llx_societe_commerciaux with stage mapping agreed during scoping.
De Facto ERP
Reports / BI
Dolibarr ERP
Report (documentation only)
lossyDe Facto's Reporting & Analysis module uses Microsoft SSRS-based report definitions, which are not portable across platforms. We do not migrate SSRS templates. Instead, we export the data that feeds each SSRS report as structured CSVs and deliver a written inventory of every report (name, purpose, data source tables, parameters, scheduling) with a Dolibarr rebuild recommendation. Dolibarr's native reporting or a BI tool like Grafana connected to the Dolibarr database is the recommended replacement path.
De Facto ERP
Custom Objects
Dolibarr ERP
Custom Object (configuration required)
lossyDe Facto's EDP architecture supports company-specific custom objects that have no standard Dolibarr equivalent. We pre-create the destination schema in Dolibarr by defining new tables (llx_custom_objectname) and custom field definitions (llx_extrafields) before data import begins. All custom field types (string, integer, date, dropdown, checkbox) are mapped to their corresponding Dolibarr field_type values. Lookup relationships between custom objects and standard objects (Third Party, Product, Invoice) are resolved at migration time by matching on the foreign key value extracted from De Facto's TSQL output.
De Facto ERP
Notes / Annotations
Dolibarr ERP
Note (note)
1:1De Facto notes and annotations linked to any master or transaction record map to Dolibarr Note records (llx_note) attached via the object_type and object_id foreign keys. We preserve note creation date and author from De Facto, and restore the parent record linkage by matching the De Facto record identifier against the migrated Dolibarr object ID using the reconciliation table built during the document migration phase.
De Facto ERP
Warehouse / Stock Location
Dolibarr ERP
Warehouse (entrepot)
1:1De Facto warehouse records and multi-warehouse configurations map to Dolibarr Warehouse (llx_entrepot). Stock levels per item per warehouse from De Facto's Product Supply Chain module transfer as Dolibarr Stock Movement records (llx_product_stock) linked to the appropriate warehouse. De Facto's warranty stock tracking for importers maps to a Dolibarr warehouse flagged with a custom status field (warranty_stock) to preserve the operational distinction without losing the data in a generic stock import.
| De Facto ERP | Dolibarr ERP | Compatibility | |
|---|---|---|---|
| Customer / Account | Third Party (societe)1:1 | Fully supported | |
| Vendor / Supplier | Third Party (societe)1:1 | Fully supported | |
| Item / Product | Product (produit)1:1 | Fully supported | |
| Bill of Materials | BOM (nomenclature)1:1 | Fully supported | |
| Open AP / AR | Invoice / Credit Note (facture)1:1 | Mapping required | |
| Chart of Accounts | Accounting Account (compte)1:1 | Fully supported | |
| User / Employee | User (user)1:1 | Fully supported | |
| Document / Attachment | Document (document)1:1 | Fully supported | |
| Historical Transactions | Document / Invoice / Order (facture / commande)1:1 | Mapping required | |
| Fixed Assets | Asset (immobilisation)1:1 | Mapping required | |
| CRM / Opportunities | Opportunity (projet or commercial)1:1 | Fully supported | |
| Reports / BI | Report (documentation only)lossy | Not supported | |
| Custom Objects | Custom Object (configuration required)lossy | Fully supported | |
| Notes / Annotations | Note (note)1:1 | Fully supported | |
| Warehouse / Stock Location | Warehouse (entrepot)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.
De Facto ERP gotchas
No documented public API for programmatic extraction
Highly customized deployments resist template migrations
Pricing is opaque — all tiers require sales contact
Limited public review volume and low category ratings
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 TSQL extraction scoping
We audit the source De Facto ERP deployment via direct database access or TSQL-scripted exports. Discovery maps the full source schema including any custom tables, custom fields on standard tables, TSQL views used for reporting, SSRS report definitions, and the relationship between document storage and master/transaction records. We produce a written Source Schema Inventory that lists every table, field, data type, and relationship to be migrated. We also identify which Dolibarr modules (stock, invoicing, BOM, project, accounting, third-party) must be activated to receive the migrated data.
Dolibarr instance provisioning and module activation
We provision a clean Dolibarr instance (self-hosted or via DoliCloud) with the modules required by the migration scope activated. We create the destination schema including extra fields on Third Party, Product, and Project objects to receive De Facto custom field values, configure the accounting chart of accounts, and set up warehouse records matching the De Facto site/warehouse structure. The Dolibarr API module is enabled for programmatic import. Schema design is validated in a test run with a subset of records before full production migration begins.
TSQL extraction and data cleansing
We execute the scoped TSQL scripts against the De Facto database to extract master data (Third Parties, Products, BOMs, Users, Fixed Assets) and transactional history (Invoices, Orders, Stock Movements). Data cleansing runs in parallel: duplicate records are flagged, address formats are standardized, currency codes are validated against ISO 4217, and null or malformed values are logged for customer review. Landed cost component data is extracted as a separate table and joined to the product export. The output is a set of CSV files organized by object type and load order.
Sandbox migration and reconciliation
We run a full migration into a Dolibarr test instance using production data volume. The customer's finance and operations leads reconcile record counts per object, spot-check 30-50 random records for field-level accuracy, and validate document linkages using the reconciliation table. Any mapping corrections, field truncation issues, or extra-field configuration gaps are resolved here. Sign-off on the sandbox migration is required before production migration proceeds.
Production migration in dependency order
We run production migration in record-dependency order: Third Parties (suppliers first, then customers), Products with landed cost extras and BOM structures, Fixed Assets with depreciation schedules, Invoices with payment status preserved, Historical Orders and Stock Movements, Users with role translation applied, Documents attached via reconciliation table, Projects and Opportunities with linked contacts, and Custom Objects last. Each phase emits a row-count reconciliation report. AP/AR reconciliation runs as a post-import validation step against De Facto's open invoice register.
Cutover, document linkage handoff, and automation inventory
We freeze De Facto writes during cutover, run a delta migration of any records modified in the migration window, and hand over the reconciliation table for document linkage restoration. We deliver the SSRS Report Inventory with Dolibarr rebuild recommendations and the Workflow and Automation Inventory for the customer's admin to rebuild in Dolibarr. We support a one-week hypercare window for reconciliation issues. We do not rebuild De Facto workflows or SSRS reports within migration scope; those are separate engagements.
Platform deep dives
De Facto ERP
Source
Strengths
Weaknesses
Dolibarr ERP
Destination
Strengths
Weaknesses
Complexity grading
Standard ERP migration. All 8 core objects map 1:1 between De Facto ERP and Dolibarr ERP.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across De Facto ERP and Dolibarr ERP.
Object compatibility
All 8 core objects map 1:1 between De Facto 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
De Facto ERP: Not publicly documented.
Data volume sensitivity
De Facto 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 De Facto ERP to Dolibarr ERP migration scoping. Not seeing yours? Book a call.
Walk through your De Facto 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 De Facto 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.