Promotions

New products

  • Repair Shop Management – Complete Repair Workshop Platform for Dolibarr

    Turn Dolibarr into a complete repair workshop platform: dashboard, repair orders with a Kanban pipeline, workshop planning, diagnostics, payments, on-screen collection signature, devices, brands, fault catalogue, warranties, returns, spare parts, inventory, suppliers, parts orders, technicians, appointments, maintenance contracts, customer portal, invoicing, alerts, automations and reporting.

    299.00 €
  • Building Finishing Works Management – Second-Fix & Finishing Trades ERP for Dolibarr

    Turn Dolibarr into a complete ERP for second-fix and finishing contractors: projects, sites with phases, lots and zones, works board, site log, timesheets, stakeholders, subcontractors, trade teams, tenders and contracts, quotes on quantity take-offs, technical studies, materials and stock, purchasing, equipment, HSE, quality and snags, documents, monthly situations and reporting.

    299.00 €

Doli2Shop - ERP Integration

mp21640d20250417205854

Shopify ↔ Dolibarr synchronization: products both ways, import orders/customers from Shopify. License provided upon purchase. Also available on the Shopify App Store. 5 languages.

250.00 €
Excl. tax

  • Author Association P'tite Tête
  • Module version 2.5.3
  • Release date 04/17/2025
  • Access to download and updates 1 year
  • How to contact support doli2shop@ptitetete.org (Temps de réponse : 5 jours ouvrés)
  • Compatibility Dolibarr V23+   -   PHP7.2.5 - 8.5
  • Last update 09/12/2026 05:10 PM

More info...

Doli2Shop - ERP Integration

Professional synchronization module between your Shopify store and your Dolibarr ERP.

Features

  • Real-time webhooks: orders, products, stock, shipments synchronized instantly
  • Automatic export of products, variants, images and stock from Dolibarr to Shopify
  • Import of products from Shopify to Dolibarr
  • Automatic import of orders with customers, addresses and discounts from Shopify
  • Automatic invoice and payment creation from Shopify orders
  • Catch-up CRON: no order lost even if a webhook fails
  • 6-step configuration wizard for quick setup
  • Multi-price and Shopify variant management
  • Complete administration interface with logs, diagnostics and webhook viewer
  • Compatible Dolibarr 18 to 23, Docker, Cloudron

License and activation

When purchasing on the DoliStore, you will receive a serial number by email within 24 business hours to activate your module. Enter it in Doli2Shop > License in your Dolibarr.

Doli2Shop is also available on the Shopify App Store (https://apps.shopify.com/doli2shop) with instant automatic license activation via Shopify Billing, no email required.

What's new in v2.5.3 (cumulative, covers 2.5.0 to 2.5.3)

  • Critical fix, accounting: on a Shopify store set to tax-excluded prices (tax is added at payment), every imported order was undervalued by about 17% — lines, discounts, shipping and invoice included. The module divided the price by the VAT rate assuming it was always tax-included, without ever reading the store's actual setting. The gap was not visible from Dolibarr: the payment was recorded at the already-wrong amount, so the invoice appeared settled. If the setting cannot be determined, the order is no longer imported and the rejection is shown on screen with its reason
  • Fix, accounting impact: the "do not import unpaid orders" setting was only honored by two of the three import paths. Webhooks ignored it: an order awaiting payment was imported AND invoiced. Every rejected order is now shown on screen with its reason, and comes in normally once it is paid later
  • New: amount discrepancies between Shopify and Dolibarr are now shown in the diagnostic, with the number of orders affected. The module distinguishes a rounding gap of a few cents from a proportional gap, which points to a systematic calculation error
  • Multicompany fix: photos imported from Shopify are finally registered in the Dolibarr file index at the moment they are stored. Without this, Dolibarr indexed them itself later, with no protection against concurrent access — causing repeated "record already exists" errors on product and order records
  • Fix: an installation whose store table was incomplete could no longer get out of that state. Connecting a store failed on a missing column, and the diagnostic recommended a reactivation that fixed nothing. The repair is now automatic on activation, without ever emptying or recreating a table
  • Multi-store fix: disconnecting a store always acted on the default store, regardless of which one was displayed, and deleted the order data for the whole entity. It is now limited to the store named in the confirmation
  • Ten admin screens existed with no link leading to them: order status mapping, support tickets, collection mapping, maintenance. They are now reachable. Two obsolete scripts were removed
  • Fix: the order status mapping screen crashed as soon as it opened, its four write buttons did nothing, and its "Restore default values" button emptied the tables without reinserting anything. The default values are now complete, including for refunded, cancelled or authorized-without-capture orders
  • The screen that sets the direction of synchronisations is fixed and reachable again, and it now clearly shows which directions are actually active
  • An administrator is no longer wrongly flagged as lacking rights on the diagnostic screen
  • Supported Dolibarr versions: 23.0 to 24.x, i.e. the branches that still receive security patches
  • Critical Multicompany fix: on installations where the module is configured on an entity other than the first one, no webhook was ever accepted. The entry point always ran in the first entity and could not find the signing secret there — orders, products and shipments stopped coming through, without a single error message, and nothing was kept to be replayed
  • Fix, all installations: product photos were duplicated on every Shopify notification — a mere price or stock change dropped another copy. A cleanup screen is provided for the duplicates already accumulated, with a preview before deletion
  • Multicompany fix: product photos never reached Shopify, and the diagnostic screen reported "no product with at least one photo" while the ERP showed them. VAT on imported orders was also computed using the company record of the first entity. Default payment mappings, meanwhile, were never created on a secondary entity
  • Critical fix: on some installations, the Shopify connection had to be re-established manually every day. The default store kept two copies of its credentials and automatic renewal updated only one of them
  • Fix: each variant label was replaced by the parent product title on every update coming from Shopify, including a simple price or stock change
  • Fix: the product synchronisation screen and the scheduled task did not look at the same scope — a product filed under a sub-category was synchronised without ever appearing on screen. A go-live date now lets you exclude orders predating your move to Shopify
  • Configurable directional flows: for products, stock, orders and payments, you choose the direction of each synchronisation — Dolibarr to Shopify, the other way round, both, or none
  • New document, in five languages: the go-live procedure for connecting the module to a Dolibarr that already holds your sales history, including what it does not protect against

What's new in v2.4.6 (cumulative, covers 2.4.3 to 2.4.6)

  • Critical fix: on hardened installations (anti-CSRF token renewed on every page), every admin action of the module was silently rejected — including the setup wizard. Clicking "Save" produced neither effect nor message. Token checking now matches Dolibarr core, and any rejection is reported on screen
  • Fix: with several stores connected, the Webhooks page displayed the selected store but saved against another one — webhooks could not be disabled. Error messages on that page, previously empty, are now shown in full
  • Critical fix: on Dolibarr 18 to 22, connecting a store returned an HTTP 500 error on the way back from Shopify and the store was lost. On strict SQL mode hosting, webhooks were never registered (Shopify timestamps rejected by the database)
  • Performance: stock push to Shopify is now asynchronous — validating an invoice returns immediately, even when Shopify is slow or unreachable. A scheduled task pushes stock every 5 minutes, merging movements and retrying automatically after a failure
  • Real Dolibarr variants on import: variant products imported from Shopify now create a genuine Dolibarr variant (visible in the interface), with a label distinct from the parent product. New "Repair variants" button to retroactively link catalogues already imported, with no re-import and no duplicates
  • New "Discount repair" tool: repairs orders imported before 2.2.9 whose percentage discount was under-valued — preview before applying, drafts only, audit trail preserved
  • More robust import: full error message when a variant cannot be created, reuse of the existing product when the reference (SKU) already exists, and order lines coming from pack/bundle apps finally imported when they are billable

What's new in v2.4.2

  • Critical fix: Dolibarr stock was never pushed to Shopify (restocking, in-house production, manual corrections) — Shopify stock drifted with each sale, down to false negative values. Every Dolibarr stock movement is now synchronized to Shopify in real time (absolute value, never negative)
  • New "Realign stock to Shopify" button: pushes the Dolibarr stock of all mapped products at once — immediately repairs Shopify values skewed in the past
  • Multi-store: stock is pushed to every store where the product is mapped, using each store's own credentials
  • Observability: every stock push is traced in the action log, and the "last realignment" state (date, products, errors) is shown in the admin

What's new in v2.4.1

  • Shopify 2026 compliance: native support for expiring OAuth tokens (60-minute access token + refresh token), required by Shopify by January 1, 2027. Transparent automatic refresh; already-connected stores migrate in one click via the "Reconnect" button
  • New Shopify Collections API 2026-07: collections created with the new model (Shopify rollout from July 1, 2026) are now visible and synchronized, no more silent disappearance
  • Critical fix: more reliable product/stock sync — a disabled variant sometimes remained visible on Shopify, and diverging stock levels (sometimes negative) were no longer silently corrected; errors are now logged and surfaced
  • Instant diagnostics: per-store connection and health tests now run in the background, without slowing down the page
  • More reliable telemetry: the module now reports its real domain and Dolibarr version on every channel, eliminating false pending installations

What's new in v2.4.0

  • Multi-store: connect several Shopify stores to a single Dolibarr installation, with unified accounting. Store selector and context bar to switch between stores, full per-store configuration (settings, orders, products, shipping, tags automatically renamed after the store)
  • Per-store license: activate your DoliStore serial number directly from each secondary store's page
  • Per-store Health diagnostic: connection, webhooks, license and local data checked at a glance for each store
  • More reliable shipment synchronization: reinforced automatic catch-up, no more orphaned shipments after a temporary failure
  • Display fixes (accented characters) and About page update
  • Single-store installations remain strictly unchanged: no reconfiguration needed when updating

What's new in v2.3.1 (hotfix)

  • Fix: blank page on module activation for multi-store installations (the Categorie class was not loaded before using its constants). Activation and per-store category creation work again. Single-store installations were not affected

What's new in v2.3.0

  • Multi-store: manage several Shopify stores from a single Dolibarr installation with unified accounting. Per-store connection and configuration, isolation of products, orders and invoices via categories and tags, per-store license check. Single-store installs work exactly as before
  • Hardened Shopify connection security: the OAuth return is now signed with an asymmetric cryptographic signature (public/private key), removing any shared secret on the module side; transparent server-side rotation
  • Support tools: one-click export of the raw JSON of a Shopify order or product, and ZIP export of several orders at once, to send to support without any technical handling
  • Order view: shipping and billing addresses, plus pickup point, shown directly without opening the Contacts tab
  • Post-installation verification wizard: at-a-glance check of connection, configuration, CRON, webhooks and migrations, with corrective actions
  • Automatic order closing after delivery and payment, email alerts on critical errors, module action log
  • Enriched order data (financial summary, statuses, context); SQL compatibility with MySQL 8.x and MariaDB validated in continuous integration

What's new in v2.2.9 (hotfix)

  • Fix: percentage discounts undervalued — the discount was computed on the tax-excluded base then divided a second time by (1 + VAT) as if it were a tax-included amount. Orders with a percentage promo code now match the exact amount shown by Shopify (e.g. 5% = -151.20 EUR incl. tax, not -126 EUR)
  • Fixed-amount discounts (sent tax-included by Shopify) keep their tax conversion
  • Documentation: table of the 4 Dolibarr stock decrease rules and recommendation for mixed TakePOS counter + Shopify shops

What's new in v2.2.8 (hotfix)

  • Critical fix: stock not decremented when importing Shopify orders — the warehouse was not passed at invoice validation. All 4 Dolibarr stock decrease rules (order, invoice, shipment, shipment closing) are now covered
  • Fix: the v2.2.4 permissions migration (module ID change) now runs automatically on activation — user rights preserved when upgrading from a version older than 2.2.4
  • Webhooks fix: wrong callback URL (missing /custom/ path) when no explicit configuration was set, and the events retention days setting is now honored by the purge
  • Robustness: explicit log warnings when no warehouse can be resolved, and safeguards against fatal errors

What's new in v2.2.7 (hotfix)

  • Critical fix: documents API calls returning 404 on Dolibarr installations in a subdirectory — a leading slash was overriding the subfolder (issue #288). All documents endpoints (product and category images) now honor the installation subfolder

What's new in v2.2.6 (hotfix)

  • Critical fix: resilient product image sync — automatic SQL fallback (llx_ecm_files) when the Dolibarr REST API /documents endpoint is unreachable (Apache 404, timeout, HTML in body). No more missing images in Shopify even on restrictive hosting environments (issue #286, Philazerty / Click & Play support ticket)
  • Critical fix: multi-tenant entity filter added to the image SQL query — prevents exposing images from other Dolibarr entities in multi-company installations
  • Fix: image sort key mismatch (filename vs relativename) — sort by position now actually works
  • Enhancement: image instance cache reduces 3 redundant SQL+API calls per product to 1 during sync

What's new in v2.2.5 (hotfix)

  • Critical fix: verifToken() function not loaded on some PHP-FPM stacks (notably ISPConfig with strict open_basedir) blocking Shopify OAuth — 4 module files now explicitly include the compatibility.lib.php polyfill

What's new in v2.2.4 (patch)

  • Critical fix: Dolibarr module ID migration (436950 → 351003, official range allocated to Association P'tite Tete) — automatic SQL migration preserves existing user permissions, no manual action required

What's new in v2.2.3 (hotfix)

  • Critical fix: 3 admin pages (setup, configuration wizard, product sync) referenced a non-existent CSS file — style loading and display now correct

What's new in v2.2.2

  • Critical fix: variant stock sync now runs every hour instead of 24h
  • Critical fix: no more duplicate products created on Shopify after purging a product with variants
  • Improved anti-loop: inter-process sync/webhook protection against deadlocks
  • Enhanced diagnostic: old image path detection + server loopback test
  • Dynamic versions everywhere (no more hardcoded versions in UI)
  • Modernized setup guide page with recommended wizard
  • Fixed webhook products/delete (SQL error corrected)
  • Smart version.php fallback for partial FTP deployments
  • Fixed admin pages (maintenance, version_check) for non-standard installations

Video tutorial

Complete installation and update tutorial: https://youtu.be/NaTBQp4_aq8

5 languages

Francais, English, Deutsch, Espanol, Italiano

Information

Website: https://doli2shop.ptitetete.org Email: doli2shop@ptitetete.org Complete documentation included in the module

P'tite Tete Association - Dolibarr modules since 2021




If you think this module is a fork of another one (published after the first one) or violates some terms or conditions of use (for users or vendors), you can make a report at dolistore@dolibarr.org