ERP migration

Migrate from Epicor Prophet 21 to Dolibarr ERP

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 logo

Epicor Prophet 21

Source

Dolibarr ERP

Destination

Dolibarr ERP logo

Compatibility

92%

12 of 13

objects map 1:1 between Epicor Prophet 21 and Dolibarr ERP.

Complexity

BStandard

Timeline

3-6 weeks

Rollback included Accuracy guarantee Field-level validation

Try the reverse

Dolibarr ERP
Epicor Prophet 21

Overview

What this migration involves

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.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Epicor Prophet 21 logo

Epicor Prophet 21

What's pushing teams away

  • High costs for add-ons, new modules, and per-user pricing create budget surprises, especially for growing distributors adding functionality beyond the base subscription.
  • Difficult and limited customization options frustrate teams trying to adapt P21 to non-standard workflows, with G2 reviewers citing extensive manual adjustments and SKU field maintenance struggles.
  • Report generation performance is poor — multiple reviewers note the system freezes or takes excessive time to download reports, impacting daily operational workflows.
  • Missing features require teams to layer third-party bolt-ons for functionality that competitors bundle in, increasing total cost and integration complexity.
  • Upgrade paths can break SDK customizations and Business Process Modules, creating migration risk and forcing costly re-development when moving to newer Epicor versions.

Choosing

Dolibarr ERP logo

Dolibarr ERP

What's pulling them in

  • Free open-source core with no per-user license fee makes it the lowest-cost entry point for small teams needing ERP and CRM in one package.
  • Self-hosted deployment gives full data ownership and eliminates vendor lock-in, especially attractive to businesses with compliance requirements.
  • Modular architecture means teams enable only the features they use, keeping the interface uncluttered and reducing learning curve.
  • Fast installation with no technical knowledge required — one reviewer set up multiple businesses in minutes using their own hosting.
  • Active community forum and marketplace of third-party add-ons provide support and extension options without mandatory subscription costs.

Object mapping

How Epicor Prophet 21 objects map to Dolibarr ERP

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

maps to

Dolibarr ERP

Third Party (Societe)

1:1
Fully supported

P21 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

maps to

Dolibarr ERP

Third Party (Societe)

1:1
Fully supported

P21 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)

maps to

Dolibarr ERP

Product (Article)

1:1
Fully supported

P21 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)

maps to

Dolibarr ERP

Warehouse Stock (Stock)

1:many
Fully supported

P21 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)

maps to

Dolibarr ERP

Stock Location (Espace de stockage)

1:1
Fully supported

P21 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)

maps to

Dolibarr ERP

Customer Order (Commande client)

1:1
Fully supported

P21 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)

maps to

Dolibarr ERP

Supplier Order (Commande fournisseur)

1:1
Fully supported

P21 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)

maps to

Dolibarr ERP

Commercial Proposal (Propal)

1:1
Fully supported

P21 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

maps to

Dolibarr ERP

Batch/Serial Number (Numero de lot)

1:1
Fully supported

P21 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)

maps to

Dolibarr ERP

Customer Invoice (Facture client)

1:1
Fully supported

Open 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)

maps to

Dolibarr ERP

Supplier Invoice (Facture fournisseur)

1:1
Fully supported

Open 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

maps to

Dolibarr ERP

Account Plan (Plan de compte)

1:1
Mapping required

P21 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

maps to

Dolibarr ERP

User

1:1
Fully supported

P21 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.

Gotchas + challenges

What specifically takes care here

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 logo

Epicor Prophet 21 gotchas

High

Third-party bolt-on integrations complicate migration scope

High

Dirty data without standardized processes compounds migration risk

Medium

SDK customizations and BPMs may not survive platform upgrades

Medium

Report-based export only for non-technical users

Low

Per-user pricing model requires accurate user count before migration planning

Dolibarr ERP logo

Dolibarr ERP gotchas

High

Foreign key constraint errors on cross-distribution database restore

High

SQL injection vulnerabilities in version 9.0.1

Medium

Custom fields stored as JSON in extraoptions require field-by-field deserialization

Medium

Decimal precision and rounding configuration affects price fields

Low

No native iOS/Android app forces reliance on browser

Pair-specific challenges

  • P21 third-party bolt-on integrations require explicit identification

    P21 relies on third-party software for functionality that Epicor omits from the core ERP. These bolt-ons connect via proprietary APIs, direct SQL, or middleware, and each integration strategy requires a different migration approach. We inventory all bolt-on integrations during discovery, classify them as P21-native versus third-party, and advise which integrations must be re-implemented or replaced in Dolibarr. Any bolt-on that relies on direct P21 database access will break after migration and cannot be carried forward without middleware reconfiguration.

  • Dolibarr lacks native distribution replenishment and automated min-max planning

    P21 ships with an automated replenishment engine using demand-based and min-max planning to reduce stockouts. Dolibarr's standard stock module does not include automated replenishment or MRP; these capabilities would require a third-party Dolistore module or custom development. We flag this gap during scoping and document it as a post-migration configuration decision. Teams relying heavily on P21's replenishment engine should evaluate Dolistore supply chain modules or plan for manual reorder point management in Dolibarr.

  • P21 DynaChange and BPM customizations do not migrate to Dolibarr

    P21 Business Process Modules (BPMs) and SDK-driven DynaChange customizations are stored in extension tables or custom code that varies by company and upgrade version. We do not migrate these as code. We audit all active BPMs and SDK customizations during discovery and deliver a written inventory listing each customization's trigger, logic, and Dolibarr equivalent (module configuration, Dolistore add-on, or custom PHP development). P21 environments with years of undocumented BPMs require a full audit before extraction to avoid migrating broken or superseded logic.

  • Multi-segment P21 account codes require flattening for Dolibarr's chart

    P21's GLAccount table supports multi-segment account codes that vary by company configuration (division-company-department-subaccount patterns). Dolibarr uses a single-dimension account code structure. We extract the full account code string from P21 and flatten it into a single alphanumeric account code in Dolibarr. The original segment structure is preserved as a reference note on each account record so the customer's accountant can map it back to the appropriate P21 segment during reconciliation.

  • Dolibarr's module-by-module configuration differs from P21's integrated workflow

    Dolibarr activates modules independently (CRM, invoicing, inventory, HR, projects), and workflows between modules require explicit configuration that P21 delivers as integrated defaults. Teams migrating from P21's unified distribution workflow will need to configure Dolibarr's module connections (e.g., linking stock movements to customer orders, setting up supplier order workflows) after data migration completes. We deliver a module activation checklist and workflow configuration guide as part of the handoff package.

Migration approach

Six steps for a successful Epicor Prophet 21 to Dolibarr ERP data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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

Context on both ends of the pair

Epicor Prophet 21 logo

Epicor Prophet 21

Source

Strengths

  • Purpose-built for wholesale distribution with industry-specific replenishment, kitting, and counter-sale workflows out of the box.
  • Multi-warehouse management with bin locations, cross-docking, and real-time inventory visibility across all warehouse locations.
  • Automated replenishment engine with demand-based and min-max planning reduces stockouts and overstock carrying costs.
  • AI-infused reporting via Epicor Prism provides Gen AI-driven insights into ERP data without requiring a BI team.
  • Strong customer retention at 90% and a 50-year track record in the distribution vertical provides long-term vendor stability.

Weaknesses

  • High total cost of ownership — per-user pricing of $150-200/month plus $10K-$500K implementation creates significant budget commitment for small and mid-market distributors.
  • Customization via SDK requires technical expertise and introduces upgrade risk when custom code conflicts with new P21 releases.
  • Report generation performance is a known pain point — multiple users report system freezes during large or complex report exports.
  • Third-party bolt-on reliance for functionality that competitors include natively increases integration complexity and total solution cost.
  • Limited public API documentation — developers building custom integrations report difficulty finding P21 API authentication methods and endpoint specifications.
Dolibarr ERP logo

Dolibarr ERP

Destination

Strengths

  • Free core software with AGPL license and no per-user mandatory fee for self-hosted deployments.
  • Modular architecture lets teams activate only needed features, keeping the interface focused and the database lean.
  • Self-hosted option provides full data sovereignty and avoids recurring SaaS subscription costs.
  • Built-in CSV/Excel import and export wizard with saved profiles simplifies recurring data operations.
  • Low-code Module Builder allows functional extensions without writing PHP code.

Weaknesses

  • No native documented REST API for programmatic bulk operations — all migrations depend on the import/export wizard or direct database access.
  • Reporting and analytics are weak without paid add-ons, and built-in charts are limited compared to modern SaaS platforms.
  • UI design is described as dated by multiple reviewers, with infrequent visual updates to the default theme.
  • Community-only support for self-hosted deployments means no SLA or guaranteed response time for issues.
  • Security vulnerabilities (CVE-2024-5314, CVE-2024-5315) in version 9.0.1 with no immediate patch reported.

Complexity grading

How hard is this migration?

Standard ERP migration. 2 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Epicor Prophet 21 and Dolibarr ERP.

  • Object compatibility

    B

    2 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Epicor Prophet 21: Not publicly documented by Epicor; third-party connector rate limits vary by integration layer.

  • Data volume sensitivity

    B

    Epicor Prophet 21 doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Epicor Prophet 21 to Dolibarr ERP migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Epicor Prophet 21 to Dolibarr ERP data migrations

Answers to the questions buyers ask most during Epicor Prophet 21 to Dolibarr ERP migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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 consultation

Small deployments under 10,000 items, 2,000 customers, and no multi-warehouse or lot/serial requirements complete in three to six weeks. Mid-market deployments with open AP/AR invoice sequences, lot/serial tracking across multiple warehouses, and third-party bolt-on integrations requiring explicit identification and re-implementation planning move to eight to fourteen weeks. Timeline depends heavily on data profiling and cleansing: P21 environments with years of inconsistent data entry require more pre-migration cleanup before ETL can proceed.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Epicor Prophet 21.
Land in Dolibarr ERP, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day