Changelog

Prev Next

2.8.1

27.10.2026

Security

Fixed CVE-2026-111497, a vulnerability in the Brotli decoder bundled with Node.js. The Node.js runtime of the plugin is updated to version 22.23.4, which includes the upstream fix. Plugin configuration, features, and behavior are unchanged. No merchant action is required.


2.8.0

20.10.2026

Enhancement

New customer data fields

The plugin now sends five additional fields in the customer (user) payload: smsMarketingState, emailMarketingState, isSmsSubscriber, totalSpent, and totalSpentCurrency. They are added alongside the existing keys, which remain unchanged. The fields are not part of the default mapping in Mapp Connect. To store them in Mapp Engage, add them to the user mapping of the Shopify integration.

SMS opt-in changes trigger customer webhooks

Customer webhooks are now also triggered when the SMS opt-in status of a customer changes, so SMS consent stays in sync with Mapp Engage.

Support for expiring offline access tokens

The plugin supports Shopify's expiring offline access tokens. Existing tokens are migrated automatically. A daily background job refreshes the tokens, and a Redis lock prevents parallel refreshes. No merchant action is required.

Bulk export reads current customer fields

The bulk export reads email address, phone number, and marketing consent from defaultEmailAddress and defaultPhoneNumber instead of the deprecated fields.

Health check reports an unavailable job queue

The health check now returns status 503 when Redis has lost the job queue scripts (NOSCRIPT) or cannot be reached.

Bugfix

Abandoned cart job no longer removed on temporary errors

Temporary 401 errors no longer delete the abandoned cart cron job. The job is removed only after 24 hours of failures. To re-enable it, save the Engage settings in the plugin.

Removed

Mapp Intelligence page and script tag routes

The Mapp Intelligence page and the script tag routes have been removed. The Mapp Engage page is now the start page of the plugin.

Legacy export flow

The legacy export flow has been removed.

Dependency updates

Update to Shopify Admin API 2026-07

The plugin now uses Shopify Admin API version 2026-07 and the current Shopify libraries.


2.7.0

18.06.2026

Enhancement

Language and country sent on contact signup and newsletter subscription

The plugin now sends language and country to Mapp Engage when a contact creates an account or subscribes to a newsletter on the storefront. Previously, these fields were sent only with order events.

language is derived from the Shopify locale field (for example, en-DE → en). country is also derived from locale where available (en-DE → DE); if locale contains only a language code, the country from the contact's default address in Shopify is used as a fallback. If no country can be determined, the field is omitted.

The change is additive and backwards compatible. No Mapp Engage configuration or merchant action is required.


2.6.2

07.04.2026

Bugfix

Fix subscriber status assignment for new contacts

Fixed an issue where newly created contacts could be incorrectly marked as non-subscribers despite being opted in, leading to assignment to the wrong group.


2.6.1

20.11.2025

Dependency updates

Update Node libs

"@shopify/shopify-api": "^11.0.0", -> "@shopify/shopify-api": "^12.0.0",
    "@shopify/shopify-app-express": "^5.0.0", -> "@shopify/shopify-app-express": "^6.0.0",
    "@shopify/shopify-app-session-storage": "^3.0.0", -> "@shopify/shopify-app-session-storage": "^4.0.0",

Update nodeJS container:

updated to version 22 (from 18) (node:22-alpine)

Updated API version

Updated the API version to support version from released October 2025