ERP migration

Migrate from EBMS to Dolibarr ERP

Field-level mapping, validation, and rollback between EBMS and Dolibarr ERP. We move data and schema; workflows are rebuilt natively in Dolibarr ERP.

EBMS logo

EBMS

Source

Dolibarr ERP

Destination

Dolibarr ERP logo

Compatibility

83%

10 of 12

objects map 1:1 between EBMS and Dolibarr ERP.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from EBMS to Dolibarr means leaving a Windows desktop ERP with no public REST API for an open-source, web-hosted ERP with a modular plugin architecture and a documented REST API. EBMS holds data in a report-export model — there is no bulk API endpoint to call — so every migration begins with enumerating the custom fields in the EBMS database, extending report layouts to include them, and exporting structured CSVs. Dolibarr's import module accepts flat-file ingestion for ThirdParties, Products, Orders, Invoices, and contacts, but lookups between records require parent records to land first. We sequence the migration so that ThirdParties (from EBMS Customers and Vendors) arrive before Orders, and Products arrive before any Order Line Items. Dolibarr's extrafields system accommodates EBMS custom fields as named columns on each object. We do not migrate EBMS Report definitions, Workflow configurations, eCommerce portal code, or support subscription terms; these are configuration artifacts that require manual rebuild in Dolibarr or a Dolibarr-certified partner.

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

EBMS logo

EBMS

What's pushing teams away

  • EBMS is a Windows desktop application requiring on-premise or terminal server infrastructure, which conflicts with cloud-first IT strategies.
  • Limited public API and integration capabilities make real-time sync with modern SaaS tools difficult to maintain.
  • The user interface and workflow design reflect older ERP paradigms, creating friction for teams accustomed to modern UX conventions.
  • Support subscription costs add ongoing expense, and discontinuing it cuts access to tax table updates and software patches — a hard cliff for compliance-dependent businesses.
  • eCommerce tiers cap annual online sales volumes, forcing upgrades as the business grows rather than scaling smoothly.

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 EBMS objects map to Dolibarr ERP

Each row shows how a EBMS 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.

EBMS

Customer

maps to

Dolibarr ERP

ThirdParty (ThirdParties)

1:1
Fully supported

EBMS Customers (stored as Documents within a Customers table) map to Dolibarr ThirdParty records. Standard fields — company name, billing address, shipping address, contact name, phone, email, payment terms — export via the Customer Address for Mail Merge report. Custom fields added via EBMS Customization Designer require SQL enumeration during data profiling and map to Dolibarr Extrafields columns on the ThirdParty object. We enable Dolibarr's ThirdParty module with the IsCustomer flag set on all migrated records. Vendor and Customer records in EBMS may share the same table with a type flag; we split them into separate ThirdParty imports with the appropriate IsCustomer or IsSupplier flag.

EBMS

Vendor

maps to

Dolibarr ERP

ThirdParty (ThirdParties)

1:1
Fully supported

EBMS Vendors export via vendor reports and map to Dolibarr ThirdParty records with IsSupplier flag set. Purchasing terms (NET 30, NET 60, prepayment) map to the Dolibarr supplier payment term fields. Custom fields on vendor records require explicit mapping to Dolibarr Extrafields on the ThirdParty object with supplier type. If EBMS stores vendor contacts separately from vendor header records, we flatten them into a single ThirdParty with the primary contact data in the header and additional contacts loaded as Dolibarr contacts linked via the Contact object.

EBMS

Product / Inventory Item

maps to

Dolibarr ERP

Product (Products/Stock)

1:1
Fully supported

EBMS Products defined in the inventory module — with pricing, stock levels, units of measure, and serial numbers — export via inventory reports and map to Dolibarr Product records. We map the EBMS product type (stockable, service, assembly) to Dolibarr's pcmof_prod_type field. Product photos migrate as files attached to the Dolibarr Product record. If EBMS uses multi-level product variants or Bill of Materials assemblies, we map to Dolibarr's Product with the BOM module enabled; otherwise flat product records import directly. Price levels (price tiers per customer type) in EBMS map to Dolibarr Customer Specific Prices or a price list configuration.

EBMS

Sales Order

maps to

Dolibarr ERP

Order (Orders)

1:1
Fully supported

EBMS Sales Order headers and line items export via order reports. The EBMS order status (Open, Closed, Cancelled) maps to Dolibarr ORDER_CLASSIFIED_* status values. Line items resolve the product reference to Dolibarr Product IDs at migration time using a lookup table built from the product import phase. Unit price, quantity, discount percentage, and tax rate migrate directly. Payment terms on the order header pull from the linked Customer's terms. We preserve the original EBMS order number as a custom field on the Dolibarr Order for invoice reconciliation.

EBMS

Purchase Order

maps to

Dolibarr ERP

Supplier Order (CommandeFournisseur)

1:1
Fully supported

EBMS Purchase Orders export via PO reports and map to Dolibarr Supplier Order records. Custom fields on PO headers or line items (added via EBMS Customization Designer) require explicit mapping to Dolibarr Extrafields on the supplier order and order line objects. The vendor reference on the EBMS PO resolves to the Dolibarr ThirdParty supplier ID via the vendor mapping phase. EBMS PO statuses (Open, Received, Closed) map to Dolibarr RECEIVED, DRAFT, and CANCELLED status values.

EBMS

Invoice / AR

maps to

Dolibarr ERP

Invoice (Factures)

1:1
Fully supported

EBMS Invoices (open and historical) export via AR aging and invoice reports. We scope invoice exports by a defined date range to avoid mid-period splits between EBMS and Dolibarr. Invoice header fields (invoice number, date, due date, amount, balance) map to Dolibarr Facture fields. Invoice lines map to FactureLigne with product reference resolution via the product lookup table. Payment history — partial payments, credit memos — requires exporting payment records separately and applying them as Dolibarr payments linked to the invoice. Historical paid invoices migrate with status FACTURE_PAYED; open invoices retain FACTURE_OPEN.

EBMS

Customer Portal Account

maps to

Dolibarr ERP

ThirdParty + Contact

lossy
Fully supported

EBMS B2B Customer Portal accounts store price levels, payment terms, and login credentials for customer-facing self-service. Dolibarr does not have a native B2B portal module in its core distribution — the Dolibarr member module serves NGOs and associations but not B2B eCommerce portals. We migrate portal account data as ThirdParty records with price level assignments stored as Dolibarr Customer Specific Prices on the Product object. If the customer uses portal-specific custom fields, we map them to Extrafields on ThirdParty and document the portal rebuild as a separate implementation task for a Dolibarr partner.

EBMS

eCommerce Product Catalog

maps to

Dolibarr ERP

Product (Products/Stock)

1:1
Fully supported

EBMS eCommerce tiers synchronize product availability, pricing, photos, and descriptions from the inventory module to the customer-facing website. We export the product data via EBMS inventory reports, preserving all eCommerce-specific fields (long description, product images, category assignments) and load them into Dolibarr Product records. The eCommerce storefront itself does not migrate — Dolibarr has no native storefront module, and WooCommerce, Shopify, or Magento connectors exist as separate integrations. We deliver the product data in Dolibarr's import-ready format so the customer's web team can re-connect to their chosen storefront post-migration.

EBMS

Custom Fields (various entities)

maps to

Dolibarr ERP

Extrafields (various objects)

lossy
Fully supported

EBMS Customization Designer fields added to Customer, Product, Order, Invoice, or Vendor documents require SQL-level enumeration during data profiling since not all custom fields appear in the standard report writer without first adding them to the report layout. We request read-only SQL access to the EBMS database to discover every custom field column, its data type, and the table it belongs on. Each discovered custom field maps to a Dolibarr Extrafields column on the equivalent Dolibarr object. We create the Extrafields schema in Dolibarr before the data import phase begins. Fields created by customization developers whose definitions cannot be edited in the EBMS UI require special handling — we map them by their database column name where a matching Dolibarr field can be created.

EBMS

Contact (Customer-level)

maps to

Dolibarr ERP

Contact

1:1
Fully supported

EBMS stores contact-level information (first name, last name, email, phone, job title) on Customer records and occasionally as separate contact entries linked to customers. Dolibarr uses a dedicated Contact object linked to a ThirdParty via the socid foreign key. We export EBMS contact data from the customer report and load into Dolibarr Contact records with the ThirdParty lookup resolved from the customer mapping phase. Primary contact designation migrates as the contact with the IsPrimary flag set on the Dolibarr Contact.

EBMS

Sales Representative / Owner

maps to

Dolibarr ERP

User

1:1
Fully supported

EBMS tracks which sales representative or user created or owns each order, quote, or customer record. We extract distinct owner values from EBMS reports and match them by name or email to existing Dolibarr User records. If the destination Dolibarr instance has no matching User, we flag the owner as unmapped and hold those records for the customer to provision the User before the migration resumes. User provisioning is a manual step that the customer's Dolibarr admin completes outside the migration workflow.

EBMS

Reports

maps to

Dolibarr ERP

None (configuration artifact)

1:1
Not supported

EBMS Report definitions are a configuration artifact of the EBMS report writer, not a data object. We export the data that EBMS reports reference — Customers, Products, Orders, Invoices — but the report layout definitions, grouping logic, calculated fields, and print templates do not migrate. Dolibarr's reporting module (on the ThirdParty, Product, and Stock modules) provides standard report generation for basic needs. The customer or a Dolibarr-certified consultant rebuilds custom reports in Dolibarr's report writer. We document every EBMS report used in the migration export as part of the data mapping inventory.

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.

EBMS logo

EBMS gotchas

High

No public API forces report-based extraction

Medium

Custom fields require exclusive database access

Medium

eCommerce tier sales-volume caps affect data scoping

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

  • EBMS has no REST API — all extraction is report-based

    EBMS provides no documented public REST or bulk API. All migration extraction proceeds through the built-in report writer and CSV or Excel export. We cannot initiate API calls, set up webhooks, or perform delta syncs against EBMS. We must scope all exports upfront via the report writer, which means any custom fields not yet added to a report layout must be extended before extraction begins. We coordinate with the customer during discovery to identify every relevant EBMS report and extend it with missing standard and custom fields. This pre-migration report extension work adds 3-7 days to the timeline and requires a customer-side EBMS power user or administrator to modify report layouts.

  • Custom fields require SQL enumeration to map completely

    The EBMS Customization Designer adds fields to user-defined tables, but these fields do not always appear in the standard report writer until they are explicitly added to the report layout. Developer-created custom fields whose definitions cannot be edited in the EBMS UI require read-only SQL access to enumerate fully. We request this access during data profiling to discover every custom field column, its data type, and the entity it belongs to. Without SQL access, we rely on what appears in EBMS reports, which may leave gaps in the mapping for fields that are database-only. These gaps surface as missing data in Dolibarr unless we address them in the profiling phase.

  • Dolibarr post-update display issues require cache clearing

    Dolibarr is known in its community forum for post-update UI issues including blank screens, missing icons, broken PDF generation, and menu misbehavior. These issues are not migration-specific but affect the target environment during setup. Before any migration load into a newly installed Dolibarr instance, we confirm the Dolibarr version, clear the /documents/temp/ cache folder, verify PHP version compatibility (Dolibarr requires PHP 7.4 through 8.x), and ensure all third-party modules are temporarily disabled during import. Running the /install/repair.php script after migration corrects any database schema drift introduced by custom field imports.

  • Dolibarr has no native B2B customer portal

    EBMS includes an integrated B2B customer portal with price-level visibility, payment term enforcement, and order history for customer self-service. Dolibarr has no equivalent native portal module — the closest is the Member module designed for NGOs and associations. Businesses migrating away from EBMS that rely on the customer portal for B2B interactions must plan a separate implementation to rebuild that capability, either using Dolibarr's Dolistore portal modules or a third-party portal connected via API. We migrate the portal account data (price tiers, payment terms, login references) as structured data in Dolibarr, but the portal interface itself is not part of the migration scope.

  • Dolibarr database key length limits affect large custom field names

    Dolibarr's database migration scripts have encountered key length errors on certain MySQL/MariaDB configurations when custom field names or foreign key constraints exceed the 767-byte InnoDB index limit. This manifests during migration as DB_ERROR_1071 when attempting to create Extrafields columns with long API names. We mitigate this by using compact, lowercase column names for all Dolibarr Extrafields and verifying the target database's innodb_large_prefix setting before the import phase. If this error occurs, it is resolvable by adjusting the database configuration or truncating the field name, but it requires a brief migration pause to apply the fix.

Migration approach

Six steps for a successful EBMS to Dolibarr ERP data migration

  1. Discovery and report enumeration

    We conduct a discovery call with the customer's EBMS administrator to enumerate every EBMS report used across Customers, Products, Sales Orders, Purchase Orders, Invoices, and Vendors. We request read-only SQL access to the EBMS database to enumerate custom field columns that may not yet appear in reports. We export record counts for each entity and flag any mid-period open invoices or orders that require a date-range boundary decision. We also confirm the eCommerce tier in use and the volume of online transactions to scope the product catalog and order migration separately. The discovery output is a written migration scope document with entity counts, report list, and custom field inventory.

  2. Custom field profiling and report extension

    Using the SQL enumeration from discovery, we build a complete custom field manifest — field name, source table, data type, and the EBMS entity it belongs to. We cross-reference this manifest against the standard EBMS report writer reports and identify any custom fields not yet in a report layout. We coordinate with the customer to extend the relevant EBMS reports to include all unmapped custom fields. This step typically requires an EBMS administrator with report writer access and takes 3-7 business days depending on the number of custom fields and the complexity of the report layouts.

  3. Dolibarr environment provisioning and schema setup

    We provision the destination Dolibarr instance — either self-hosted on a customer-provided server or via DoliCloud — and install the modules required for the migration scope (ThirdParties, Products, Orders, Invoices, Stock, HR if applicable). We create the Dolibarr Extrafields schema to match every enumerated EBMS custom field, using the manifest from the profiling phase. We configure IsCustomer and IsSupplier flags on ThirdParty types, product types (stockable, service, assembly) on Products, and payment term defaults on the Dolibarr setup. We verify PHP version compatibility and run a clean import test with a subset of records before the full migration begins.

  4. Staged export from EBMS and data validation

    We run EBMS report exports in dependency order: ThirdParties (Customers and Vendors separately), then Products, then Sales Orders, then Purchase Orders, then Invoices with payment history, then Customer Portal accounts and contact data. Each export produces a CSV file that we validate for column completeness, encoding issues, and referential integrity (foreign keys that point to unmapped records). We flag any records with broken foreign keys — for example, an Order referencing a Product that was not exported — and return them to the customer for correction before proceeding. This validation step prevents silent data loss during the Dolibarr import phase.

  5. Dolibarr import in dependency order

    We import data into Dolibarr in strict dependency order: ThirdParties first (because Orders and Invoices look up to customers and vendors), then Products (because Order lines look up to products), then Orders, then Purchase Orders, then Invoices, then Contacts, then custom field data via Extrafields. We use Dolibarr's native Import module for flat-file CSV ingestion and the REST API for record updates where batch processing improves throughput. Parent-record lookups are resolved using pre-built ID mapping tables from earlier phases. After each import phase, we emit a row-count reconciliation report comparing the EBMS export count against the Dolibarr inserted count and investigate any variance before proceeding to the next phase.

  6. Cutover, delta sync, and inventory handoff

    We freeze EBMS writes during a defined cutover window, run a final delta export of any records created or modified after the initial export, and load those records into Dolibarr. We deliver a data mapping inventory document listing every EBMS report used, every Dolibarr field populated, and every custom field that required explicit mapping, along with any gaps identified during profiling that could not be resolved from the EBMS report writer. We do not migrate EBMS Report definitions, Workflow configurations, eCommerce portal code, or support subscription terms. We provide a written list of these artifacts with recommended Dolibarr equivalents for the customer's admin or a Dolibarr-certified partner to rebuild. We support a 5-business-day post-cutover reconciliation window to address any record discrepancies identified during user acceptance testing.

Platform deep dives

Context on both ends of the pair

EBMS logo

EBMS

Source

Strengths

  • Unified data model across sales, inventory, accounting, and eCommerce eliminates reconciliation between systems.
  • Customization Designer gives business users control over field extensions without developer intervention.
  • Report-based export framework produces structured output for most core entities.
  • Integrated B2B customer portal with price-level visibility and payment-term enforcement.
  • Healthcare and pharmacy-specific modules available for benefit management and prescription solutions.

Weaknesses

  • No documented public REST API — all integration and migration relies on report exports and CSV files.
  • Windows desktop architecture limits deployment flexibility and remote access compared to cloud-native ERPs.
  • eCommerce module tiers impose annual sales volume caps that trigger forced upgrades.
  • Custom fields created in the database require exclusive access to enumerate fully, complicating data profiling.
  • Support discontinuation within six months resets onboarding to new-client terms at current SaaS rates.
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 EBMS 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

    EBMS: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

Estimate your EBMS 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 EBMS to Dolibarr ERP data migrations

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

Can't find your answer?

Walk through your EBMS to Dolibarr ERP migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations land between three and five weeks for accounts under 10,000 customers, 5,000 products, and 2,000 orders with a manageable custom field count. Migrations with extensive custom fields across multiple EBMS entities, large historical invoice and order counts (over 50,000 lines), or multi-entity EBMS setups requiring separate Dolibarr instances move to six to ten weeks because of the report extension phase, SQL-based custom field enumeration, and multi-phase import validation. The EBMS administrator involvement during the report extension phase is the most common timeline risk.

Adjacent paths

Related migrations to explore

Ready when you are

Move from EBMS.
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