User documentation

User documentation

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.

Figure 1: Example instance of Shopware

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

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

  1. Visit the https://store.shopware.com/en/xqueu37905376689f/xqueue-maileon-newslettermanagement.html .

  2. Download the plugin.

 

Option 2: Install via Shopware Administration

  1. Navigate to ExtensionsMy ExtensionsShopware Account.

  2. Use the search bar to find Maileon Integration Plugin.

  3. Click the three-dot menu (⋮) next to the plugin entry.

  4. Select Install and wait for the process to complete.

  5. 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.

 

Figure 2: Installation of the module
Figure 3: Installation of module 2
Figure 4: Installation and activation

 

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.

Screenshot 2026-02-23 at 14.05.03.png
Figure 5: General plugin settings

 

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:

  1. Validity period exceeded

  2. Key was deactivated in Maileon

  3. 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.

Language codes in a Sales Channel

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:

  1. 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.

  2. 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.

  3. 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)

config-maileon-contact-events.png
Figure 6 - Maileon contact events settings

 

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.0

  • shopware_order_confirmation_guest_1.0

  • shopware_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.0

  • shopware_account_doi_registration_1.0

  • shopware_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.0

  • shopware_order_delivery_status_changed_1.0

  • shopware_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

Field name

Type

customer.id

string

customer.salutation

string

customer.fullname

string

customer.firstname

string

customer.lastname

string

customer.address.street

string

customer.address.hnr

string

customer.address.zip

string

customer.address.city

string

customer.address.state

string

customer.address.country

string

product.sku

string

product.id

string

product.title

string

product.description

string

product.url

string

product.image_url

string

product.available_stock

integer

product.gross_price

float

product.net_price

float

product.currency_name

string

product.currency_symbol

string

product.categories

string

product.brand

string

product.unit

string

product.weight

string

product.width

string

product.height

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).

Figure 7: Adding product properties to custom fields

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_".

Figure 8: Product properties as custom fields in Maileon

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).

Figure 9: Adding product properties to contact event data

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).

maileon-plugin-product-properties.png
Figure 10: Attribute assignment settings

 

Figure 11: Result of the data in Maileon

Shopping Cart Abandonment

config-abandoned-carts-settings.png
Figure 12: Settings for shopping cart abandoners

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:

  1. ./bin/console scheduled-task:run

  2. ./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:mark

Use 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:send

Sends the details of the abandoned basket to Maileon.

Delete abandoned carts

./bin/console xqueue-maileon:abandoned-cart:delete

Delete abandoned carts without references.

Importing newsletter recipients into Maileon from UI

⚠️ Applies to versions prior to 1.3.10 or 1.4.9

Figure 13 - Import all newsletter recipients

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.

Screenshot 2026-02-23 at 14.01.14.png

 

Command syntax

bin/console xqueue-maileon:import-newsletter-subscribers [--salesChannel="..."] [--offset=0]

 

Available options

Option

Required

Description

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-subscribers

Import 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=2000

Progress 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.0 or shopware_order_confirmation_guest_1.0

If 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: ...