User documentation
- 1 Introduction
- 2 Installation
- 3 Configuration
- 3.1 General configuration
- 3.1.1 Maileon API key
- 3.1.2 Maileon permission
- 3.1.3 Maileon sends double opt-in (DOI) emails
- 3.1.4 Double opt-in (DOI) key
- 3.1.5 Send contact event when a new contact is created at Maileon
- 3.1.6 Send language code with double opt-in (DOI) key
- 3.1.7 Set different API keys depending on language
- 3.1.8 Webhook Token
- 3.1.9 When registering a registered customer
- 3.1.10 Behavior when user changes email
- 3.1.11 Resend double opt-in (DOI) email if the subscriber has already subscribed
- 3.1.12 Maileon API Timeout
- 3.1.13 Shopware customer custom fields to sync with Maileon
- 3.1.14 Custom contact fields
- 3.2 Contact events settings (general and order confirmations)
- 3.2.1 Maileon API key for contact events
- 3.2.2 Sending orders to Maileon as contact events
- 3.2.3 Send a separate contact event for each ordered product
- 3.2.4 Send customer account confirmation to Maileon as a contact event
- 3.2.5 Send password reset to Maileon as a contact event
- 3.2.6 Send order, shipment and payment status to Maileon as a contact event
- 3.2.7 Send wishlist to Maileon as a contact event
- 3.2.8 Enable separate newsletter permission for customer users
- 3.2.9 Customers newsletter permission in Maileon
- 3.2.10 Send the list of product attributes to a custom contact field
- 3.2.11 Send product attributes in the order contact events
- 3.3 Shopping Cart Abandonment
- 3.4 Importing newsletter recipients into Maileon from UI
- 3.5 Importing Newsletter Subscribers via CLI
- 3.5.1 Command syntax
- 3.5.2 Available options
- 3.5.3 Example usage
- 3.5.4 Progress indicator
- 3.5.5 Notes
- 3.6 Order History Import via CLI
- 3.6.1 Usage
- 3.6.2 Parameters
- 3.6.3 Behavior
- 3.6.4 Example
- 3.1 General configuration
- 4 Configure Shopware System Mails
- 5 Settings to be made in Maileon
- 5.1 DOI confirmations
- 5.2 Unsubscriber
- 6 Double opt-in for registered customers
- 7 Set different API keys depending on language
Introduction
Welcome to the user documentation for the Maileon Integration Extension for Shopware 6. This guide provides detailed instructions on installing, configuring, and using the plugin to synchronize customer data and automate marketing workflows with Maileon.
What is the Maileon Integration Extension?
The Maileon Integration Extension enhances your Shopware 6 store by seamlessly synchronizing subscriber data and sending key e-commerce events to Maileon. With this plugin, you can leverage Maileon’s powerful email marketing and automation capabilities to engage customers effectively.
Key Features
Subscriber Synchronization – Automatically sync subscribers and unsubscribers between Shopware 6 and Maileon.
Order Event Tracking – Send order confirmations and status updates to Maileon as contact events.
Abandoned Cart Recovery – Detect abandoned carts and send the data to Maileon for targeted follow-up campaigns.
Requirements
A valid Maileon account with API access
API credentials (API key) for integration
Shopware 6 store
Who Should Use This Extension?
This plugin is designed for Shopware store owners, marketers, and e-commerce managers who want to enhance their email marketing and automation strategies by leveraging Maileon’s advanced features. It helps businesses improve customer engagement, recover lost sales, and streamline communication.
Installation
Check requirements
The Maileon Integration Extension is continuously developed and tested with the latest Shopware versions. However, major Shopware updates may introduce changes that are incompatible with older plugin versions. The table below summarizes the compatibility between the plugin and Shopware versions:
Extension Version | Compatible Shopware version |
|---|---|
1.1.x | Shopware 6.4.x |
1.3.x | Shopware 6.5.x |
1.4.x | Shopware 6.6.x |
1.5.x | Shopware 6.7.x |
Install the Extension
You can install the plugin directly from the Shopware Store or via your Shopware administration panel.
Option 1: Install via the Shopware Store
Visit the https://store.shopware.com/en/xqueu37905376689f/xqueue-maileon-newslettermanagement.html .
Download the plugin.
Option 2: Install via Shopware Administration
Navigate to Extensions → My Extensions → Shopware Account.
Use the search bar to find Maileon Integration Plugin.
Click the three-dot menu (⋮) next to the plugin entry.
Select Install and wait for the process to complete.
Once installed, activate the plugin using the corresponding toggle button.
🎉 The plugin is now installed and ready for configuration! Proceed to the next section for setup instructions.
Configuration
The module can now be configured by clicking on the three dots and then the "Configuration" button - button can be configured.
The plugin settings can be configured for all Sales channels or separately for each Sales channel. From the Sales channel drop-down menu, you can choose which Sales channel settings are displayed.
General configuration
Figure 5 shows the general settings of the configuration page where the API key and a target permission must first be specified for all sales channels or each sales channel individually. The API key can be created and viewed in the Maileon account under "Settings"→"API Keys". The permission controls whether the contact is entered directly with permission (e.g. SOI) or whether a DOI/DOI+ mail should be delivered.
Maileon API key
The API Key can be created and viewed in the Maileon account under "Settings" → "API Keys" and ensures the connection to the account. The connection can be tested via the "Test" button. If the API key is checked successfully, the message "Connection was tested successfully" is displayed. If the test is not successful the API key should be checked. Common errors:
Validity period exceeded
Key was deactivated in Maileon
Characters were truncated at the beginning or end
Maileon permission
None: No permission. The contact will not receive newsletters.
Single Opt-in: Permission was simply granted, e.g. by entering an email address in a form. This method technically allows the contact to receive newsletters, but does not ensure that the email address belongs to the person who entered it.
Double Opt-in: With this permission, a confirmation email with a confirmation link is sent to the email address. Only when the link in the mail has been clicked and thus the interest in the entry has been confirmed, the contact can be sent.
Double Opt-in Plus: Double opt-in including consent for single user tracking. Please note: Without individual user tracking, no openings, clicks, etc. may be traced back to individual users and significant data for evaluating newsletter performance is missing. newsletter performance is missing.
⚠️ Available since version 1.3.10 or 1.5.4
Other: If no permission can be demonstrated, the method “Other” can be chosen. However, this is explicitly not recommended. Permission must always be demonstrable.
Maileon sends double opt-in (DOI) emails
Here you can specify whether the DOI mails are sent from Maileon or not. Recommended setting: yes.
IMPORTANT: The item does NOT suppress the DOI mails from Shopware. The DOI mail dispatch from Shopware itself can be disabled under "Settings → Flow Builder" via the newsletter.register entry.
To enable the double opt-in process, the Permission setting must be set to a value lower than Double Opt-in. Specifically, the Permission value must be None, Single Opt-in, or Confirmed Opt-in. If the Permission setting is configured as Double Opt-in or Double Opt-in Plus, the double opt-in process will not be initiated.
Double opt-in (DOI) key
Here you can define a DOI mailing key that determines which DOI mailing should be triggered as soon as a guest or customer registers for the newsletter. The key can be configured or read out in Maileon for the corresponding DOI mailing in the basic settings.
Send contact event when a new contact is created at Maileon
⚠️ Available since version 1.3.10 or 1.4.9 or 1.5.2
The plugin can automatically send a contact event to Maileon whenever a new contact is created. The contact event name: shopware_contact_created_1.0
This feature allows you to trigger marketing automation workflows in Maileon immediately after a contact is added.
Send language code with double opt-in (DOI) key
If this option is enabled, the language code used by the subscriber will be appended to the end of the DOI key specified above, so that a language-dependent DOI mail can be sent from Maileon. Pattern: somedoikey_en-GB or somedoikey_de-DE
IMPORTANT: In Maileon, all DOI mailing completed with the code of the language used in Shopware must be created and activated. If the DOI mailing does not exist with the DOI key added to the language code, it will be resent by the plugin but without the DOI key, so the default DOI mail will be sent.
Set different API keys depending on language
For those webshops that use a Saleschannel with multiple languages and would like the data to be sent to different Maileon accounts for each language. More info: User documentation | Set different API keys depending on language.1
Webhook Token
A randomly generated secret string used to identify the calls to the webhooks from Maileon. There is one webhook for DOI confirmations and one for unsubscribes so that these changes can be applied to Shopware immediately. Further setup of the webhooks is shown in chapter "Settings to be made in Maileon".
When registering a registered customer
When a store customer registers in his customer profile via the check mark it can be selected whether he is created directly with the target permission or whether a DOI process should be started.
Important note: This configuration setting is not available from plugin version 1.3.0, because this functionality is available from Shopware 6.5.x in the Shopware Newsletter settings. More info:
User documentation | Settings to be made in Maileon
Behavior when user changes email
If a contact registered to the newsletter changes his email address in the store, then three scenarios are possible:
The email address of the store customer is logically detached from the newsletter registration. Nothing else happens and the newsletters are still sent to the (verified) old email address.
The email address of the contact in Maileon is updated and the permission is kept. Here the customer must clarify with his data protection officer whether the granted permission also applies to a new e-mail address. This could be the case, for example, if the store does not change the e-mail address until it has been verified that the registered customer is also authorized to do so.
The contact's email address in Maileon is updated and the permission is reset. This triggers a new DOI process.
Resend double opt-in (DOI) email if the subscriber has already subscribed
If you enable this option, the DOI mail will send again for subscribers who have already subscribed but not confirmed and want to subscribe again on the subscription form. The option "Send DOI from Maileon" must be enabled, otherwise this option does nothing.
Maileon API Timeout
With this field timeout for unsuccessful calls can be selected between 5 and 30 seconds.
Shopware customer custom fields to sync with Maileon
The plugin allows you to synchronize selected Shopware customer custom fields to Maileon as contact custom fields.
In the plugin configuration, you can select which Shopware customer custom fields should be transferred. Only the selected fields will be included in the synchronization.
During contact synchronization:
If the newsletter recipient is linked to a Shopware customer, the configured customer custom fields will be added to the Maileon contact.
If a selected custom field does not exist yet in Maileon, it will be created automatically.
Existing Maileon custom fields are validated before synchronization to prevent type conflicts.
Field values are normalized to match Maileon’s supported data types.
Date fields are converted to the Y-m-d format.
Numeric and boolean fields are converted to the appropriate Maileon type.
Text values are automatically truncated to 255 characters (Maileon limit).
If a type mismatch is detected between Shopware and an existing Maileon custom field, the affected field will be skipped to ensure a stable synchronization process.
This feature ensures that important customer-specific information stored in Shopware can be safely and automatically transferred to Maileon for segmentation and marketing automation purposes.
Custom contact fields
If custom fields are submitted for the subscription form, they will be included in Maileon. If multiple fields, separate them with semicolons. For example:
customField1;customField2;customField3
If a field is not found in the form data, it will be ignored. If the field does not exist in Maileon, the plugin will create it.
More info about add custom fields to Shopware NL form: Custom fields to NL Form Plugin
Contact events settings (general and order confirmations)
The following points concern the settings for contact event emails (Figure 6). It should be noted that contact event types are created automatically the first time they are used. If a mailing for an order confirmation is to be created, the menu item must therefore first be activated (clear cache afterwards!), then an order can be placed. In Maileon a transaction type is created as confirmation on the basis of which the mailing can be created.
Maileon API key for contact events
Contact events can be sent via another Maileon account to avoid permission issues. If the field is empty, the regular API key will be used.
Sending orders to Maileon as contact events
This is where order information is sent to Maileon. This does not prevent Shopware from sending order confirmation mails, it only transfers the data to Maileon which can be used for filtering contacts for example. If order confirmation emails are to be triggered from Maileon, appropriate trigger emails must be designed and activated. Then you can deactivate the order confirmation mails from Shopware, as described in chapter "Configure Shopware system mails".
Transaction types:
shopware_order_confirmation_customer_1.0shopware_order_confirmation_guest_1.0shopware_ordered_products_2.0
Send a separate contact event for each ordered product
If sending orders to Maileon as contact events is enabled, and you activate this option, the system will send the order in one contact event, and additionally, one separate contact event per product containing the product details. This allows Maileon to filter contacts based on more detailed product information.
Send customer account confirmation to Maileon as a contact event
Mails related to account creation and management.
Note: depending on whether DOI is enabled for account creation in Shopware, an email with confirmation link will be sent first (shopware account confirmation) otherwise the confirmation will be sent immediately and the account will be activated.
Transaction types:
shopware_account_confirmation_1.0shopware_account_doi_registration_1.0shopware_guest_doi_order_1.0
Send password reset to Maileon as a contact event
This option allows sending mails with a password change link via Maileon.
Transaction type:
shopware_password_reset_1.0
Send order, shipment and payment status to Maileon as a contact event
This option allows sending appropriate notification via Maileon in case of order status, payment status or single item status changes.
shopware_order_status_changed_1.0shopware_order_delivery_status_changed_1.0shopware_order_transaction_status_changed_1.0
Send wishlist to Maileon as a contact event
⚠️ Available since version 1.3.10 or 1.4.6
When a logged-in customer adds a product to their wishlist, the plugin automatically sends the product data to Maileon as a transaction. This allows you to trigger targeted marketing automation workflows based on wishlist activity. Only registered users with a valid email address are tracked. The data sent includes basic product information and customer reference details.
Note:
Before using this feature, make sure the wishlist functionality is enabled in the Shopware administration under
Settings → Shop → Cart Settings → Wishlist.
You must activate the wishlist for each sales channel where this feature should be available.
Contact event name in Maileon: shopware_wishlist_added_1.0
Field name | Type |
|---|---|
| string |
| string |
| string |
| string |
| string |
| string |
| string |
| string |
| string |
| string |
| string |
| string |
| string |
| string |
| string |
| string |
| string |
| integer |
| float |
| float |
| string |
| string |
| string |
| string |
| string |
| string |
| string |
| string |
Enable separate newsletter permission for customer users
If customers should be automatically added to the newsletter after a purchase, this can be activated here. Buyers will then be added to Maileon, unless they have explicitly unsubscribed before or already have a permission. The type of permission can be configured in the next point. Before activating, the company's data protection officer should be consulted, as there may be different views of the legal situation here.
Customers newsletter permission in Maileon
Here you can specify the permission that will be automatically assigned to buyers.
Send the list of product attributes to a custom contact field
⚠️ Available since version 1.1.2
Transfer product properties as custom fields in Maileon (Figure 7).
Here you can select the attributes that are to be transferred to Maileon when an order is placed. If a product has several values for an attribute, all values will be transferred. The values are separated by the separator "|". A "rolling approach" is used for the values, which means that the new attributes are always placed at the beginning of the contact field, and duplicates are removed. If the entry becomes longer than 255 characters, the oldest values at the end of the list would be removed (Figure 8).
The fields in Maileon are created with the prefix "shopware_".
Send product attributes in the order contact events
⚠️ Available since version 1.1.2
Transfer product properties as contact event fields for order contact events (Figure 9).
Similar to the attribute values in contact fields, these values are also separated by the "|" separator.
For regular order confirmation transactions, the values are simply added as new attributes to the product information.
For single transactions for products, on the other hand, mapping must be performed by an additional step, since here the information is at the top information level and Maileon requires a fixed structure of the data here. Here, a mapping must be set under "Marketing"→ "Maileon Plugin". Up to 10 values can be transferred to Maileon (Figure 10 and result in Figure 11).
Shopping Cart Abandonment
If a customer fills a shopping cart and does not order it is possible to send a reminder. This requires regular checks for unordered shopping carts.
Compared to many other store systems, there is a special feature to note here: In Shopware, unfortunately, only the creation of a shopping cart is directly noted in the database, but not the last change. Therefore, the reminder refers to the creation time. So the waiting period should be long enough so that the customer has enough time to shop, for example 2-4h. Another peculiarity is that due to the missing date of change, it is not possible to remind again after a reminder and subsequent change. This is only possible when the customer has completely emptied the shopping cart or ordered or the shopping cart has been cleaned by Shopware at some point.
Send shopping cart abandonments to Maileon
Transactions for shopping cart abandoners are sent to Maileon if this option is active.
Transaction:shopware_abandoned_carts_1.0
After how many minutes a shopping cart should be reminded
This setting specifies the time period in minutes after the shopping cart has been created after which it should be reminded if it has not been ordered.
Create contacts without permission
Depending on the view of the respective data protection officer, a business relationship exists after a purchase and a contact may also be sent a newsletter. If this is desired, this option should be disabled, otherwise the contact will be created without permission.
Testing shopping cart abandoners
To test shopping cart abandoners, make sure that Shopware's task scheduler and message consumer are running. For testing, you can also do this manually by starting the following two applications:
./bin/console scheduled-task:run./bin/console -vv messenger:consume
The -vv option outputs all consumed tasks and is only used for an overview during testing. It is not necessary for live operation.
The transaction type shopware_abandoned_carts_1.0 is then created in Maileon. The version number refers to the default definition 1.0.
⚠️ Available since version 1.2.4
You can also run the abandoned cart from the command line for testing. You can using the following commands:
Mark abandoned carts
./bin/console xqueue-maileon:abandoned-cart:markUse this command to search for abandoned carts in the carts table. If the command finds an abandoned basket it will save it in a separate table.
Send abandoned carts
./bin/console xqueue-maileon:abandoned-cart:sendSends the details of the abandoned basket to Maileon.
Delete abandoned carts
./bin/console xqueue-maileon:abandoned-cart:deleteDelete abandoned carts without references.
Importing newsletter recipients into Maileon from UI
⚠️ Applies to versions prior to 1.3.10 or 1.4.9
The first step is to select the permission that the contacts should receive when imported into Maileon. In contrast to the settings on the configuration page, a mass transfer assumes that each contact has a corresponding permission. No DOI mail is sent, but the contacts are entered directly into Maileon with the selected permission.
Clicking the "Import to Maileon" button (Figure 16) starts the process. Depending on the number of contacts, the process can take several minutes. The UI subsequently notifies about success or errors that have occurred.
Importing Newsletter Subscribers via CLI
⚠️ Available since version 1.3.10 or 1.4.9 or 1.5.1
Starting from version 1.3.10 and 1.4.9 and 1.5.1, the plugin includes a powerful command-line interface (CLI) tool that allows you to import newsletter subscribers into Maileon — even in large volumes.
This tool is especially useful for one-time initial imports or bulk synchronization scenarios.
The import command must also be enabled in the plugin configuration, and the permission level for newly created contacts must be defined.
Command syntax
bin/console xqueue-maileon:import-newsletter-subscribers [--salesChannel="..."] [--offset=0]
Available options
Option | Required | Description |
|---|---|---|
--salesChannel | Yes | Sales channel name or ID. |
--offset | No | Starting point for the import (useful if the process was interrupted). Default is 0. |
Example usage
Import all newsletter recipients from all sales channels:
bin/console xqueue-maileon:import-newsletter-subscribersImport only from a specific sales channel (by name):
bin/console xqueue-maileon:import-newsletter-subscribers --salesChannel="English Storefront"Resume an import from a specific offset (e.g., after importing 2000 contacts):
bin/console xqueue-maileon:import-newsletter-subscribers --salesChannel="English Storefront" --offset=2000Progress indicator
A progress bar will be displayed in the terminal during the import process, showing the number of contacts imported. If the process is interrupted or fails, the last offset will be displayed so that you can resume the import.
Notes
Contacts are imported in batches of 1000 for performance and reliability.
Only valid and opt-in subscribers are processed.
The command also handles associated customer data (name, address) if available.
The command is intended for manual use and is not scheduled to run automatically.
Order History Import via CLI
⚠️ Available since version 1.3.10 or 1.4.10 or 1.5.2
The plugin provides a CLI command that allows you to import historical orders from Shopware into Maileon as contact events. This feature is useful when you want to synchronize past order data with Maileon, for example to build advanced customer segments or trigger marketing automations based on existing purchase history.
⚠️ Be careful! Orders will be imported by the process into this contact event type in Maileon:
shopware_order_confirmation_customer_1.0orshopware_order_confirmation_guest_1.0If trigger emails are assigned to these contact event types in Maileon, an email will be sent to the customer for each order.
Please check that there are no trigger emails associated with these transaction types before running this command!Depending on the amount of data, this command can take a very long time to run, so we recommend that you run it in smaller chunks using the date and shop filters.
Also, it is important to run this command only after the Importing Newsletter Subscribers via CLI command, because this command will import all orders into Maileon and if it belongs to a customer who is not a subscriber it will create it in Maileon with NONE permission. It will not change the permission level of contacts that already exist in Maileon.
Usage
Run the command from the Shopware root directory:
bin/console xqueue-maileon:import-orders-history [offset] --salesChannel=<id or name> --from=<date> [--to=<date>]Parameters
offset (argument, optional)
Skips the given number of orders before starting the import (default: 0).
–salesChannel (required)
Sales channel ID or name from which orders should be imported.
–from (required)
Start date (YYYY-MM-DD) for the orders to import.
–to (optional)
End date (YYYY-MM-DD). If not provided, the current date will be used.
Behavior
The command counts the total number of matching orders and shows a progress bar during the import.
Orders are processed in batches to avoid memory issues.
For each order, a Maileon contact event is sent with customer details, order data (totals, line items, payment, shipping, billing) and the sales channel context.
If the corresponding transaction type does not exist in Maileon, it is automatically created before sending.
Errors are logged, but the process continues with the next order.
Example
bin/console xqueue-maileon:import-orders-history --salesChannel="Storefront" --from="2025-01-01"Configure Shopware System Mails
As of Shopware 6.3, the email module of Shopware has been changed in such a way that it is not possible to deactivate system emails (such as order confirmations) through the plugin. If order confirmations are to be sent only from Maileon, it is necessary (only from Shopware 6.3, i.e. from plugin 1.0.4) to activate the function in the Maileon settings and also to remove the corresponding template in Shopware under "Settings" → "Email templates" (Figure 14). Thus, no more e-mail will be sent from Shopware.
It is recommended to save the template in case you need it again later. Example for type "Order confirmation
Subject: Order confirmationSender: {{ salesChannel.name }}Text: ...HTML: ...