ERP migration
Field-level mapping, validation, and rollback between Circle Commerce and Dolibarr ERP. We move data and schema; workflows are rebuilt natively in Dolibarr ERP.
Circle Commerce
Source
Dolibarr ERP
Destination
Compatibility
7 of 12
objects map 1:1 between Circle Commerce and Dolibarr ERP.
Complexity
BStandard
Timeline
4-6 weeks
Overview
Moving from Circle Commerce to Dolibarr is a schema-normalization migration as much as a data move. CircleHub's unlimited-field model means every customer's schema is unique — there is no standard export template, and every custom attribute defined by the customer must be individually mapped into Dolibarr's structured object model before import. We build that field map during scoping by introspecting the customer's live CircleHub configuration, then write transformation logic that converts Circle's flat custom-field records into Dolibarr's module-based schema (Third Parties for customers, Products for goods, Stock for inventory, Orders for sales). Dolibarr's native import path uses flat files (CSV or Excel) with predefined profiles per module — large catalogs require chunked CSV delivery to avoid memory constraints. Custom reports, KPI definitions, and automations do not migrate; we document the existing report structure and deliver a written list of automations to rebuild in Dolibarr's built-in workflow tools or a third-party module.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Circle Commerce 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.
Circle Commerce
Customer
Dolibarr ERP
Third Party (Societe)
1:1Circle Commerce customer records map to Dolibarr Third Party objects. Circle's customer-specific custom fields (any attributes beyond standard contact fields) are mapped to Dolibarr's Extrafields (custom fields) table via the Module CustomFields configuration. We resolve the customer-company relationship during import: if Circle stores customers as standalone records, they become Dolibarr Third Parties with type=Contact; if customers are company-assigned, they become Dolibarr contacts linked to a parent Third Party with type=Company. All addresses, email, phone, and account-level custom fields migrate as Extrafields into llx_societe_extrafields.
Circle Commerce
Order
Dolibarr ERP
Order (Commande Client)
1:1Circle Commerce order headers and line items map to Dolibarr Customer Order objects. The Circle order number becomes the Dolibarr ref, order status maps to a Dolibarr OrderStatus value (DRAFT, VALIDATED, SHIPPED, CLOSED), and order total and tax amounts map to total_ht, total_tva, and total_ttc. Circle custom order fields migrate as Extrafields. Line items from the Circle order export are written as Dolibarr CommandefDet (order line) records with product reference or description, quantity, unit price, and VAT rate resolved from the field map.
Circle Commerce
Product
Dolibarr ERP
Product (Produit)
1:1Circle Commerce product records map to Dolibarr Product objects. The Circle product name becomes the Dolibarr label, SKU maps to ref, and pricing data maps to cost price (prix de revient) and selling price (prix_vente). Circle's custom product attributes (any customer-defined fields on the product object) are mapped to Dolibarr Extrafields on llx_product_extrafields. We handle the Circle-to-Dolibarr product type mapping: if Circle products are physical goods they become type=0 (Product) in Dolibarr; if they are services they become type=1 (Service). Bundle and kit relationships from Circle are decomposed into Dolibarr product BOM (bill of materials) or handled as grouped line items per the customer's preference.
Circle Commerce
Inventory
Dolibarr ERP
Stock (Stock) + Warehouse (Entrepot)
lossyCircle Commerce channel-specific inventory records (online, BOPIS, warehouse) map to Dolibarr Stock and Entrepot objects. We create Dolibarr warehouses matching Circle's channel definitions (e.g., online-fulfillment, retail-floor, warehouse-A) and write stock quantities as reel (real stock) values per product-warehouse combination. If Circle's inventory is a single pool, we consolidate to one Dolibarr warehouse by default; if channel-level allocation must be preserved, we create multiple warehouses and map quantities accordingly. Stock value (prix考核) is computed from the product cost price at migration time.
Circle Commerce
Shipment
Dolibarr ERP
Shipment (Expedition)
1:1Circle Commerce shipment records with carrier, tracking number, and status map to Dolibarr Expedition objects. The shipment order reference links to the corresponding Dolibarr Order, tracking URL maps to tracking_url, and shipping status maps to expedition status. We extract the carrier name from Circle's shipment export and map it to a Dolibarr carrier configuration or store as a text Extrafield if no matching carrier record exists in Dolibarr. Partial shipments and backorder records are handled as separate Expedition rows linked to the same order.
Circle Commerce
Purchase Order
Dolibarr ERP
Supplier Order (Commande Fournisseur)
1:1Circle Commerce purchase orders map to Dolibarr Supplier Order objects. Vendor name maps to the Dolibarr supplier Third Party (type=Supplier); expected delivery date maps to date_livraison; PO line items map to CommandefournisseurLigne records with product reference, quantity, and buy price. Where vendors exist only as free-text in CircleHub (no structured vendor record), we flag them during discovery and create Dolibarr Third Party records for each unique vendor name before importing the PO lines.
Circle Commerce
Custom Fields
Dolibarr ERP
Extrafields
lossyAll customer-defined custom fields from CircleHub across any object are mapped to Dolibarr Extrafields. During scoping we introspect the customer's live CircleHub schema to identify every custom field (name, data type, object assignment). We then create matching Dolibarr Extrafields using the appropriate field type: varchar for short text, text for long text, int or float for numeric values, datetime for timestamps, select for enumerated values. The Extrafields migration is done before the primary object import so that the custom field columns exist in Dolibarr at insert time. Data type conversion is applied per field (e.g., Circle boolean stored as text 'true'/'false' converted to Dolibarr's integer 0/1).
Circle Commerce
KPIs and Reports
Dolibarr ERP
Report documentation (no data migration)
1:1Circle Commerce custom reports and KPI definitions built on the customer's own field names have no export API path. We capture report metadata during discovery — report name, filters, calculated fields, and output structure — and document it in the migration handoff. We do not migrate report definitions as data records. The underlying data (orders, customers, products) migrates to Dolibarr, and the customer's admin rebuilds reports using Dolibarr's built-in report engine or a Dolistore reporting module (such as those available on NextGestion). We flag which Dolibarr fields correspond to each Circle custom field used in a report so the admin can rebuild efficiently.
Circle Commerce
Owner
Dolibarr ERP
User
1:1Circle Commerce owners (users who created or are assigned to records) map to Dolibarr User records. We resolve by matching the owner email address to the Dolibarr user email field. Any Circle owner without a matching Dolibarr user goes to a reconciliation queue for the customer's admin to provision before record import continues, because OwnerId is a required reference on orders and other assigned records in Dolibarr.
Circle Commerce
Historical Timestamps
Dolibarr ERP
Date fields on all objects
lossyAll date and timestamp fields from Circle Commerce (order creation date, shipment date, customer creation date) are preserved as their corresponding date fields in Dolibarr (date_creation, date_valid, date_livraison) at migration time. We do not alter or reset timestamps to the migration date. Time zone handling is documented during scoping — if Circle stores times in a specific timezone and Dolibarr's server PHP timezone differs, we apply an explicit offset during transformation so that order chronology is accurate in the destination.
Circle Commerce
Attachments
Dolibarr ERP
Documents (Document management module)
lossyFile attachments stored in Circle Commerce (order documents, product images, shipment labels) are exported and stored in Dolibarr's /documents directory structure. We map each attachment to the appropriate Dolibarr object using the ECM (Electronic Content Management) module or the object-level document links. Image files for products are linked to the Dolibarr Product via the product image upload mechanism. PDF documents and other order attachments are linked as document records on the corresponding Order or Third Party.
Circle Commerce
Multi-entity structures
Dolibarr ERP
Third Party or multi-instance configuration
lossyIf the Circle Commerce customer runs multiple entities or divisions under one CircleHub instance, we handle this in Dolibarr through either separate Third Party records with a custom entity field or through Dolibarr's multi-company module if the customer's Dolibarr installation has this module enabled. We document the entity mapping during scoping and apply the chosen strategy consistently across all migrating objects. This is a scoping-phase decision because Dolibarr's multi-company module changes the import batch architecture.
| Circle Commerce | Dolibarr ERP | Compatibility | |
|---|---|---|---|
| Customer | Third Party (Societe)1:1 | Fully supported | |
| Order | Order (Commande Client)1:1 | Fully supported | |
| Product | Product (Produit)1:1 | Fully supported | |
| Inventory | Stock (Stock) + Warehouse (Entrepot)lossy | Fully supported | |
| Shipment | Shipment (Expedition)1:1 | Fully supported | |
| Purchase Order | Supplier Order (Commande Fournisseur)1:1 | Fully supported | |
| Custom Fields | Extrafieldslossy | Mapping required | |
| KPIs and Reports | Report documentation (no data migration)1:1 | Mapping required | |
| Owner | User1:1 | Fully supported | |
| Historical Timestamps | Date fields on all objectslossy | Fully supported | |
| Attachments | Documents (Document management module)lossy | Fully supported | |
| Multi-entity structures | Third Party or multi-instance configurationlossy | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
Circle Commerce gotchas
Rate limit of 2000 requests per 5 minutes on Circle APIs
Infinitely adaptable schema requires per-project field mapping
No native export of custom report and KPI definitions
Small company footprint limits community support and documentation
Dolibarr ERP gotchas
Foreign key constraint errors on cross-distribution database restore
SQL injection vulnerabilities in version 9.0.1
Custom fields stored as JSON in extraoptions require field-by-field deserialization
Decimal precision and rounding configuration affects price fields
No native iOS/Android app forces reliance on browser
Pair-specific challenges
Migration approach
Schema introspection and field map construction
We audit the customer's live CircleHub instance to enumerate every active object (orders, customers, products, inventory, shipments, purchase orders), identify all custom fields defined on each object, and capture their data types and validation constraints. This step produces the migration field map — the document that defines which Circle field maps to which Dolibarr field (or Extrafield) and what transformation is required. We also capture custom report metadata (report names, filters, calculated fields, output structure) for the reporting rebuild inventory. This step takes three to five business days and requires read-only API access to the customer's CircleHub instance.
Destination schema provisioning
We provision the Dolibarr object schema before any data moves. This includes enabling the relevant Dolibarr modules (Third Parties, Products, Stock, Orders, Suppliers, Expedition, Projects) in the customer's Dolibarr installation, creating Extrafields to match every Circle custom field identified in step one, and configuring warehouse records matching the customer's inventory channels. If multi-entity or multi-company structures are in scope, we configure those before the import batch design. The destination is deployed in a staging environment first for validation.
Data extraction with rate-limit management
We export data from CircleHub in dependency order: products and third parties first (they have no upstream dependencies), then inventory and warehouse quantities, then orders with line items, then shipments, then purchase orders. We apply the Circle API rate limit (2000 requests per 5 minutes) by chunking large queries with pagination offsets and inserting sleep intervals. Each export batch is validated against the field map to confirm all custom fields are present before the file is accepted for import. Any records with missing required fields are flagged in a reconciliation report and resolved before import begins.
Staging import and reconciliation
We run a full import into the Dolibarr staging environment using production data volumes. The customer reconciles record counts against the Circle source (total orders in, total customers in, total products in), spot-checks 25-50 records across each object for field-level accuracy, and validates that Dolibarr custom fields populated correctly. Any mapping corrections (wrong field assigned, data type mismatch, missing required value) are fixed in the transformation logic and the staging import is re-run. The customer signs off the staging results before production migration begins.
Production migration in dependency order
We run the production migration in this sequence: Products (llx_product + llx_product_extrafields), Third Parties — suppliers first then customers (llx_societe + llx_societe_extrafields), Stock entries (llx_product_stock), Orders (llx_commande + llx_commandedet), Shipments (llx_expedition + llx_expedition_livraison), Purchase Orders (llx_commande_fournisseur + llx_commande_fournisseurdet), Attachments and documents. Each phase emits a row-count reconciliation report. Free-text vendors from Circle purchase orders are created as Dolibarr Third Party supplier records during the supplier phase before the PO lines import. A final delta migration captures any records modified in Circle during the cutover window.
Cutover, validation, and reporting rebuild handoff
We freeze writes to CircleHub during cutover, run the final delta migration, then hand the destination Dolibarr instance to the customer as the system of record. We deliver the reporting rebuild inventory documenting every Circle custom report, its filters, calculated fields, and the corresponding Dolibarr report configuration steps. We do not rebuild automations, workflows, or process triggers as these are not migratable; the Dolibarr workflow module must be configured by the customer's admin or a Dolibarr integrator post-migration. We provide a one-week hypercare window for reconciliation issues raised during the first days of live use.
Platform deep dives
Circle Commerce
Source
Strengths
Weaknesses
Dolibarr ERP
Destination
Strengths
Weaknesses
Complexity grading
Standard ERP migration. 1 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Circle Commerce and Dolibarr ERP.
Object compatibility
1 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
Circle Commerce: 2000 requests per 5 minutes per organization.
Data volume sensitivity
Circle Commerce doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Circle Commerce to Dolibarr ERP migration scoping. Not seeing yours? Book a call.
Walk through your Circle Commerce to Dolibarr ERP migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Circle Commerce
Other ways to arrive at Dolibarr ERP
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.