Pinelab Plugins Pinelab
# Install this plugin
npm install @pinelab/vendure-plugin-qls-fulfillment

Changelog for vendure-plugin-qls-fulfillment

2.2.1 (2026-07-15)

  • Emit StockMovementEvent with corresponding StockAdjustment whenever a QLS webhook updates stock of a variant.

2.2.0 (2026-07-15)

  • Added buttons on variant and order detail to view the product and order in QLS dashboard.

2.1.0 (2026-07-08)

  • Added addAdditionalEANSToQLS admin mutation to manually add additional EANs/barcodes to existing QLS products.
  • Added admin UI action on the product variant detail page to prompt for and add a single additional EAN.
  • Removed automatic syncing of additional EANs during product sync; EANs must now be added manually via the mutation.
  • Removed obsolete util.ts, util.spec.ts, and removeBarcode QLS client method.

2.0.2 (2026-07-01)

  • Verify barcode deletion in QLS by fetching remaining barcodes after removal attempt
  • Emit QlsVariantSyncFailedEvent and log an error when barcodes fail to be removed from QLS

2.0.1 (2026-06-15)

  • Fixed fulfillment product detail type

2.0.0 (2026-06-10)

  • Restructure plugin options into nested orderSync and productSync objects. This is a breaking change: all plugin options must now be organized under orderSync (for order-related hooks) and productSync (for product-related hooks).
  • Renamed getAdditionalOrderFields to pushAdditionalOrderFields in orderSync options.
  • Added pullAdditionalOrderFields hook in orderSync options, called after an order is successfully created in QLS. Errors in this hook are caught and logged, and will not fail the order push job.

1.9.0 (2026-08-05)

  • Upgraded to Vendure 3.6.3

1.8.2 (2026-04-24)

  • Added variant parameter to the saveAdditionalData hook

1.8.1 (2026-04-24)

  • Replaced saveRawWarehouseStockData boolean with saveAdditionalData hook, allowing you to handle and persist any QLS product data yourself

1.8.0 (2026-04-21)

  • Added configurable saveRawWarehouseStockData option

1.7.0 (2026-03-15)

  • Pass order phone number to QLS

1.6.0 (2026-03-09)

  • Skip syncing disabled products/variants to QLS

1.5.1 (2026-02-18)

  • Pass error message to QlsVariantSyncFailedEvent instead of the error object.

1.5.0 (2026-02-18)

  • Allow passing additional order items with addAdditionalOrderItems() that will be added to the QLS order.

1.4.0 (2026-02-11)

  • Allow qlsProductIdUiTab to be null to show QLS Product ID on the default Admin UI tab.
  • Map QLS order status: sent → Delivered, partically_sent → PartiallyDelivered.

1.3.0 (2026-02-05)

  • Upgraded to Vendure 3.5.3

1.2.1 (2026-01-28)

  • Use 'varchar' instead of 'text' for QLS order id and Vendure order id in database.

1.2.0 (2026-01-28)

  • Prevent accidently pushing orders multiple times by checking if the order is already synced to QLS.
  • Store combination of QLS order id and Vendure order id to prevent duplicate orders in QLS.
  • Emit event for failed product pushes, and log it as a warning instead of an error.
  • Store failed products as scheduled task data so they can be viewed in the Admin UI.
  • Allow specifying UI tab name where the QLS product ID custom field is shown on ProductVariant page.

1.1.3 (2026-01-28)

  • Gracefully handle missing variants from incoming webhooks by logging instead of throwing an error.

1.1.2 (2026-01-14)

  • Run scheduled full sync without job queue, because scheduled tasks already run in the worker only.
  • Export scheduled task instead of automatically adding it to the config.

1.1.1 (2026-01-07)

  • Ignoring non-existing order codes in order status updates, instead of throwing an error.
  • Update syncedToQls custom field inside same transaction, to prevent Query runner already released. Cannot run queries anymore errors.

1.1.0 (2026-01-07)

  • Fix delivery options to be an array of objects with a tag property
  • Emit event for failed order push
  • Delay 10s before setting custom field syncedToQls to prevent race conditions.

1.0.0 (2025-11-07)

  • Initial release