v2.4.2 Latest version

Fix

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

New "Realign stock to Shopify" button: pushes the Dolibarr stock of all mapped products at once — immediately repairs Shopify values skewed in the past, without waiting for each product's next movement

Enhancement

Multi-store: stock is pushed to every store where the product is mapped, using each store's own credentials

Enhancement

Observability: every stock push is traced in the action log, and the "last realignment" state (date, products, errors) is shown in the admin

v2.4.1

Security

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

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

Fix

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

Enhancement

Instant diagnostics: per-store connection and health tests now run in the background, without slowing down the page

Enhancement

More reliable telemetry: the module now reports its real domain and Dolibarr version on every channel, eliminating false pending installations

v2.4.0

New

Multi-store: several Shopify stores configurable on a single Dolibarr installation, with license, settings and navigation specific to each store (accounting always stays unified)

New

Detailed per-store health diagnostics: connection and webhooks, license, sync counters — each store is checked independently

Enhancement

Larger store selector and redesigned context bar across all multi-store admin pages

Fix

Critical fix: a shipment left in draft status after a failure (warehouse/stock) was never caught up automatically — it is now validated and closed by the periodic catch-up job

Fix

Display fix: incorrectly encoded accented characters (double encoding) fixed throughout the admin interface

Fix

Fix: a store's license status could get stuck on "unknown" — verification is now reliable and never downgrades a default store

v2.3.2

Fix

Critical fix: some orders were no longer fetched from Shopify (regression introduced in 2.3.0) — order synchronization works normally again

Fix

Fix: webhooks registered on an outdated Shopify API version are now automatically re-registered during health checks, for each store

Fix

Fix: module activation blocked (blank page) on multi-store installations

Security

Security: connecting a Shopify store can no longer be done by manually entering a token — only through Shopify's secure OAuth flow

v2.3.0

New

Multi-store (foundations): several Shopify stores managed from a single Dolibarr installation with unified accounting — the existing store is migrated automatically, with no service interruption

New

New store administration interface: add, connect, manage webhooks and license, per store

Security

Security: Shopify connections are now protected with cryptographic keys (OAuth RSA) instead of a shared secret

New

New support tools: export a full order's JSON to speed up troubleshooting

New

Shipping and billing addresses are now displayed directly on the order record

Security

Security: strengthened CSRF protection on sensitive actions (configuration, license)

v2.2.9

Fix

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 incl. tax, not −€126)

Enhancement

Documentation: table of the 4 Dolibarr stock decrease rules (order, invoice, shipment, shipment closing) and recommendation for mixed TakePOS counter + Shopify shops

v2.2.8

Fix

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

Fix: the v2.2.4 permissions migration (module ID change) now runs automatically on activation — user rights are preserved when upgrading from a version older than 2.2.4

Fix

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

Enhancement

Robustness: explicit log warnings when no warehouse can be resolved, and safeguards against fatal errors if the outbound Dolibarr → Shopify sync (planned for v2.4.x) is enabled prematurely

v2.2.7

Fix

Critical fix: document API calls returning 404 on subdirectory installations — a leading slash was overriding the subdirectory path (issue #288)

Fix

All document access points (product and category images) now correctly honour the installation subdirectory

Fix

Fixes Dolibarr installations running in a subdirectory (version 2.2.6 already worked around this via the local SQL fallback)

v2.2.6

Fix

Critical fix: resilient product image sync — automatic SQL fallback (llx_ecm_files) when the Dolibarr REST API /documents endpoint is unreachable (404, timeout, HTML in body). Product images now correctly synced to Shopify even on restrictive hosting (issue #286)

Fix

Critical fix: multi-tenant entity filter added to image SQL query — prevents exposing images from other Dolibarr entities in multi-company installations

Fix

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

v2.2.5

Fix

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

v2.2.4

Fix

Critical fix: Dolibarr module ID migration (436950 → 351003, official range allocated to Association P'tite Tête) — automatic SQL migration preserves existing permissions

v2.2.3

Fix

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

v2.2.2

New

Shopify bundle/gift line handling (USH Bundles, EasyGift, etc.) — 3 configurable modes: ignore, import as comment, import as standard line

Fix

Critical fix: variant stock sync now runs every hour instead of 24h

Fix

Fixed webhook products/delete — invalid SQL query corrected

Fix

Critical fix: no more duplicate products created on Shopify after purging a product with variants

Fix

Improved anti-loop: inter-process sync/webhook protection to prevent deadlocks

Fix

Diagnostic false positive fixed: API Documents 404 on non-existent test product is now reported as warning instead of error

Enhancement

Enhanced diagnostic: old image path detection + server loopback test

Enhancement

Dynamic versions everywhere (no more hardcoded versions in UI)

Enhancement

Website admin: new 'SQL Migrations' section that lists numbered SQL scripts and allows one-click execution with automatic tracking

v2.2.1

New

Proactive email alert system (webhook errors + system health)

New

Smart per-type throttling with configurable cooldown

Enhancement

Complete Shopify API 2026-07 audit — anticipate breaking changes

Enhancement

PHPStan level 6 + test coverage 35% → 71%

Enhancement

Module version centralization (no more hardcoded versions)

Fix

Removed ~1,974 lines of dead code

Fix

Dolibarr 23 compatibility — systematic audit and corrections

v2.2.0

New

Real-time webhooks Shopify → Dolibarr (orders, shipments, payments)

New

Guided 6-step configuration wizard

New

Module health monitoring dashboard

New

2-level shipping mapping (title + actual carrier)

New

Simplified interface: 3 tabs instead of 5

New

Automatic catchup of missed orders (safety net CRON)

New

Configurable auto-creation of invoices, payments and shipments

Enhancement

Complete order configuration in wizard

Enhancement

Automatic webhook and CRON activation at wizard completion

v2.1.8

New

Multi-platform integrated support ticket system

New

Complete website redesign with MVC architecture

New

Degraded mode for expired licenses

New

Centralized internationalization with Twig

New

Bidirectional Shopify webhooks + real-time Dolibarr triggers

v2.1.7

New

Shopify Billing API - Dual-channel architecture

New

Complete web admin interface

Fix

OAuth license link fix

Fix

Discounts not applied on services

Enhancement

Configuration wizard improvements

v2.1.6

New

Complete security audit - 86 issues fixed

New

Bidirectional Shopify → Dolibarr import

Security

CSRF protection on 15 files

Security

Security score 6/10 → 9/10