A newsletter subscription is offered to customers to provide information and also to support customer commitment.
Intershop Commerce Management (ICM) comes with a simple out-of-the-box newsletter subscription service that allows you to manage registrations within the ICM and export the list of registered customers to third-party systems.
It is also possible to replace this basic solution with a direct connection to an external e-mail marketing service/tool. Fur this purpose, ICM provides the EmailMarketingProvider interface which has to be implemented. This is described in the next section.
The EmailMarketingProvider interface is an abstract Java class that defines the basic methods for newsletter subscription services:
memberExists(email)
: returns true
or false
of an e-mail already registered for newsletter
addSubscription(email)
: registers an e-mail for newsletter
changeSubscriberEmail(oldEmail, newEmail)
: changes e-mail of a subscription from oldEmail
to newEmail
removeSubscription(email)
: unregisters an e-mail for newsletter/remove subscription
sendAbandonedBasketMessage(email)
: sends an e-mail to the customer whose basket has been abandoned for a certain time (configurable)
ping()
: test the connection to an external service
This class is implemented/extended by concrete subclasses:
EmailMarketingStdMgrImpl
(ac_email_marketing_std
) for the Standard Newsletter Subscription Service
Example: CustomEmailMarketingProviderImpl
(ac_email_marketing_custom
) for a custom e-mail marketing provider
…
Only one EmailMarketingProvider implementation can be active per ICM channel.
The EmailMarketingProviderDefinition interface defines methods to access important configuration values:
The Standard Newsletter Subscription Service is described in detail in the following section. For a description of how to connect to an external newsletter subscription service, see Cookbook - E-Mail Marketing / Newsletter Subscription.
This paragraph is valid for ICM version 7.10.16.1 and higher.
Intershop Commerce Management provides the Newsletter Subscription Service, which allows you to manage registrations and export the list of registered customers to third-party systems. Customers can register anonymously with their e-mail address or as a registered customer in their My Account area. The shop manager can accept or reject the registration and forward it to an external newsletter tool. With this export, double opt-in is considered as a possible legal requirement. The idea of this feature is to get the contact information of customers who are not registered and to get permission to use this information for marketing purposes. Since this is only a basic newsletter subscription service within ICM, there is no automatic e-mail support. Therefore, the service will not send any double opt-in or marketing-related e-mails. The “Abandoned Basket Messages” feature is also not supported.
Newsletter Process:
The following sections describe how the Newsletter Subscription Service works in general and how to configure the system.
If the newsletter subscription service is not active, the newsletter overview page displays the following message:
To activate the newsletter feature, perform the following steps:
Select the channel from the context selection box.
Go to Preferences | E-mail Marketing.
Select the e-mail marketing provider from the drop down list.
The name of this provider is Newsletter Subscription Service.
Enter the following link to the provider tool: http://localhost/
Enter "1" as abandoned basket timeout.
These values are not used by the subscription service, but they are still there for compatibility reasons.
Click Apply.
The provider is now registered and can be used.
Logged-in customers can enable or disable the newsletter subscription in the storefront in their My Account area under Profile Settings | Edit your profile.
Checking the Yes, please send me newsletters and notify me of sales and promotions checkbox and saving the changes activates the subscription. Unchecking the checkbox will unsubscribe the customer from the newsletter.
The customer's e-mail address then appears in Intershop Commerce Management at channel level under Marketing | Newsletter with an unconfirmed status.
Unregistered storefront visitors can subscribe anonymously by entering their e-mail address in the input field in the footer of the storefront. After a syntax check of the e-mail address, the storefront displays a confirmation dialog and the e-mail address is registered.
With this form of registration, storefront visitors cannot remove their entries themselves, but must contact the customer service representative by e-mail or phone. The customer service representative then has to go to Marketing | Newsletter at channel level to search for the customer's e-mail address and delete the entry.
If a newsletter subscription confirmation is required, for example via double opt-in, the confirmation feature has to be enabled in Intershop Commerce Management at channel level under Marketing | Newsletter in the Settings tab.
Depending on the confirmation status, the table in the Subscriptions tab that shows all registered customers contains additional columns.
If the confirmation in the Settings tab is enabled, the columns Confirmed, Last Modified Date and Editor are visible in the Subscriptions tab. Editor is the user that manually confirmed the e-mail-address.
The confirmation feature can for example be used as a double opt-in process in a manual way. Once a customer has subscribed to a newsletter, a manual process can be initiated to send an email requesting confirmation of the subscription. After receiving a positive response, the subscription can be manually confirmed in the Newsletter overview table. If the status in the Confirmed column is green, the subscriber can receive marketing notifications.
If the confirmation setting is disabled, the Confirmed, Last Modified Date and Editor columns are not displayed in the Subscriptions tab.
To export all confirmed e-mail addresses, perform the following steps:
On channel level, go to Marketing | Newsletter.
In the Subscriptions tab, click the Export button to trigger the export of all confirmed e-mail addresses.
Enter a file name for the export.
Click Export.
After the export has finished, you can download the subscriber data as a CSV file from the Status section.
This file contains data of all registered customers, as shown in the following example:
EMail;CreationDate;Confirmed;LastModified;Editor patricia@test.intershop.de;2019-11-06;true;2019-11-18;admin
If the confirmation feature is enabled, only confirmed e-mail addresses are exported. If the feature is disabled, all e-mail addresses are exported.
The service provider has to be registered at the EmailMarketingProviderDefinition.
The registration of the new provider at the EmailMarketingProviderDefinition
is executed during server startup via a naming module.
In the following, you can see a source code example for AcEmailMarketingStdNamingModule
.
... bind(EmailMarketingStdConfigurationFactory.class).to(EmailMarketingStdConfigurationFactoryImpl.class).in(Singleton.class); Multibinder.newSetBinder(binder(), EmailMarketingProviderDefinition.class) .addBinding().to(EmailMarketingStdProviderDefinitionImpl.class); ...
This naming module has to be declared in your cartridge's objectgraph.properties:
<yourcartridge>/src/main/resources/resources/<yourcartridge>/objectgraph/objectgraph.properties
The new personal data request provider for newsletter has to be registered at the EmailMarketingStdPersonalDataProvider.
The registration of the new provider at the EmailMarketingStdPersonalDataProvider
is executed during server startup via a naming module.
A source code example for AcEmailMarketingStdNamingModule
is shown below:
... MapBinder<String, Function<PersonalDataRequestBO, List<PersonalInformationRO>>> personalInformationProviders; personalInformationProviders = MapBinder.newMapBinder(binder(), new TypeLiteral<String>(){}, new TypeLiteral<Function<PersonalDataRequestBO, List<PersonalInformationRO>>>(){}, named("GDPR-PersonalInformationProviders")); personalInformationProviders.addBinding("EmailMarketingStdPersonalDataProvider") .to(EmailMarketingStdPersonalDataProvider.class).in(Singleton.class); ...
The newsletter object will be exported within the set of personal data. The exported data consists of the following fields for newsletter:
CREATIONDATE
LASTMODIFIEDDATE
NEWSLETTERCONFIRMED
When a registered customer requests account deletion, all newsletter information is automatically removed from the system and can no longer be used.
When an unregistered user requests the deletion of personal data, a customer service representative has to perform the following steps:
Search for the user's e-mail address under Marketing | Newsletter on the Subscriptions tab (1).
Delete multiple entries by checking the respective checkboxes (2) and clicking Delete (3).
Alternatively, single entries can be deleted directly via the trash icon in the Actions column (4).