ERP migration
Field-level mapping, validation, and rollback between Epicor Prophet 21 and Dolibarr ERP. We move data and schema; workflows are rebuilt natively in Dolibarr ERP.
Epicor Prophet 21
Source
Dolibarr ERP
Destination
Compatibility
12 of 13
objects map 1:1 between Epicor Prophet 21 and Dolibarr ERP.
Complexity
BStandard
Timeline
3-6 weeks
Try the reverse
Overview
Migrating from Epicor Prophet 21 to Dolibarr is a cost-driven decision for small and mid-market distributors who no longer justify P21's per-user pricing and implementation overhead. P21 stores distribution data in a Microsoft SQL Server database with header/detail table patterns that we query directly for on-premises deployments or pull via the P21 v2 REST API for cloud tenants. We preserve Lot/Serial number lineage across the inv_mast and inv_bin tables, maintain open AP/AR invoice sequences, and map the multi-warehouse bin structure to Dolibarr's warehouse and stock location modules. Third-party bolt-on integrations that connect via proprietary APIs or direct SQL require explicit identification during discovery because they cannot migrate as code. We do not migrate P21 SDK customizations, BPMs, or DynaChange rules; we deliver a written inventory of these for the customer's admin to rebuild in Dolibarr's modular framework. Dolibarr's open-source model eliminates per-user licensing, but teams should expect a period of configuration work post-migration as Dolibarr's module-by-module setup differs from P21's integrated distribution workflow model.
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.
Source platform
Epicor Prophet 21 platform overview
Scorecard, SWOT, gotchas, and pricing for Epicor Prophet 21.
Destination platform
Dolibarr ERP platform overview
Scorecard, SWOT, gotchas, and pricing for Dolibarr ERP.
Data migration guide
The complete Dolibarr migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Source platform guide
Epicor ERP migration guide
Understand the data you're exporting from Epicor Prophet 21 before mapping it.
Destination checklist
Dolibarr migration checklist
Pre- and post-cutover tasks for moving onto Dolibarr ERP.
Source checklist
Epicor ERP migration checklist
Exit checklist for unwinding your Epicor Prophet 21 setup cleanly.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Epicor Prophet 21 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.
Epicor Prophet 21
Customer
Dolibarr ERP
Third Party (Societe)
1:1P21 customer records from the customer table map to Dolibarr Third Party (Societe) with type=T. Ship-to addresses from the address table map to Dolibarr address records linked via the fk_adr_shipping foreign key. Credit limits and pricing tiers from P21 map to Dolibarr's customer-specific price levels. We preserve the P21 customer_id as a reference field and use it as the dedupe key during import to prevent duplicate third parties.
Epicor Prophet 21
Vendor
Dolibarr ERP
Third Party (Societe)
1:1P21 vendor records from the vendor table map to Dolibarr Third Party with type=F. Vendor payment terms and buyer assignments map to Dolibarr's terms_delay and mode_reglement fields. The supplier_part_no cross-reference from P21's supplier_x_item table migrates to Dolibarr's product supplier references for replenishment linkage.
Epicor Prophet 21
Item (inv_mast)
Dolibarr ERP
Product (Article)
1:1P21 inv_mast records map to Dolibarr Product (Article) with type=1 for stockable items. Part numbers map to ref, descriptions to label, and product_group_id to the Dolibarr category via fk_categorie. UOM data from unit_of_measure maps to Dolibarr's weight and volume units. Replenishment method and min-max settings do not have native Dolibarr equivalents and are documented as manual configuration items post-migration.
Epicor Prophet 21
Item Location (inv_loc)
Dolibarr ERP
Warehouse Stock (Stock)
1:manyP21 inv_loc records carry qty_on_hand, qty_allocated, reorder_point, and location_id per warehouse. We split these into Dolibarr Warehouse records (one per P21 warehouse) and Stock movement entries linked via fk_entrepot. Multi-warehouse setups in P21 create multiple inv_loc rows per item that consolidate into Dolibarr's per-warehouse stock ledger.
Epicor Prophet 21
Bin Location (inv_bin)
Dolibarr ERP
Stock Location (Espace de stockage)
1:1P21 bin_loc and primary_bin_flag from inv_bin map to Dolibarr Stock Location records linked via fk_stock. Cross-dock configurations from P21 are documented as a configuration note because Dolibarr's standard stock module handles pick-pack-ship workflows through the warehouse module rather than dedicated cross-dock logic.
Epicor Prophet 21
Sales Order (oe_hdr/oe_line)
Dolibarr ERP
Customer Order (Commande client)
1:1P21 OrderHead and OrderDtl tables map to Dolibarr Commande client header and lines. The P21 order_no becomes the ref_ext field for traceability. Open orders (not yet shipped or invoiced) migrate as active Dolibarr orders; historical orders migrate as archived orders with the original order date preserved. We flag partially allocated orders with a note so the customer's team can complete allocation in Dolibarr.
Epicor Prophet 21
Purchase Order (po_hdr/po_line)
Dolibarr ERP
Supplier Order (Commande fournisseur)
1:1P21 POHeader and POLine records map to Dolibarr Commande fournisseur. Vendor pricing and lead times from POLine migrate to Dolibarr's supplier price rows on the linked Product record. Partially received POs are flagged with a receipt status note so the purchasing team completes receipt transactions in Dolibarr's incoming shipment workflow.
Epicor Prophet 21
Quote (quote_hdr/quote_dtl)
Dolibarr ERP
Commercial Proposal (Propal)
1:1P21 QuoteHed and QuoteDtl records map to Dolibarr Propal. Expiration dates migrate to the fin_validite field and status maps to the Dolibarr statuts (Draft, Open, Signed, Closed). Expired quotes are flagged with a status note for the sales team to review before converting to orders in Dolibarr.
Epicor Prophet 21
Lot/Serial Number
Dolibarr ERP
Batch/Serial Number (Numero de lot)
1:1P21 lot/serial tracking linked to inv_mast and transaction history migrates to Dolibarr's lot/serial number module. We preserve lot number, expiration date, and FIFO cost layer where available. Full traceability chains (lot-to-receipt-to-issuance) migrate as Lot records with embedded stock movement history, so inventory valuation and shelf-life tracking remain auditable in Dolibarr.
Epicor Prophet 21
Open AR (invoice_hdr/invoice_dtl)
Dolibarr ERP
Customer Invoice (Facture client)
1:1Open receivables from P21 invoice tables migrate to Dolibarr Facture client with status unpaid. Partially paid invoices carry the remaining balance and a payment status note. We sequence AR migration after customer records are loaded so fk_soc references resolve at insert time. Payment history migrates as Dolibarr Paiement objects linked to the invoice.
Epicor Prophet 21
Open AP (voucher_hdr/voucher_dtl)
Dolibarr ERP
Supplier Invoice (Facture fournisseur)
1:1Open payables from P21 voucher tables migrate to Dolibarr Facture fournisseur with status unpaid. The vendor reference number maps to ref_supplier for reconciliation. Partially paid vouchers carry remaining balances and are flagged for the accounts payable team to complete payment runs in Dolibarr.
Epicor Prophet 21
Chart of Accounts
Dolibarr ERP
Account Plan (Plan de compte)
1:1P21 GLAccount records map to Dolibarr's Plan Comptable (French PCMN or custom chart). The full account code string from P21's segment structure migrates as the account number in Dolibarr. Account labels and category assignments (asset, liability, equity, revenue, expense) map to Dolibarr's account_type and label fields. Multi-segment account codes in P21 require flattening during extraction because Dolibarr uses a single account code dimension.
Epicor Prophet 21
Employee/User
Dolibarr ERP
User
1:1P21 user accounts and role assignments from the user and territory tables map to Dolibarr User records. Role-based permissions in P21 do not map directly to Dolibarr's permissions model; we document the permission matrix as a configuration handoff so the customer's Dolibarr admin sets up the equivalent permission groups post-migration. Employee records with contact details migrate as Dolibarr User records with the associated contact information.
| Epicor Prophet 21 | Dolibarr ERP | Compatibility | |
|---|---|---|---|
| Customer | Third Party (Societe)1:1 | Fully supported | |
| Vendor | Third Party (Societe)1:1 | Fully supported | |
| Item (inv_mast) | Product (Article)1:1 | Fully supported | |
| Item Location (inv_loc) | Warehouse Stock (Stock)1:many | Fully supported | |
| Bin Location (inv_bin) | Stock Location (Espace de stockage)1:1 | Fully supported | |
| Sales Order (oe_hdr/oe_line) | Customer Order (Commande client)1:1 | Fully supported | |
| Purchase Order (po_hdr/po_line) | Supplier Order (Commande fournisseur)1:1 | Fully supported | |
| Quote (quote_hdr/quote_dtl) | Commercial Proposal (Propal)1:1 | Fully supported | |
| Lot/Serial Number | Batch/Serial Number (Numero de lot)1:1 | Fully supported | |
| Open AR (invoice_hdr/invoice_dtl) | Customer Invoice (Facture client)1:1 | Fully supported | |
| Open AP (voucher_hdr/voucher_dtl) | Supplier Invoice (Facture fournisseur)1:1 | Fully supported | |
| Chart of Accounts | Account Plan (Plan de compte)1:1 | Mapping required | |
| Employee/User | User1: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.
Epicor Prophet 21 gotchas
Third-party bolt-on integrations complicate migration scope
Dirty data without standardized processes compounds migration risk
SDK customizations and BPMs may not survive platform upgrades
Report-based export only for non-technical users
Per-user pricing model requires accurate user count before migration planning
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 method determination
We audit the P21 environment for deployment type (on-premises vs cloud), SQL Server version, active P21 modules (inventory, order management, purchasing, financials, CRM), third-party bolt-on integrations, SDK customizations, BPMs, and user-defined fields. We identify the extraction path: direct SQL queries against the P21 database for on-premises deployments (using read-only access via SSMS or ODBC), or P21 v2 REST API / Data Services OData API for cloud tenants. The discovery output is a written data inventory, extraction method recommendation, and a pre-migration checklist identifying any records that require cleansing before ETL begins.
Data profiling and cleansing roadmap
We profile source data volumes (customer count, vendor count, item count, open order backlog, AP/AR balance count, lot/serial record count) and identify data quality issues: duplicate vendors, inconsistent part numbers, incomplete address records, orphaned ship-to addresses, and missing required fields for Dolibarr mandatory columns. We build a cleansing roadmap prioritized by impact on migration sequencing and deliver it to the customer before any ETL scripts run. P21 environments that lack standardized data entry processes accumulate these issues over years, and cleansing them before migration prevents import failures in Dolibarr.
Bolt-on and customization inventory
We document every third-party bolt-on integration (name, vendor, connection method, data exchanged), every active BPM and SDK customization, and every user-defined field added via P21's extension framework. This inventory is the basis for the post-migration handoff document that tells the customer's Dolibarr admin which integrations to re-implement, which customizations to rebuild as Dolibarr module configuration or Dolistore modules, and which UDFs cannot migrate because they have no Dolibarr equivalent. We do not migrate BPMs or SDK customizations as code.
Dolibarr environment preparation and module activation
We assist with Dolibarr installation (self-hosted or cloud) and activate the modules required by the migration scope: Societe (third parties), Product (articles), Commande (orders), Facture (invoicing), Stock (warehouse and bin locations), and Expedition (shipping). We configure the chart of accounts using the flattened P21 GL account codes, set up warehouse locations mapped to P21 inv_bin records, and create the initial user accounts. Dolibarr's module activation is idempotent, so modules can be tested in sequence before final configuration.
Test migration in staging environment
We run a full migration into a Dolibarr staging instance using production-like data volumes. The customer's team reconciles record counts (Customers in, Vendors in, Items in, Orders in, Invoices in, Stock quantities in) and spot-checks 25-50 records against the P21 source. Lot/serial traceability chains, open AP/AR balances, and bin location assignments receive specific validation. Any mapping corrections and data quality issues uncovered during staging are resolved before production migration begins. P21 write access is not suspended during staging so the customer's team can continue daily operations.
Production migration and cutover
We schedule production migration during a low-activity window agreed upon with the customer. For on-premises P21, we run direct SQL extraction with off-peak scheduling to avoid production impact. For cloud P21, we use the REST API with rate-limit handling and batch chunking. Migration proceeds in dependency order: third parties (Customers and Vendors), products with supplier references, warehouses and stock locations, open orders and quotes, AP/AR invoices with payment history, GL account plan, and finally lot/serial records. Each phase emits a row-count reconciliation report before the next phase begins. We freeze P21 write access during the final delta window, extract the last batch of changed records, and close the migration.
Post-migration validation and handoff
We validate production migration results against the staging reconciliation baseline, confirm that open AP/AR invoice totals match P21's aging report, verify lot/serial traceability chains are intact, and spot-check customer and vendor addresses. We deliver the bolt-on integration inventory, BPM and SDK customization handoff document, and Dolibarr module configuration checklist to the customer's admin team. We support a one-week hypercare window for reconciliation issues. We do not configure Dolibarr workflows, train users, or rebuild P21 BPMs as separate engagements.
Platform deep dives
Epicor Prophet 21
Source
Strengths
Weaknesses
Dolibarr ERP
Destination
Strengths
Weaknesses
Complexity grading
Standard ERP migration. 2 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 Epicor Prophet 21 and Dolibarr ERP.
Object compatibility
2 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
Epicor Prophet 21: Not publicly documented by Epicor; third-party connector rate limits vary by integration layer.
Data volume sensitivity
Epicor Prophet 21 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 Epicor Prophet 21 to Dolibarr ERP migration scoping. Not seeing yours? Book a call.
Walk through your Epicor Prophet 21 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 Epicor Prophet 21
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.