> ## Documentation Index
> Fetch the complete documentation index at: https://dokumentation.websale.de/llms.txt
> Use this file to discover all available pages before exploring further.

# E-Marketing-Manager

> Newsletter und Kunden-Informationen mit dem E-Marketing-Manager erstellen, versenden und auswerten sowie das Modul in den Shop integrieren.

Der E-Marketing-Manager ist das Newsletter-Modul von WEBSALE V8s. Sie erstellen darin Mitteilungen, ordnen sie Zielgruppen zu, versenden sie in mehreren Sprachen und werten anschließend aus, wer geöffnet und geklickt hat. Bedient wird das Modul über den Online-Servicebereich, in dem auch Video-Tutorials zu Funktionsweise und Bedienung liegen.

Der Shop selbst übernimmt dabei nur einen Teil der Arbeit: Er sammelt Anmeldungen ein und zeigt dem Empfänger eine Oberfläche, in der dieser seine Zielgruppen und seine Daten selbst verwaltet. Alles Weitere, vom Versand bis zur Statistik, geschieht im Modul.

Der E-Marketing-Manager muss für Ihren Onlineshop freigeschaltet werden. Wenden Sie sich dafür an die WEBSALE AG.

## Wie Interessenten in den Verteiler kommen

Es gibt zwei Wege, die sich auch kombinieren lassen.

| Weg | Wo | Was Sie dafür brauchen |
| - | - | - |
| Während des Bestellprozesses | auf einem Template des Bestellablaufs | Schritt 5, die Abschnitte `<+Newsletter>` und die `NL-`Tags |
| Auf einer beliebigen Shopseite | Startseite, Kundenkonto, Landingpage | Schritt 2 und Schritt 3, das Template `tpl_newsletter.htm` |

In beiden Fällen bestätigt der Interessent seine Adresse per E-Mail. Erst danach ist er eingetragen. Über denselben verifizierten Zugang ruft er später seine persönliche Newsletter-Verwaltung im Shop auf und meldet sich für Themenbereiche an, wieder ab oder pausiert die Zustellung für einen Zeitraum.

## Die Integration in fünf Schritten

1. Die Shopkonfiguration `shop.config` um zwei Abschnitte erweitern
2. Zwei Templates neu anlegen und zwei Template-Vorlagen laden, anpassen und einbinden
3. Die Verlinkungen im Shop setzen
4. Die Verifizierungsmails im E-Marketing-Manager anlegen
5. Optional die Newsletter-Anmeldung in den Bestellprozess einbauen

### Schritt 1: Einstellungen in der Shopkonfiguration

Ergänzen Sie die beiden folgenden Abschnitte an einer beliebigen Stelle in der `shop.config`.

#### Abschnitt `<eMarketingManager>`

Dieser Abschnitt verbindet die vier Templates miteinander, die für die Zielgruppen-Verwaltung und die Online-Ansicht gebraucht werden.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<eMarketingManager>
   Manage         = incl_newsletter.htm             # ExternInclude-Bereich für die Zielgruppen-Verwaltung
   OnlineView     = incl_newsletter_onlineview.htm  # ExternInclude-Bereich für die Online-Ansicht
   ShopManage     = tpl_newsletter.htm              # Shop-Template, das "Manage" einbindet
   ShopOnlineView = tpl_newsletter_onlineview.htm   # Shop-Template, das "OnlineView" einbindet
</eMarketingManager>
```

Die Paare gehören zusammen: `ShopManage` bindet `Manage` ein, `ShopOnlineView` bindet `OnlineView` ein. Das Shop-Template liefert Kopf, Fuß und Design, der Include-Bereich liefert die Funktionalität aus dem Modul.

#### Abschnitt `<eMarketingManager-Txt>`

Dieser Abschnitt enthält die Erfolgs- und Fehlermeldungen für An- und Abmeldung.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<eMarketingManager-Txt>
   NoEmail                      = Bitte geben Sie eine gültige E-Mail-Adresse ein.
   Error                        = Es ist ein Fehler aufgetreten. Bitte prüfen Sie Ihre Eingaben und versuchen Sie es erneut.
   MaxSubscriber                = Derzeit können keine weiteren Newsletter-Interessenten eingetragen werden. Bitte versuchen Sie es zu einem späteren Zeitpunkt erneut.
   ErrorCreate                  = Es ist ein Fehler beim Erstellen Ihrer Daten aufgetreten. Bitte überprüfen Sie Ihre Eingaben und versuchen Sie es erneut.
   IncorrectConfiguration       = Der Dienst kann wegen fehlender Konfiguration derzeit nicht genutzt werden. Bitte versuchen Sie es später noch einmal.
   OldVerification              = Der Gültigkeitszeitraum für den Anmeldungs-Link ist abgelaufen. Bitte melden Sie sich erneut für den Newsletter an.
   WaitVerification             = Es wurde bereits eine E-Mail zur Bestätigung Ihrer Anmeldung verschickt. Bitte prüfen Sie Ihr Postfach und bestätigen Sie Ihre Newsletter-Registrierung.
   InputTooLong                 = Ihre Eingaben überschreiten die maximale Länge. Bitte überprüfen Sie die markierten Felder und versuchen Sie es erneut.
   VerificationError            = Es ist ein Fehler bei der Bestätigung Ihrer E-Mail-Adresse aufgetreten. Bitte prüfen Sie den Link und versuchen Sie es erneut.
   NoTargetgroupSelected        = Bitte wählen Sie ein Interessengebiet aus.
   TargetgroupAlreadySubscribed = Sie sind bereits in allen ausgewählten Interessengebieten eingetragen.
   VerifiedOK                   = Ihre E-Mail-Adresse wurde erfolgreich bestätigt.
   SubscribedOK                 = Sie haben sich erfolgreich für den gewünschten Newsletter angemeldet.
   UnsubscribedOK               = Sie haben sich erfolgreich aus den gewählten Interessengebieten ausgetragen.
   BlackListed                  = Sie wurden erfolgreich aus allen Newslettern ausgetragen und in die Blacklist aufgenommen.
   SubscriberOnly               = Mit der angegebenen E-Mail-Adresse sind Sie im Newsletter nicht angemeldet. Bitte überprüfen Sie Ihre E-Mail-Adresse.
   VerifyEmailSent              = Ihnen wurde eine E-Mail zur Bestätigung zugeschickt. Bitte folgen Sie den Hinweisen in der E-Mail.
</eMarketingManager-Txt>
```

Diese Texte sieht der Interessent unmittelbar nach seiner Eingabe. Formulieren Sie sie so, dass klar ist, was als Nächstes passiert. `VerifyEmailSent` und `WaitVerification` sind die beiden wichtigsten, denn sie erklären die Wartezeit zwischen Eintrag und Bestätigungsmail.

### Schritt 2: Templates anlegen und einbinden

Vier Templates arbeiten zusammen. Zwei davon stellt WEBSALE als Vorlage bereit, zwei legen Sie selbst an.

| Name in der Konfiguration | Dateiname | Rolle |
| - | - | - |
| `Manage` | `incl_newsletter.htm` | ExternInclude-Bereich, in dem Zielgruppen und Benutzerdaten verwaltet werden |
| `ShopManage` | `tpl_newsletter.htm` | Shop-Template, das `Manage` per ExternInclude einbindet |
| `OnlineView` | `incl_newsletter_onlineview.htm` | ExternInclude-Bereich für die Online-Ansicht des Newsletters |
| `ShopOnlineView` | `tpl_newsletter_onlineview.htm` | Shop-Template, das `OnlineView` per ExternInclude einbindet |

Laden Sie die beiden Include-Templates und kopieren Sie sie unverändert in Ihr Template-Verzeichnis.

* Materialien: [`incl_newsletter.htm`](https://dokumentation.websale.de/v8s/materialien/materialien-emarketing-manager#inclnewsletter-htm) für die Verwaltung der Zielgruppen und der Benutzerdaten
* Materialien: [`incl_newsletter_onlineview.htm`](https://dokumentation.websale.de/v8s/materialien/materialien-emarketing-manager#inclnewsletteronlineview-htm) für die Online-Ansicht des Newsletters

#### Das Template `tpl_newsletter.htm` anlegen

Legen Sie ein Inhalts-Template `tpl_newsletter.htm` an und rufen Sie darin zwischen `<body>` und `</body>` den E-Marketing-Manager auf.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
~WS-ExternInclude($WS-eMarketingManagerLink$)~
```

`WS-eMarketingManagerLink` erzeugt die Adresse des Moduls samt Mall-, Shop- und Subshop-Kennung. Die Schreibweise mit `$` statt `~` ist die Tag-in-Tag-Form: Das innere Tag wird zuerst aufgelöst und sein Ergebnis dann als Parameter an `WS-ExternInclude` übergeben.

Ergänzen Sie im Kopfbereich zwischen `<head>` und `</head>` die beiden benötigten JavaScript-Bibliotheken.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<script src="/$WS/ws_sysdata/js/ws-system-1.8.1.js"></script>
<script src="/$WS/ws_sysdata/js/ws-newsletter-2.0.0.js"></script>
```

Die erste Datei ist die WEBSALE-Systembibliothek, die zweite stellt die Funktion für den AJAX-Aufruf bereit.

Fügen Sie anschließend, ebenfalls im Kopfbereich, den Aufruf ein, der den Versand der Verifizierungsmail anstößt.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<script>
$(document).ready(function(){
// Benötigte IDs und Klassen:
// IDs:
//   WSNL_FORM     = ID des Formulars für die Anmeldung beim Newsletter
//                   (änderbar über die Plugin-Zuweisung: $("#WSNL_FORM").ws_nl_ajax({...}))
//   WSNL_InfoMsg  = Container, in dem positive Meldungen angezeigt werden
//                   (änderbar über die Option: infoField: "#WSNL_InfoMsg")
//   WSNL_ErrorMsg = Container, in dem negative Meldungen angezeigt werden
//                   (änderbar über die Option: errorField: "#WSNL_ErrorMsg")
// Klassen:
//   Input_error   = Klasse, die einem Eingabefeld im Fehlerfall hinzugefügt wird
//                   (änderbar über die Option: inputErrorClass: "Input_error")
//   WSNL_button   = Auslöser für die Anmeldung per Klick, jedem Element zuweisbar
//                   (änderbar über die Option: actionButton: ".WSNL_button")
$("#WSNL_FORM").ws_nl_ajax({url: "{ST-SSLMode}~URL-SSLDomain~{/ST-SSLMode}{!ST-SSLMode}~URL-Homepage~{/!ST-SSLMode}/cgi/wsnewsletterv3/wsnewsletter.cgi?m=~WS-MallID~&s=~WS-ShopID~&ss=~WS-SubShopID~",
   infoCallback:        ws_nl_showSuccessLogin,
   errorCallback:       ws_nl_showErrorLogin,
   exceptionCallback:   ws_nl_showExcLogin,
   beforeStartCallback: ws_nl_beforeLogin
});
});
</script>
```

Die Adresse wird über `ST-SSLMode` zur Laufzeit aufgebaut, damit der Aufruf im gesicherten wie im ungesicherten Modus auf derselben Domain bleibt. Ein Aufruf über die falsche Domain scheitert an der Same-Origin-Regel des Browsers, und zwar ohne sichtbare Meldung im Shop.

> [!WARNING]
>
> Für die Pausierungs-Option muss der Benutzer ein Datum wählen können, also braucht die Seite einen Kalender. Ein Datepicker ist in der Vorlage **nicht** enthalten und muss ergänzt werden. Das erwartete Datumsformat lautet `yyyy-mm-dd`. Ein anpassbares Plugin finden Sie beispielsweise unter [https://jqueryui.com/](https://jqueryui.com/)

Speichern Sie das Template in Ihrem Template-Verzeichnis.

#### Das Template `tpl_newsletter_onlineview.htm` anlegen

Legen Sie ein Inhalts-Template `tpl_newsletter_onlineview.htm` an und rufen Sie darin zwischen `<body>` und `</body>` die Online-Ansicht auf.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
~WS-ExternInclude($WS-eMarketingManagerOnlineviewLink$)~
```

Damit wird der Newsletter personalisiert im Shop angezeigt, wenn der Empfänger ihn in seinem E-Mail-Programm nicht darstellen kann.

### Schritt 3: Verlinkungen integrieren

Die drei folgenden Links führen auf dasselbe Template `tpl_newsletter.htm`. Welcher Bereich darin erscheint, steuert der Parameter `type`. Setzen Sie die Links vorzugsweise auf die Startseite und auf das Template der Kontoverwaltung `ws_user_account.htm`.

| Link | Angezeigter Bereich | Zweck |
| - | - | - |
| ohne `type` | `{E-NL-SEC-subscribe}` | Anmeldung bei einer oder mehreren Zielgruppen |
| `&type=unsubscribe` | `{E-NL-SEC-unsubscribe}` | Abmeldung von einer oder mehreren Zielgruppen |
| `&type=manage` | `{E-NL-SEC-manage}` | vollständige Verwaltung, nur für eingeloggte Kunden |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<a href="~WS-SSLLoadTpl(tpl_newsletter.htm)~">Newsletter abonnieren</a>

<a href="~WS-SSLLoadTpl(tpl_newsletter.htm)~&type=unsubscribe">Newsletter abbestellen</a>

<a href="~WS-SSLLoadTpl(tpl_newsletter.htm)~&type=manage">Newsletter-Einstellungen</a>
```

Der Bereich `manage` bietet mehr als die beiden anderen: An- und Abmelden bei Zielgruppen, Pausieren des Empfangs für einen Zeitraum und das Ergänzen der persönlichen Daten um beispielsweise Firmenname und Straße.

> [!WARNING]
>
> Setzen Sie den Link mit `type=manage` nur dort, wo der Kunde eingeloggt ist, beispielsweise auf der Kundenkonto-Seite. Ohne Login fehlt der Bezug zum Datensatz, und der Bereich kann seine Aufgabe nicht erfüllen.

### Schritt 4: Verifizierungsmails im E-Marketing-Manager erstellen

Jede An- und Abmeldung wird per E-Mail bestätigt. Diese Mails legen Sie im Modul an und fassen sie zu einer Verifizierungsgruppe zusammen, die Sie einem oder mehreren Subshops zuordnen. Ohne diese Mails läuft die Anmeldung im Shop ins Leere, denn der Interessent bekommt seinen Bestätigungslink nie.

So erstellen Sie eine Verifizierungsgruppe:

1. Öffnen Sie den E-Marketing-Manager im Online-Servicebereich.
2. Wählen Sie in der Navigation **Vorlagen > Verwaltungs-Mails > Double-OptIn und andere**.
3. Klicken Sie im Registerkarten-Abschnitt **Verifizierungsmails** auf das Dokumentsymbol am Ende der Spalte.
4. Vergeben Sie im Dialogfenster einen Gruppennamen und wählen Sie die Subshops aus, für die die Gruppe gelten soll. Name und E-Mail-Adresse des Versenders sind optional.
5. Speichern und schließen Sie das Dialogfenster.

Die Gruppe erscheint danach auf der Registerkarte mit einer Liste der vier zugehörigen E-Mails. Über das Stiftsymbol am Ende einer Tabellenzeile bearbeiten Sie Text und Layout. Vorbereitete Design-Vorlagen lassen sich per Kopieren und Einfügen übernehmen, damit die Mails dem Erscheinungsbild des Shops entsprechen.

### Schritt 5: Newsletter-Anmeldung im Bestellprozess integrieren

Dieser Schritt ist optional. Er bietet dem Kunden die Newsletter-Anmeldung dort an, wo er ohnehin seine E-Mail-Adresse angibt.

#### Die Zielgruppen in der Shopkonfiguration bekannt machen

Für jede Zielgruppe, die im Bestellprozess zur Auswahl stehen soll, legen Sie in der `shop.config` einen Abschnitt `<+Newsletter>` an. Die Reihenfolge der Abschnitte bestimmt die Reihenfolge der Anzeige im Shop.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<+Newsletter>
   Allow            = yes
   Name-Txt         = Newslettername
   Checkbox         = off
   NewsletterID     = IHRE-ID
   GroupID-List     = Gewünschte ID aus "Zielgruppen verwalten" im Online-Servicebereich
   NotificationMode = order
   Type             = WSNewsletterV3
</+Newsletter>
```

| Eintrag | Bedeutung |
| - | - |
| `Allow` | `yes` aktiviert diesen Abschnitt. Ein deaktivierter Abschnitt wird in der Schleife übersprungen |
| `Name-Txt` | Bezeichnung, die `NL-Name` im Shop ausgibt |
| `Checkbox` | `on` gibt die Checkbox vorausgewählt aus, jeder andere Wert lässt sie leer |
| `NewsletterID` | Ihre eigene Kennung für diesen Newsletter, wird von `NL-ID` ausgegeben |
| `GroupID-List` | Zielgruppen-ID aus der Zielgruppenverwaltung im Online-Servicebereich |
| `NotificationMode` | `immediate` meldet sofort an, jeder andere Wert meldet erst mit der Bestellung an |
| `Type` | `WSNewsletterV3` für den E-Marketing-Manager |

> [!WARNING]
>
> Bei `Type = WSNewsletterV3` ist `GroupID-List` zwingend. Fehlt der Eintrag, deaktiviert der Shop diesen Newsletter beim Einlesen der Konfiguration und verschickt eine Fehlermeldung an die WEBSALE AG. Im Shop äußert sich das nur dadurch, dass die Zielgruppe nicht mehr angeboten wird.

Ändern Sie einen Zielgruppennamen im E-Marketing-Manager, müssen Sie ihn hier ebenfalls nachziehen. Die beiden Stellen werden nicht miteinander abgeglichen.

Referenz: Abschnitte +Newsletter

#### Den Auswahlbereich im Template ausgeben

Bauen Sie den folgenden Bereich auf einem Template des Bestellablaufs ein. Die Schleife läuft über genau die aktiven `<+Newsletter>`-Abschnitte.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{NL-Data}
   <h2>Newsletter-Anmeldung</h2>
   {@NL-Data}
      ~NL-Name~ (~NL-ID~):
      <input type="checkbox" name="~NL-Input~" ~NL-Checked~>
      <input type="hidden" name="~NL-ProofDeselect_hiddeninput~" value="yes">
   {/@NL-Data}
{/NL-Data}
```

Der äußere Abschnitt `{NL-Data}` blendet die Überschrift mit aus, wenn kein aktiver Newsletter konfiguriert ist. Als Einzeltag `~NL-Data~` gibt dasselbe Tag die Anzahl der aktiven Newsletter aus.

Das versteckte Feld ist kein Beiwerk. Ein nicht angehaktes Kontrollkästchen sendet gar nichts, der Shop könnte sonst ein bewusstes Abwählen nicht von einem fehlenden Feld unterscheiden. `NL-ProofDeselect_hiddeninput` liefert diesen Nachweis und muss deshalb in jedem Schleifendurchlauf mit ausgegeben werden.

Referenz: Spezielle Tags für den E-Marketing-Manager

## Was Sie beachten sollten

Prüfen Sie die Integration erst, wenn im Online-Servicebereich die Verifizierungsmails konfiguriert sind. Vorher lässt sich der Ablauf nicht zu Ende testen. Für die Online-Ansicht erstellen Sie eine Testmitteilung und rufen die Schaltfläche **Online-Vorschau** auf.

Die Anzahl der Adressen, die der E-Marketing-Manager verwalten kann, ist begrenzt. Das Limit lässt sich auf Anforderung erhöhen. Abgerechnet wird nach der Anzahl der aktuell vorhandenen Abonnenten.

Eine Sperrliste steht in der Oberfläche des Moduls standardmäßig zur Verfügung. Empfänger tragen sich im Shop selbst ein, der Modul-Administrator kann Einzeladressen ergänzen. Eine gesperrte Adresse wird bei einem Adressimport übergangen und gelangt nicht in die aktive Adressliste.

Im Newsletter lässt sich ein Link "Online ansehen" unterbringen. Bei der Online-Ansicht ist das Tracking immer aktiv, die Trackinginformationen sind aus Datenschutzgründen anonymisiert.

> [!WARNING]
>
> Newsletter-Anmeldung, Verifizierung und Tracking verarbeiten personenbezogene Daten. Nennen Sie das Verfahren in Ihrer Datenschutzerklärung und halten Sie den Nachweis der Einwilligung vor. Der E-Marketing-Manager protokolliert die Bestätigung, die rechtliche Bewertung bleibt bei Ihnen.

## Verwandte Themen

* Wegweiser: [Migration von Newsletter V2 zu E-Marketing-Manager](https://dokumentation.websale.de/v8s/marketing-funktionen/migration-von-newsletter-v2-zu-e-marketing-manager.md)


## Related topics

- [Allgemeine Online-Dienste](https://dokumentation.websale.de/v8s/online-servicebereich/allgemeine-online-dienste.md)
- [Externe Dienste und Schnittstellen](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/externe-dienste-und-schnittstellen.md)
- [Materialien E-Marketing-Manager](https://dokumentation.websale.de/v8s/materialien/materialien-emarketing-manager.md)
- [Migration von Newsletter V2 zu E-Marketing-Manager](https://dokumentation.websale.de/v8s/marketing-funktionen/migration-von-newsletter-v2-zu-e-marketing-manager.md)
- [E-NL- (Abonnement verwalten)](https://dokumentation.websale.de/v8s/referenz/tags/e-nl/abonnement-verwalten.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.