Introduction
This document provides instructions on installing, configuring, and using the Maileon OXID eShop module for OXID eShop. The module allows you to synchronise your subscribers with Maileon, send order details to Maileon or create an RSS feed of your products.
Key features
Seamless initial synchronisation of subscribers with Maileon.
Automated synchronisation of subscriber and unsubscriber statuses with Maileon.
Transmission of order confirmation details to Maileon as a contact event.
Sending abandoned cart details to Maileon as a contact event for targeted marketing campaigns.
Generation of an RSS feed from your product catalog for enhanced content distribution.
Requirements
Oxid eShop version | Module version | Download | Last Update |
---|---|---|---|
Oxid eShop 6.x.x | Maileon Oxid Module 1.3.x | 2025.02.24 | |
Oxid eShop 7.x.x | Maileon Oxid Module 1.4.x | 2024.05.21 |
Installation
The module is using contact preferences in Maileon, so please check the contact preferences is turned on, at your Maileon account.
The plugin can be installed from the command line. The installation steps:
Prepare
Unzip the package and copy the content (xqueue) into your [SHOPROOTDIR]/source/modules/ directory
Add the repository to composer.json.
composer config repositories.xqueue/maileon-oxid-module \ --json '{"type":"path", "url":"./source/modules/xqueue/maileon-oxid-module", "options": {"symlink": true}}'
Add the maileon-oxid-module to composer
composer require xqueue/maileon-oxid-module:dev-main --no-update composer update --no-interaction
Install module
Oxid eShop 6.x.x
vendor/bin/oe-console oe:module:install-configuration source/modules/xqueue/maileon-oxid-module/
Oxid eShop 7.x.x
vendor/bin/oe-console oe:module:install source/modules/xqueue/maileon-oxid-module/ vendor/bin/oe-console oe:module:install-assets
Activate the module at admin
Log in to your OXID eShop Admin Panel.
Navigate to Extensions > Modules.
Find Maileon - E-Mail Marketing in the list.
Click Activate to enable the plugin.
Activate at command line
vendor/bin/oe-console oe:module:activate xq_maileonoxidmodule
Set cronjobs
After installing, you need to set up a cronjob and an optional cronjob if you want to use the abandoned cart functionality.
Plugin status cronjob (Run every day once)
0 4 * * * curl "http(s)://[MYSHOPURL]/index.php?cl=maileonstatus" >> [some-path-to-a-log-file] 2>&1
Abandoned cart cronjob (optional) (Run every 5 minutes)
*/5 * * * * curl "http(s)://[MYSHOPURL]/index.php?cl=maileonabandonedcart" >> [some-path-to-a-log-file] 2>&1
Uninstallation
The plugin can be installed from the command line. The installation steps:
Deactivate the plugin at admin or at the command line
vendor/bin/oe-console oe:module:deactivate xq_maileonoxidmodule
Uninstall the module:
Oxid eShop 6.x.xvendor/bin/oe-console oe:module:uninstall-configuration xq_maileonoxidmodule
Oxid eShop 7.x.x
vendor/bin/oe-console oe:module:uninstall xq_maileonoxidmodule
Remove the package from composer
composer remove xqueue/maileon-oxid-module --no-update composer update --no-interaction
Settings
After installation you can see the settings interface at the plugin Settings tab.
Subshops
With Oxid Enterprise Edition, sub shop management is also possible. In this case you can choose on the top left of the admin page which sub shop settings you want to see. This allows you to set different configuration settings per sub shop.
Settings page
Connection settings
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. Common errors:
Validity period exceeded
Key was deactivated in Maileon
Characters were truncated at the beginning or end
Synchronisation of subscribers
Enabled
Here you can enable/disable the synchronisation of Oxid eShop subscribers/unsubscribers with Maileon.
Initial permission in Maileon
None: No permission. The contact will not receive newsletters, only transaction emails (e.g. reservation confirmation mail).
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.
Confirmed Opt-in: With the confirmed opt-in, a confirmation e-mail is sent to the e-mail address after registering for the newsletter. However, this does not contain an additional confirmation link as with the double opt-in, the newsletter registration is valid immediately.
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.
Other: If no permission can be proven, the "Other procedure" method can be selected. However, this is expressly not recommended. Permission must always be proven.
If DOI process is enabled the permission must be lower then double Opt-in (DOI), so the valid permissions are None, Single Opt-in or Confirmed Opt-in!
DOI process enabled
If we enable the DOI process, then when the contact is created a confirmation email will be sent to the email address with a confirmation link, which if the contact clicks on will give them Double Opt-In Plus access to Maileon, regardless of what we have set in the above setting.
If at OXID admin (Core settings->Settings->Administration) the Double Opt-In settings is turned off and this option is turned off too, the contact will receive the permission set above instantly, without any confirmation.
If at OXID admin (Core settings->Settings->Administration) the Double Opt-In settings is turned on and this option is turned off, OXID will send the DOI confirmation mail.
If at OXID admin (Core settings->Settings->Administration) the Double Opt-In settings is turned on and this option is turned on, Maileon will send the DOI confirmation mail.
DOI mailing id
Here you can enter a DOI mailing ID, which determines which DOI mailing should be triggered as soon as a contact subscribes to the newsletter. The identifier can be set in Maileon or retrieved from the corresponding DOI mailing in the default settings. If the Maileon account has a default DOI mailing set in the settings, this field does not need to be filled in. Common mistake:
The DOI process above will be enabled but the DOI key is not specified here and no default DOI mailing is set in the Maileon account.
Webhook token for DOI confirmation and unsubscription
We will use webhooks from Maileon to synchronise DOI confirmers and unsubscribers back. These webhooks need to be set up in Maileon, to set them up you need to enter this token. The token can be any text that does not contain spaces.
Initial synchronisation
Enabled
Initial synchronisation allows you to create subscribers in Maileon that were created before using the plugin. It is sufficient to run this once when you start using the plugin, after that the subscribers will be synchronized automatically. You can enable synchronisation here, see below for more information on running synchronisation.
Permission if imported contacts
You can set the permission for contacts to be created during import. This is a final permission, the DOI process will not run.
None: No permission. The contact will not receive newsletters, only transaction emails (e.g. reservation confirmation mail).
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.
Confirmed Opt-in: With the confirmed opt-in, a confirmation e-mail is sent to the e-mail address after registering for the newsletter. However, this does not contain an additional confirmation link as with the double opt-in, the newsletter registration is valid immediately.
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.
Other: If no permission can be proven, the "Other procedure" method can be selected. However, this is expressly not recommended. Permission must always be proven.
Order confirmation transactions send to Maileon
Enabled
Here you can allow orders to be transferred to Maileon as contact events. See below for more details.
RSS feed
Enabled
Here you can enable the generation of RSS feed for your products. See below for more details.
Abandoned carts
Enabled
Here you can enable the abandoned cart functionality. (Cronjob needed)
After how many minutes a shopping cart should be reminded
here you can set after how many minutes the plugin will send abandoned cart transactions to Maileon. The minimum is 5 minutes and can be increased by 5 minute intervals.
DOI process
If you disable the DOI process in the plugin, you should also disable it in the shop, otherwise it may lead to different functionality and vice versa if you enable the DOI process in the plugin, you should also enable it in the shop.
Here you can set at the admin: Master Settings → Core Settings → Settings → Administration
Initial synchronisation
Initial synchronisation allows you to create subscribers in Maileon that were created before using the plugin. It is sufficient to run this once when you start using the plugin, after that the subscribers will be synchronized automatically.
Once you have enabled and set the permissions in the plugin settings, the import can be started at the following url:
https://[MYSHOPURL]/index.php?cl=initialmaileonsync
Order confirmation
Once enabled in the plugin settings, after each order, the order details will be transferred to Maileon as a contact event.
Contact event name: oxid_eshop_orders_2.0
The following data will be transferred:
Name | Type | Description |
---|---|---|
| string | Order number |
| datetime (YYYY-MM-DD) | Order date |
| string | Order status |
| json | Ordered items |
| string | Comma-separated list with the ordered product ids |
| string | Comma-separated list with the ordered product names |
| string | Comma-separated list with the ordered product category names |
| string | Comma-separated list with the ordered product subcategory names |
| string | Comma-separated list with the ordered product manufacturer names |
| float | Order total |
| float | Order total without shipping cost |
| float | Order tax |
| float | Order fees total |
| json | Order fee names |
| float | Order refunds total |
| json | Order refund names |
| string | Order currency |
| string | Payment method id |
| string | Payment method name |
| string | Customer full name |
| string | Customer first name |
| string | Customer last name |
| string | Customer id |
| string | Billing salutation |
| string | Billing first name |
| string | Billing last name |
| string | Billing address |
| string | Billing zip |
| string | Billing city |
| string | Billing country |
| string | Shipping salutation |
| string | Shipping first name |
| string | Shipping last name |
| string | Shipping address |
| string | Shipping zip |
| string | Shipping city |
| string | Shipping country |
| string | Shipping service name |
| string | Shipping service tracking code |
Order items
Name | Type | Description |
---|---|---|
| string | Product id |
| string | Product sku |
| string | Product url |
| float | Product single price |
| float | Product total |
| string | Product name |
| string | Product short description |
| float | Product tax rate |
| string | Product image url |
| integer | Ordered quantity |
Contact fields at Maileon
Name | Maileon type | Datatype |
---|---|---|
| standard | string |
| standard | string |
| standard | string |
| standard | string |
| standard | ISO 639 language code |
| standard | string |
| standard | date (Y-m-d) |
| standard | string |
| standard | string |
| standard | string |
| standard | string |
| standard | string |
| standard | string |
| custom | boolean |
| custom | boolean |
| custom | string |
| custom | string |
| custom | string |
| custom | string |
| custom | string |
| custom | string |
RSS feed
Once you have enabled RSS feed in the plugin settings, you can access the feed at the following url:
https://[MYSHOPURL]/index.php?cl=maileonrss
Available optional parameters
lang
=> Id of the requested language ( 0 default, 1 en )articlenum
=> Article number of one single requested articlelimit
=> limit the list of all returned articles
Maileon webhooks
To synchronize DOI confirmers and unsubscribers we need Maileon webhooks. You can configure them in your Maileon account under Settings->Webhooks.
DOI confirm webhook
HTTP post URL: https://[MYSHOPURL]/index.php?cl=maileondoi
URL parameters:
external_id → Contact external id
token → The token you set in the plugin settings
Unsubscribers webhook
HTTP post URL: https://[MYSHOPURL]/index.php?cl=maileonunsubscribe
URL parameters:
external_id → Contact external id
token → The token you set in the plugin settings
Abandoned carts
Once enabled in the plugin settings and cronjob is configured, it will send abandoned cart transactions to Maileon after the configured time.
The abandoned cart feature only works globally, it cannot be set per subshop.
Contact event name: oxid_eshop_abandoned_carts_1.0
The following data will be transferred:
Name | Type | Description |
---|---|---|
| string | Order number |
| datetime (YYYY-MM-DD) | Order date |
| json | Cart items |
| string | Comma-separated list with the ordered product ids |
| string | Comma-separated list with the ordered product names |
| string | Comma-separated list with the ordered product category names |
| string | Comma-separated list with the ordered product subcategory names |
| string | Comma-separated list with the ordered product manufacturer names |
| float | Cart total |
| float | Cart total without shipping cost |
| float | Cart other fees |
| string | Cart currency |
| string | Customer full name |
| string | Customer firstname |
| string | Customer lastname |
| string | Customer Id |
Cart items
Name | Type | Description |
---|---|---|
| string | Product id |
| string | Product sku |
| string | Product url |
| float | Product single price |
| float | Product total |
| string | Product name |
| string | Product short description |
| float | Product tax rate |
| string | Product image url |
| integer | Ordered quantity |