ERP migration

Migrate from Opto to Dolibarr ERP

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

Opto logo

Opto

Source

Dolibarr ERP

Destination

Dolibarr ERP logo

Compatibility

75%

9 of 12

objects map 1:1 between Opto and Dolibarr ERP.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Opto Enterprise to Dolibarr is an inventory-first migration that requires CSV-based data extraction from Opto since no public REST API exists. We extract Items with SKU, reorder point, and supplier cost; map Opto Customers and Vendors to Dolibarr's Third Party object using a type flag; transfer stock quantities to Dolibarr Warehouses; and move open Purchase Orders as Supplier Orders or convert them to Approved Supplier Orders depending on the destination Dolibarr edition. Reorder Rules are configuration data rather than transactional records — we export them as a structured reference table and document the manual re-entry steps so the Dolibarr admin can rebuild them through Dolibarr's product minimum-stock rules. Custom fields from Opto Items and Customers migrate as Dolibarr Extra Fields, which we pre-create in the destination before any product data loads. We do not migrate workflows, eCommerce connector configurations, or reporting templates as code; these require manual rebuild in Dolibarr's module system post-migration.

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

Opto logo

Opto

What's pushing teams away

  • Lack of an exposed REST API limits automation and third-party integrations beyond the pre-built connectors.
  • Reporting and analytics lag behind dedicated BI tools, pushing power users toward platforms with richer dashboards.
  • Scalability concerns arise when transaction volume grows beyond mid-size, prompting a move to full-featured ERPs.

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

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

Opto

Item

maps to

Dolibarr ERP

Product

1:1
Fully supported

Opto Items (SKU, name, description, unit cost, reorder point) map directly to Dolibarr Products. The product type (stockable, service, consumable) is set based on Opto's item classification. Unit cost from Opto becomes the Best buying price (PMP) in Dolibarr. We pre-create Dolibarr Extra Fields for any Opto custom Item properties before product import so that custom values populate correctly during the data load.

Opto

Customer

maps to

Dolibarr ERP

Third Party (type=Customer)

1:1
Fully supported

Opto Customers map to Dolibarr Third Parties with the Third party type set to Customer. Contact name, email, phone, and billing address transfer directly. Customer-specific pricing tiers from Opto map to Dolibarr's price per customer configuration or are documented as manual reconfiguration if the pricing model is too granular for the standard field structure.

Opto

Vendor

maps to

Dolibarr ERP

Third Party (type=Supplier)

1:1
Fully supported

Opto Vendors map to Dolibarr Third Parties with the Third party type set to Supplier. Supplier name, contact, and payment terms transfer directly. Any lead-time data associated with Opto Items for a given Vendor maps to Dolibarr's Supplier catalog entries (ProductFournisseurPrice) so that buying prices are linked per supplier.

Opto

Stock Location

maps to

Dolibarr ERP

Warehouse

1:1
Fully supported

Opto multi-location inventory (named bins or warehouses) maps to Dolibarr Warehouses. Each Opto Stock Location becomes a separate Dolibarr Warehouse with its address and description. Stock quantities per Item per location transfer to Dolibarr's Product Stock entries linked to the corresponding Warehouse. If Opto uses a hierarchical location model, we flatten it to the warehouse level and preserve the bin or sub-location name as a label in the Dolibarr Warehouse description field.

Opto

Purchase Order

maps to

Dolibarr ERP

Supplier Order

1:1
Fully supported

Opto Purchase Orders (Vendor linked to Items with quantities and expected delivery dates) map to Dolibarr Supplier Orders. Open Purchase Orders migrate as draft or validated Supplier Orders based on their status in Opto. Historical closed Purchase Orders migrate as Supplier Order records with a closed status for audit trail purposes. If the destination Dolibarr edition does not have the Supplier Orders module enabled, we convert them to Approved Supplier Orders or documented supplier commitments per the customer's module configuration.

Opto

Invoice (Accounts Receivable)

maps to

Dolibarr ERP

Customer Invoice

1:1
Fully supported

Opto open and historical customer invoices migrate to Dolibarr Customer Invoices with line items, amounts, and payment status preserved. We separate open invoices from historical records during extraction so open invoices can be re-created as open items in Dolibarr while historical invoices are imported as closed or paid records for reporting continuity. Payment reconciliation against bank statements requires manual review post-migration if the customer's Dolibarr accounting module is not active.

Opto

Invoice (Accounts Payable)

maps to

Dolibarr ERP

Supplier Bill

1:1
Fully supported

Opto vendor invoices (AP side) migrate to Dolibarr Supplier Bills using the same separation logic as AR invoices. Open vendor invoices are imported as unpaid Supplier Bills; historical records are imported with their settled status. The customer's accounts payable team reviews open AP items post-migration to confirm that payment terms and outstanding balances match the source system before processing through Dolibarr's payment workflow.

Opto

Reorder Rule

maps to

Dolibarr ERP

Minimum Stock Rule

lossy
Fully supported

Opto Reorder Rules define per-Item minimum thresholds and reorder quantities — they are account-level configuration, not transactional records. We export them as a structured CSV with Item SKU, minimum quantity, and reorder quantity. Reconfiguration in Dolibarr requires manual entry through the Product > Minimum Stock Rules menu for each product. We provide the complete rule set in the mapping worksheet so the Dolibarr admin enters each rule during the setup phase before go-live.

Opto

Barcode

maps to

Dolibarr ERP

Barcode field on Product

1:1
Fully supported

Opto barcode-to-Item associations transfer to Dolibarr's barcode field on the Product record. We extract the barcode value from Opto's item export and populate the Barcode field in Dolibarr. If Opto uses a barcode format that requires a prefix (e.g., internal vs. GS1), we note this in the mapping worksheet and the Dolibarr admin configures the barcode reader module accordingly.

Opto

Custom Fields (Item)

maps to

Dolibarr ERP

Extra Fields (Product)

lossy
Fully supported

Opto custom fields on Items (properties beyond SKU, name, cost, reorder point) map to Dolibarr Extra Fields on the Product object. We extract the full custom field schema during discovery, pre-create each Extra Field in the destination Dolibarr instance before product import, and then populate values during the product load. Field types are matched as closely as possible (text, numeric, date, dropdown) to Dolibarr's Extra Field type options.

Opto

Custom Fields (Customer)

maps to

Dolibarr ERP

Extra Fields (Third Party)

lossy
Fully supported

Opto custom fields on Customer records map to Dolibarr Extra Fields on the Third Party object. We follow the same pre-creation and population pattern as for Item custom fields. Any customer-specific pricing tier fields that cannot map to Dolibarr's standard price-per-customer structure are documented for manual evaluation and rebuild in Dolibarr's pricing rules.

Opto

Sales Order

maps to

Dolibarr ERP

Customer Order

1:1
Fully supported

If Opto tracks customer sales orders (not just Purchase Orders to vendors), these map to Dolibarr Customer Orders. Open orders migrate as draft or validated Customer Orders; completed orders migrate as closed records. Order-to-invoice linkage is preserved by mapping the Opto order number to the Dolibarr ref customer field so that invoice matching against orders is possible post-migration.

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.

Opto logo

Opto gotchas

High

No documented export API for programmatic data pull

Medium

Reorder Rules are configuration data, not records

Medium

Custom field schema varies per account

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

  • Opto has no public REST API — migrations depend on CSV export

    Opto Enterprise does not publish a public REST API in available documentation, meaning all migrations must use the platform's native data export function or manual downloads. We map the export format to the Dolibarr schema and chunk large CSV files into import-ready batches. Customers should validate their export scope early in discovery — export limits, maximum row counts per file, and any filtered export views — to avoid discovering data gaps during cutover. Dolibarr's native import wizard accepts CSV flat files directly, which aligns well with Opto's export format, but Excel exports from Opto must be converted to CSV before import per Dolibarr's performance recommendations.

  • Reorder Rules are configuration data that require manual rebuild in Dolibarr

    Opto Reorder Rules are account-level per-Item settings rather than transactional records. We export them as a structured reference table but they cannot be imported as active automation rules in Dolibarr. The customer must manually configure minimum stock rules through Dolibarr's Product module for each Item after migration. We document the full rule set in the mapping worksheet with Item SKU, minimum quantity, reorder quantity, and preferred vendor so that the admin can re-enter each rule systematically. Skipping this step means automated reorder alerts will not function post-migration.

  • Dolibarr's per-table import wizard requires strict schema alignment

    Dolibarr's native import tool loads data one table at a time with predefined import profiles. This means Items must import before stock quantities, Third Parties before Customer Orders, and Products before Supplier Orders. We sequence the migration in strict dependency order to satisfy foreign key requirements. If custom fields from Opto do not have a matching Extra Field pre-created in Dolibarr, the import skips those columns silently. We prevent this by extracting the full custom-field definition during discovery and pre-creating all Dolibarr Extra Fields before any data import begins. Third-party Dolibarr modules that extend the import profiles may require updates after Dolibarr version upgrades per Dolibarr's release note recommendations.

  • Open invoice reconciliation requires manual post-migration review

    Opto open invoices and supplier bills migrate to Dolibarr as open items, but payment reconciliation against the customer's bank account data requires manual review. If Dolibarr's accounting module is active, the customer must match each open invoice to its corresponding bank transaction in Dolibarr's bank reconciliation view. We separate open from historical records during extraction and flag the open items in the mapping worksheet so the accounting team knows exactly which records require reconciliation. Historical invoices that have already been paid do not require this step — they migrate with their settled status for reporting continuity.

  • Custom field schema varies per Opto account and must be inventoried during discovery

    Opto accounts frequently add custom fields to Items and Customers that have no standard equivalent in Dolibarr's base schema. We extract the complete custom-field definition during discovery, map each to a Dolibarr Extra Field (pre-created before import), or flag it for the customer to evaluate post-migration. Custom fields are never silently dropped — every Opto custom field appears in the mapping worksheet with either a mapped destination or a documented gap. Dolibarr Extra Fields support text, numeric, date, dropdown, and checkbox types; complex custom field logic (formula fields, conditional visibility) cannot migrate and requires a Dolibarr developer or module to replicate.

Migration approach

Six steps for a successful Opto to Dolibarr ERP data migration

  1. Discovery and export scope validation

    We audit the Opto account to identify all active modules (Items, Customers, Vendors, Purchase Orders, Stock Locations, Invoices), the custom field schema on Items and Customers, and the export capability available in the account. We extract sample exports from each module and validate that column headers, data types, and row counts match expectations. Any export limitations (filtered views, maximum rows, missing fields) are flagged before we design the migration schema. We also confirm which Dolibarr modules are active or required in the destination instance so that we can adjust the mapping for the correct target objects.

  2. Schema design and Extra Field pre-creation in Dolibarr

    We design the destination Dolibarr schema by mapping each Opto object to its Dolibarr equivalent and pre-creating all required Dolibarr Extra Fields for custom Item and Customer properties. This includes configuring Dolibarr Warehouses to match Opto Stock Locations, setting product types (stockable, service, consumable) based on Opto's item classification, and preparing the Third Party import profiles with the correct type flags (Customer vs. Supplier). Schema is validated in a DoliCloud or partner-hosted staging instance before production data loads begin.

  3. CSV extraction, transformation, and staging import

    We extract CSV data from Opto for each object in dependency order: Third Parties (Customers and Vendors first), then Products, then Warehouses, then stock quantities, then Purchase Orders, then Invoices. Each CSV is validated for data quality — missing required fields, malformed addresses, duplicate SKUs — and transformed to match the Dolibarr import profile column order. Large files are chunked into batches of 1,000-5,000 rows per Dolibarr's recommended import size. Custom fields are included as additional columns in the product and third-party imports.

  4. Reorder Rule documentation and manual rebuild handoff

    We export Opto Reorder Rules as a structured reference table (Item SKU, minimum quantity, reorder quantity, preferred vendor) and deliver it alongside the mapping worksheet. The customer's Dolibarr admin rebuilds minimum stock rules in Dolibarr's Product module for each Item during the setup phase. We document the equivalent Dolibarr menu path, required fields, and any vendor-specific price configuration so that the admin can complete this work independently before go-live. We do not automate reorder rule entry because Dolibarr's rule model is UI-driven.

  5. Production import, row-count reconciliation, and delta validation

    We run the production import in strict dependency order: Third Parties, Products with Extra Fields, Warehouses, stock quantities, Purchase Orders, and open Invoices. Each phase emits a row-count reconciliation report comparing Opto source counts to Dolibarr destination counts. Any records rejected during import are logged with the reason (missing required field, invalid format, duplicate key) and corrected in the source CSV before re-import. After all primary objects are loaded, we run a delta check against any records modified in Opto during the migration window and import the delta set before cutover.

  6. Cutover, open invoice handoff, and post-migration support

    We freeze Opto writes during cutover, run a final delta import of any modified records, and confirm that Dolibarr is the active system of record. Open invoices and supplier bills are flagged in the mapping worksheet with their outstanding amounts so that the customer's accounting team can complete bank reconciliation in Dolibarr post-migration. We deliver the complete mapping worksheet, the Reorder Rule reference table, and a record-count summary for each object. We support a five-business-day hypercare window to resolve any data quality issues reported by the customer's team. We do not rebuild Opto eCommerce connector configurations, barcode label templates, or reorder alert email templates in Dolibarr — these require manual rebuild using Dolibarr's document template system.

Platform deep dives

Context on both ends of the pair

Opto logo

Opto

Source

Strengths

  • Barcode-driven stock tracking with automated reorder alerts.
  • Pre-built eCommerce and accounting platform connectors.
  • Simple per-seat or tiered pricing structure for small businesses.

Weaknesses

  • No publicly documented REST API limits programmatic data extraction and migration tooling.
  • Limited custom reporting and analytics compared to standalone BI platforms.
  • Maturity and feature depth trail behind established ERP players at larger scale.
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. 1 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 Opto and Dolibarr ERP.

  • Object compatibility

    B

    1 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

    Opto: Not publicly documented — typical SaaS limits assumed and confirmed during scoping.

  • Data volume sensitivity

    A

    Opto exposes a bulk API — large-volume migrations stream efficiently.

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Straightforward migrations under 10,000 Items, 2,000 Customers, and 500 Vendors with no complex custom field schemas typically complete in three to five weeks. Migrations with multi-warehouse stock structures, open Purchase Order histories, extensive custom fields on Items or Customers, or open invoice reconciliation move to six to ten weeks because of schema mapping work, Extra Field pre-creation, and delta validation across multiple record types. The Opto CSV export scope discovery adds approximately one week to the timeline compared to API-based migrations.

Adjacent paths

Related migrations to explore

Ready when you are

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