ERP migration

Migrate from Brightpearl to Dolibarr ERP

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

Brightpearl logo

Brightpearl

Source

Dolibarr ERP

Destination

Dolibarr ERP logo

Compatibility

67%

8 of 12

objects map 1:1 between Brightpearl and Dolibarr ERP.

Complexity

BStandard

Timeline

4-6 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Brightpearl to Dolibarr is a structural migration from a Sage-backed retail OS to an open-source modular ERP and CRM. Brightpearl organises data around Contacts (unified customers and vendors), Products with four-level Locations (Aisle / Bay / Shelf / Bin) grouped under Zones, and a full set of Order documents backed by a real-time accounting engine. Dolibarr uses a modular architecture where you enable only the features you need — Third Parties (contacts), Products/Services, Stock, Invoicing, Orders, and the Accountancy module. We resolve the location hierarchy, price list structures, and Chart of Accounts mapping before migration, and we flag Brightpearl's Automation rules as items requiring manual rebuild in Dolibarr's Workflow module post-migration. Brightpearl's undocumented API rate limits and its 36-hour order download recovery window are the two highest-risk operational constraints we manage during cutover sequencing.

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

Brightpearl logo

Brightpearl

What's pushing teams away

  • Sales teams report that core features such as bulk pricing updates, payment gateway integration and product syncing to connected storefronts did not work as described during implementation, leading to disputes over prepaid contracts.
  • System errors and performance degradation — with some warehouse and sales teams experiencing delays of up to five minutes — disrupt fulfilment throughput during peak order periods.
  • Discovery and demo practices have been criticised: customers report being asked to commit full payment upfront before receiving a live trial, which limits recourse when promised capabilities are absent or misrepresented.
  • Brightpearl's development pace has been flagged by long-term users, who note that maintaining competitive feature parity requires increasing investment in third-party connectors and integrations.

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

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

Brightpearl

Contact (Customers and Suppliers)

maps to

Dolibarr ERP

Third Party (Societe)

1:1
Fully supported

Brightpearl stores both customers and vendors as Contact records differentiated by a contact role flag. We split these into Dolibarr Societe records with the Tiers client (customer) and Tiers fournisseur (supplier) flags set accordingly. Each Societe gets the contact's primary address, email, phone, and any PCF_* custom fields mapped to Dolibarr ExtraFields on the Societe object. Contacts without company affiliation become Dolibarr Contact records linked to the parent Societe via llx_element_contact. The Brightpearl contact's owner assignment maps to a Dolibarr User reference if the recipient environment has the User module enabled.

Brightpearl

Product (Items and Services)

maps to

Dolibarr ERP

Product (Product/Services)

1:1
Fully supported

Brightpearl Products map directly to Dolibarr Products. We preserve SKU as ref, product name as label, product type as fk_product_type (0 for goods, 1 for services), and the sales price as price. PCF_* custom fields migrate to Dolibarr ExtraFields on the Product object. Multiple Brightpearl price lists per product require a price list mapping strategy: if the customer uses two to three price lists, we create corresponding Dolibarr Customer Specific Prices on each Societe; for complex multi-list structures, we document the full mapping for manual configuration post-migration.

Brightpearl

Warehouse Location (Aisle/Bay/Shelf/Bin)

maps to

Dolibarr ERP

Warehouse (Stock/Entrepot)

lossy
Fully supported

Brightpearl's four-level location hierarchy (Aisle / Bay / Shelf / Bin) under Zones has no direct Dolibarr equivalent. Dolibarr's Entrepot object represents a single warehouse without nested location sub-levels. We flatten the hierarchy into a Dolibarr Warehouse label that encodes the full path (e.g., 'Zone-A / Aisle-03 / Bay-B / Shelf-02 / Bin-07') as the Entrepot description. Stock quantities transfer as on-hand totals per product per location into Dolibarr's stock product批次 (stock product lines). Customers requiring granular pick-location management document this as a post-migration configuration of a third-party Dolibarr warehouse add-on.

Brightpearl

Zone

maps to

Dolibarr ERP

Warehouse (Entrepot)

1:many
Fully supported

Brightpearl Zones group multiple locations. Where Brightpearl has Zones, we create multiple Dolibarr Entrepot records (one per physical location) and annotate the zone affiliation in the Entrepot description field. If the customer uses only one physical warehouse with zone-based internal areas, we create a single Entrepot and document the zone-to-area mapping for the customer's warehouse management workflow configuration.

Brightpearl

Sales Order

maps to

Dolibarr ERP

Customer Order (CommandeClient)

1:1
Fully supported

Brightpearl Sales Orders map to Dolibarr CommandeClient. We preserve order number, order date, customer reference (linked to the mapped Societe), line items with quantities and prices, discount values, and order status. Brightpearl's order-level owner assignment maps to Dolibarr's fk_user_author on the order header. Orders in pending or draft status migrate as draft Dolibarr orders; orders in confirmed or shipped status migrate as validated orders.

Brightpearl

Purchase Order

maps to

Dolibarr ERP

Supplier Order (CommandeFournisseur)

1:1
Fully supported

Brightpearl Purchase Orders map to Dolibarr CommandeFournisseur. We preserve PO number, vendor reference (mapped to the corresponding Dolibarr Societe with Tiers fournisseur set), expected delivery date, line items with quantities and costs, and received quantities. If Brightpearl tracks partial receipts, we create multiple Dolibarr product reception lines to match.

Brightpearl

Invoice

maps to

Dolibarr ERP

Invoice (Facture)

1:1
Fully supported

Brightpearl invoices map to Dolibarr Facture. We preserve invoice number, invoice date, due date, customer reference, line items with prices and VAT, discount values, and payment status. Brightpearl's embedded accounting data (debit account, credit account) maps to the corresponding Dolibarr accounting account entries in the Accountancy module. Paid invoices migrate as validated Factures with payment lines; unpaid invoices migrate as open Factures.

Brightpearl

Credit Note

maps to

Dolibarr ERP

Credit Note (Facture - Type 'AC')

1:1
Fully supported

Brightpearl credit notes map to Dolibarr Facture with type set to AC (avoir/correction). We preserve the original invoice reference in the Facture's linked invoice field, the credit note date, line items with corrected prices or quantities, and any refund amount. The accounting entries reverse the original invoice postings using the configured reversal accounts.

Brightpearl

Price List

maps to

Dolibarr ERP

Customer Specific Prices (PrixSpeciaux)

1:many
Fully supported

Brightpearl supports multiple price lists per product. In Dolibarr, customer-specific pricing is managed via PrixSpeciaux attached to a Societe. We map each Brightpearl price list to a Dolibarr price level group or individual Societe pricing. For Brightpearl price lists not tied to a specific customer, we create Dolibarr Customer Categories with the corresponding price rules. Price list logic (volume breaks, quantity thresholds) is documented for manual Dolibarr configuration if the customer uses complex pricing tiers.

Brightpearl

Chart of Accounts

maps to

Dolibarr ERP

Chart of Accounts (Plan de compte)

lossy
Fully supported

Brightpearl's Chart of Accounts with account codes maps to Dolibarr's Plan de compte. We export the full account code list from Brightpearl and create corresponding Dolibarr accounting account records with the same account code, label, and account type (court-terme, long-terme, charge, produit). Account type mapping aligns Brightpearl's account classification with Dolibarr's account class (actif, passif, charge, produit). If Dolibarr's Accountancy module uses a standard French PCG structure, we map Brightpearl accounts to the nearest PCG equivalent and flag any non-standard Brightpearl accounts for the customer's accountant to validate.

Brightpearl

Inventory Summary

maps to

Dolibarr ERP

Stock (Stock/Product)

1:1
Fully supported

Brightpearl inventory summary (total cost value per SKU) and inventory detail (per-warehouse, per-location stock levels) map to Dolibarr Stock records. We create a Stock Entrepot for each Brightpearl warehouse or zone, then populate product stock quantities using Dolibarr's Stock Movement records. The cost value from Brightpearl (realtime_stock_valuation) maps to Dolibarr's PMP (Prix Moyen Pondere) if the customer uses average cost valuation, or to a custom ExtraField if they use standard cost.

Brightpearl

Owner (Staff Member)

maps to

Dolibarr ERP

User (Utilisateur)

1:1
Fully supported

Brightpearl assigns a staff member as Owner of Contact and auto-assigns orders to the contact owner. We extract the Brightpearl user roster and match by email against the Dolibarr User table. Any Brightpearl Owner without a matching Dolibarr User is held in a reconciliation queue for the customer's admin to provision before record import. Dolibarr's User module must be enabled to support owner assignments; if disabled, owner references are stored as a text ExtraField.

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.

Brightpearl logo

Brightpearl gotchas

High

Brightpearl API rate limits are undocumented

High

Pending order download has a 36-hour recovery window

Medium

Country names must match exact localisation strings

Medium

Automation rules can execute in locked accounting periods

Low

Placeholder contacts require valid formatted data

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

  • Brightpearl stores data in an uncommon proprietary schema

    Multiple Software Advice reviewers note that Brightpearl keeps its data in an uncommon way that makes data migration complex. Brightpearl does not publish its full data schema publicly, and its API uses internal object IDs that require careful cross-referencing to resolve foreign key relationships. We perform a dry-run extraction during scoping to map the actual data layout before designing the migration transform. We do not assume a flat CSV export is sufficient; the migration pipeline must account for nested relationships, role flags, and PCF_* custom field storage that are not exposed in Brightpearl's standard export views.

  • Brightpearl API rate limits are undocumented

    Brightpearl does not publicly publish API rate limits or per-organisation request quotas. During migration scoping we perform a dry-run extraction to measure throttling behaviour before committing to a production export schedule. We implement exponential backoff on 429 responses and paginate all list endpoints conservatively. Without this measurement step, large inventory and order exports can trigger throttling that delays the export window and risks breaching the 36-hour pending order download recovery window.

  • 36-hour order download recovery window at cutover

    Brightpearl's nightly reconciliation process looks back 36 hours for pending orders. After that window closes, any unprocessed orders must be manually entered. We flag all orders created within 72 hours of migration cutover as high-risk and recommend running the export before that window expires. During the migration window, Brightpearl writes are frozen and a delta export runs at the moment of cutover to capture any final orders created during the transition. We document any orders that fall outside the recovery window for manual re-entry post-migration.

  • Dolibarr ExtraFields schema must be created before record import

    Brightpearl PCF-prefixed custom fields have no automatic Dolibarr equivalent. We must create the Dolibarr ExtraFields schema (via llx_extrafields table entries) before importing any records that contain custom field data. This includes defining the field type (varchar, int, datetime, select, checkbox), the object it attaches to (ThirdParty, Product, Order, etc.), and any picklist options. If ExtraFields are not created in advance, the import will silently drop or truncate custom field values. We document every PCF field discovered during scoping and create the full ExtraFields schema in a pre-migration setup phase.

  • Automation rules do not migrate and have no direct Dolibarr equivalent

    Brightpearl Automation rules are evaluated even within locked accounting periods if the staff member who locked the period created the rule. These rules handle order routing, status updates, and post-purchase triggers. Dolibarr has no direct equivalent for rule-based conditional automation across the order lifecycle. We audit all active Brightpearl Automation rules during discovery and deliver a written inventory with recommended Dolibarr module equivalents (Dolibarr's Triggers, Actions, or third-party workflow add-ons). The customer's admin configures post-migration automations manually.

Migration approach

Six steps for a successful Brightpearl to Dolibarr ERP data migration

  1. Discovery and data audit

    We audit the source Brightpearl environment across all active objects: Contact count and role distribution, Product count with price list complexity, warehouse and location hierarchy depth, order volumes by status, invoice and credit note counts, Chart of Accounts size, and active Automation rules. We perform a dry-run API extraction to measure rate limit behaviour and identify undocumented schema dependencies. We also assess the destination Dolibarr environment: which modules are enabled (Third Parties, Products, Stock, Invoicing, Orders, Accountancy), which Dolibarr edition is installed (community or paid), and whether the server environment (PHP version, MySQL version) meets requirements for the import pipeline.

  2. Schema design and ExtraFields creation

    We design the Dolibarr destination schema before any data import. This includes creating ExtraFields for every Brightpearl PCF_* custom field discovered during discovery, mapping Brightpearl account codes to Dolibarr accounting plan entries, defining the multi-warehouse structure (one Entrepot per Brightpearl location, with zone encoding in the label), and creating Customer Categories for Brightpearl price list mapping. We also configure Dolibarr's stock valuation method (FIFO, PMP, or standard cost) to match the customer's Brightpearl inventory accounting approach. Schema changes are validated in a pre-production Dolibarr instance before production deployment.

  3. Owner and user reconciliation

    We extract every distinct Brightpearl Owner referenced on Contact, Order, and Invoice records and match by email against the Dolibarr User table. Owners without a matching Dolibarr User go to a reconciliation queue. The customer's Dolibarr admin provisions any missing users (with appropriate Dolibarr rights profiles) before record import resumes. If the Dolibarr User module is not enabled, we agree on an alternative owner-field strategy (ExtraField or note) during this step.

  4. Staged migration in dependency order

    We run production migration in record-dependency order: Third Parties (Societe records, with customer and supplier flags set), Products (with ExtraFields and price lists), Warehouses (Entrepot records with zone-encoding), Stock levels (Stock Movement records populating on-hand quantities), Customer Orders, Supplier Orders, Invoices, and Credit Notes. Accounting Chart of Accounts entries are verified before any financial document import. Each phase emits a row-count reconciliation report showing records in, errors, skipped, and duplicates before the next phase begins.

  5. Cutover and delta export

    We freeze Brightpearl writes during cutover. A final delta export captures any orders, invoices, or contacts created or modified during the migration window. We close the Brightpearl export connection and run the delta import into Dolibarr, reconciling record counts against the pre-cutover baseline. We flag any orders that fall outside Brightpearl's 36-hour order recovery window for manual re-entry. Dolibarr is enabled as the system of record once the delta reconciliation passes.

  6. Validation, handoff, and Automation inventory delivery

    We deliver a migration completion report with record counts per object, a list of any records skipped or requiring manual review, and a reconciliation summary. We deliver the written Automation rules inventory documenting every active Brightpearl Automation rule with its trigger, conditions, actions, and a recommended Dolibarr configuration approach. We support a one-week hypercare window to resolve any reconciliation issues raised by the customer's team. We do not rebuild Brightpearl Automation rules as Dolibarr workflows inside the migration scope; that is a separate configuration engagement.

Platform deep dives

Context on both ends of the pair

Brightpearl logo

Brightpearl

Source

Strengths

  • Unified platform spanning inventory, orders, CRM, WMS and accounting without requiring third-party integrations for core financials.
  • Omnichannel order management with real-time channel synchronisation across Shopify, BigCommerce, Amazon and EDI.
  • Built-in automation rules engine for order routing, status updates and post-purchase triggers.
  • Multi-warehouse and zone-based location management with guided picking routes for warehouse efficiency.
  • Sage backing provides a mature, audit-compliant accounting engine with real-time ledger updates.

Weaknesses

  • API rate limits are not publicly documented, requiring careful pagination and retry logic during large exports.
  • System performance can degrade under load, with reported errors causing delays of several minutes for warehouse and sales teams.
  • Pre-sales demo practices have been criticised, with customers reporting they were required to pay upfront before validating capabilities against live data.
  • Feature development pace lags behind faster-moving competitors, often requiring third-party connector investment to maintain integrations.
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. All 8 core objects map 1:1 between Brightpearl and Dolibarr ERP.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Brightpearl and Dolibarr ERP.

  • Object compatibility

    A

    All 8 core objects map 1:1 between Brightpearl and Dolibarr ERP.

  • 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

    Brightpearl: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

Walk through your Brightpearl 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 four and six weeks for accounts under 15,000 contacts, 5,000 products, and 3,000 orders with no complex custom fields. Migrations with large inventory histories (over 50,000 stock ledger rows), multiple warehouse zones, extensive PCF custom field usage, or Chart of Accounts structures exceeding 200 accounts move to ten to fourteen weeks because of location hierarchy flattening, ExtraField schema creation, and multi-phase account reconciliation.

Adjacent paths

Related migrations to explore

Ready when you are

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