1 - Environment setup
To ensure a stable and implementation, the following is recommended: Set your Shopify Development Store to you Engage staging environment:- Clear separation between test data and live customer data
- No risk of mixing staging and production contact records
- Clean and controlled store mapping
- Safe testing of imports, automations, promotions, and vouchers
- Reduced risk of data inconsistencies
Single Shopify production store
In some cases, merchants may only have a single Shopify production store and may want to connect it to both their Engage staging (for testing) and then later to their Engage production environment. While technically possible, this setup requires additional care due to how the integration handles environment data.Consideration 1 - Store configuration is cached
Consideration 1 - Store configuration is cached
When the Shopify store connects to Engage:
- The list of Engage stores is retrieved and stored in the app’s internal database
- This store list remains stored even if the app is later disconnected
Consideration 2 - Contact ID references are environment-specific
Consideration 2 - Contact ID references are environment-specific
When running a customer data import:
- Each Shopify customer is linked to a specific
contactIdin the connected Engage environment - This reference is stored internally
contactId values will point to staging contacts.When later switching to Engage production, those references must be updated to point to the production contacts instead.If they are not updated, order synchronization and automations may reference incorrect records.- All customers are re-synchronized
- The correct Engage production
contactIdreferences are stored - Future order synchronization and automations use the correct production data
- Do not skip the contact re-sync step when switching environments
- Avoid running order imports before re-syncing contacts
- If possible, avoid switching environments on a live production store
2 - Shopify plan dependencies
There are some dependancies on the Shopify plan you are using.Checkout extension requires Shopify Plus
Checkout extension requires Shopify Plus
Displaying reward vouchers and promotions directly inside the Shopify checkout via the Loyalty Checkout Extension requires Shopify Plus.Merchants not using Shopify Plus can still:
- Sync vouchers and promotions
- Allow manual entry of discount codes
Disabling native Shopify emails requires Shopify Plus
Disabling native Shopify emails requires Shopify Plus
For transactional emails (order confirmation, shipment, cancellation, etc.) to be sent from Engage instead of Shopify:
- Shopify Plus is required to disable most native Shopify emails
- “Order confirmation” must be disabled by Shopify support
3 - Customer account theme limitations
There are theme limitations based on the kind of customer account.Loyalty app theme block
Loyalty app theme block
The Loyalty app theme block:
- Works only with **Shopify Classic Customer Accounts
- Is not supported for **New Customer Accounts
- Cannot be placed on the checkout page
General theme compatibility
General theme compatibility
The app block requires a theme that supports Shopify OS 2.0 app blocks.Older or heavily customized themes may require adjustments or upgrades.
4 - Reward vouchers and promotions
Reward vouchers and promotions are separate features and operate differently.Reward vouchers (loyalty-based, point-converted)
Reward vouchers (loyalty-based, point-converted)
Reward vouchers are synced to Shopify as discount codes. They are synced only when:
- The customer visits a page containing the Promotions & Loyalty App Block
- Or the Checkout Extension is loaded
Promotions (campaign-based discounts)
Promotions (campaign-based discounts)
This is true for promotions:
- They must first be created in Shopify
- They must then be created in Engage with a matching External Promotion Code
- Promotions are language-specific in Engage and must be configured per language
- Shopify cannot handle duplicate identical external codes
- Only promotions linked to Engage are shown in the loyalty block
5 - Synchronization Model
Voucher and promotion synchronization is trigger-based, and does not run continuously. Synchronization occurs only when:- A page with the loyalty app block is loaded
- Or the checkout extension loads
6 - Data migration constraints
These constraints exist when working with data migration.Customer import before orders import
Customer import before orders import
Orders cannot be migrated to Engage unless the related customer already exists in Engage. Therefore, customer import must always be performed before order import.
No automatic data overwrite
No automatic data overwrite
If a customer already exists in Engage, the import process:
- Does not overwrite existing Engage data
- Only retrieves and stores the Engage contact ID in Shopify
Automation risk during migration
Automation risk during migration
Existing automations (e.g., “New contact registered”, “Product purchase”) may trigger during migration. This means that automations should be temporarily disabled during large data imports.
7 - Receipt & segmentation timing
Orders are only available for segmentation in Engage after they are stored as receipts. Receipt creation depends on the configured sync stage:- At order confirmation
- Or at fulfillment
8 - Web tracking and identification
The web tracking features, such as abandoned cart, abandoned browse, product interest tracking, all require that:- Web Pixel Tracking is enabled
- Soft ID Detect App Embed is enabled
- Checkout Extensibility is activated in Shopify
- The contact is initially created with
acceptsEmailset to “false” - Marketing preferences are updated only after checkout is completed
9 - Back-in-stock constraints
These constraints exist for the back-in-stock functionality:- Products must exist in the product feed even when out of stock
- The “Continue selling when out of stock” setting must not be enabled
- The theme block solution does not work in headless implementations (API implementation is required instead)
10 - Customer identification
These considerations exist for customer identification:- Email-only identification is strongly recommended
- Phone number identification may lead to conflicts (phone number does not have to be unique in Engage)
- If both “Contact” and “Member” types are allowed, all customers may be created as Contacts
- To ensure loyalty functionality, “Create everyone as Member” is recommended
Summary
The Shopify integration is powerful but has structural limitations. Consider:- The use of separate Shopify environments whenever possible
- If only one Shopify production store is available, follow the structured disconnect → reconnect → re-sync process carefully when moving from staging to production
- Features can depend on your Shopify plan level (Plus vs non-Plus)
- Checkout extensibility
- Theme and account type compatibility
- Trigger-based synchronization
- Data migration dependencies
- Store mapping configuration