> ## 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-NL- (Page states and messages)

> The range tags that control the state of the newsletter page: sign-up, unsubscription, management, confirmation steps and the online view of the newsletter.

The E-Marketing Manager does not come with its own pages. What the visitor sees is defined in two shop templates, which you specify in the shop configuration `shop.config` in the `<eMarketingManager>` section.

| Parameter | Template | Purpose |
| - | - | - |
| `Manage` | Management page | Sign-up, unsubscription, subscription management, all confirmation steps |
| `OnlineView` | Online view | the newsletter in the browser instead of the email client |

Both templates contain **all** states at once. Which one appears is decided by the range tags with the prefix `E-NL-SEC-`. This page describes them and the associated message tags.

Guide: E-Marketing Manager

> [!WARNING]
>
> The `E-NL-` tags are intended for the include and shop templates. Different tags apply to the mailing design in the E-Marketing Manager's user interface.

## The structure of the management page

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{E-NL-SEC-Subscribe}
   <!-- Formular zum Anmelden -->
{/E-NL-SEC-Subscribe}

{E-NL-SEC-Unsubscribe}
   <input type="hidden" name="logintype" value="unsubscribe">
   <!-- Formular zum Abmelden -->
{/E-NL-SEC-Unsubscribe}

{E-NL-SEC-Manage}
   <input type="hidden" name="logintype" value="manage">
   <!-- Formular zum Verwalten des Abos -->
{/E-NL-SEC-Manage}
```

> [!WARNING]
>
> Unsubscription and management require a hidden field `logintype` with the matching value. Without this field, the E-Marketing Manager does not know what the submission is about, and the process fails.

## The three paths and their confirmation

Signing up, unsubscribing and managing all go through a confirmation email. Each path therefore has three states: the form, the sent email and the confirmed click.

| Path | Form | Email sent | Confirmed |
| - | - | - | - |
| Sign up | `E-NL-SEC-Subscribe` | `E-NL-SEC-SubscribeVerificationSent` | `E-NL-SEC-SubscribeVerified` |
| Unsubscribe | `E-NL-SEC-Unsubscribe` | `E-NL-SEC-UnsubscribeVerificationSent` | `E-NL-SEC-UnsubscribeVerified` |
| Manage | `E-NL-SEC-Manage` | `E-NL-SEC-ManageVerificationSent` | `E-NL-SEC-ManageVerified` |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{E-NL-SEC-SubscribeVerificationSent}
   <p>Wir haben Ihnen eine E-Mail geschickt. Bitte bestätigen Sie darin Ihre Anmeldung.</p>
{/E-NL-SEC-SubscribeVerificationSent}

{E-NL-SEC-SubscribeVerified}
   <p>Ihre Anmeldung ist bestätigt. Willkommen.</p>
{/E-NL-SEC-SubscribeVerified}
```

> [!NOTE]
>
> Each of these states can also be used as a negative range tag. This is rarely needed because the states are mutually exclusive.

### Two further states

| Tag | Applies if |
| - | - |
| `E-NL-SEC-NewSubscriber` | the visitor has signed up for a target group for the first time |
| `E-NL-SEC-EmailSent` | a verification via email address or a registration was successful |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{E-NL-SEC-SubscribeVerified}
   {E-NL-SEC-NewSubscriber}
      <p>Schön, dass Sie dabei sind. Als Dankeschön haben wir einen Gutschein für Sie.</p>
   {/E-NL-SEC-NewSubscriber}

   {!E-NL-SEC-NewSubscriber}
      <p>Ihre Auswahl ist gespeichert.</p>
   {/!E-NL-SEC-NewSubscriber}
{/E-NL-SEC-SubscribeVerified}
```

> [!NOTE]
>
> `E-NL-SEC-NewSubscriber` distinguishes a genuinely new subscriber from someone who had signed up before. This is the place for the welcome voucher, because nobody should receive it more than once.

## Outputting messages

| Tag | Returns |
| - | - |
| `E-NL-MSG-Error` | the error text, for example if the email address is missing |
| `E-NL-MSG-Info` | an information text, for example after successful sending |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{E-NL-MSG-Error}
   <p class="fehler">~E-NL-MSG-Error~</p>
{/E-NL-MSG-Error}

{E-NL-MSG-Info}
   <p class="hinweis">~E-NL-MSG-Info~</p>
{/E-NL-MSG-Info}
```

> [!NOTE]
>
> Both tags are range tags and single tags at the same time. The range ensures that the frame only appears if there really is something to report.

## Reloading the page via AJAX

`E-NL-SEC-Ajax` encloses the markers with which the shop reloads part of the page via AJAX. The markers themselves only appear in the AJAX call; in the normal page build they are omitted.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{E-NL-SEC-Ajax}<ws-ajax-WSNL_ErrorMsg>{/E-NL-SEC-Ajax}

   {E-NL-MSG-Error}
      <p class="fehler">~E-NL-MSG-Error~</p>
   {/E-NL-MSG-Error}

{E-NL-SEC-Ajax}</ws-ajax-WSNL_ErrorMsg>{/E-NL-SEC-Ajax}
```

> [!WARNING]
>
> The opening and closing markers each belong in their own `E-NL-SEC-Ajax` range. The content in between stays outside, because it should also appear without AJAX.

> [!NOTE]
>
> `E-NL-SEC-Ajax` has no negative range. You cannot use it to isolate content that should only appear without AJAX.

Guide: AJAX functions

## The online view of the newsletter

Anyone who cannot view the newsletter properly in their email client opens it in the browser. The second template, specified with the `OnlineView` parameter, is responsible for this.

| Tag | Effect |
| - | - |
| `E-NL-SEC-ShowOnlineNewsletter` | applies if the newsletter could be loaded |
| `E-NL-SEC-ShowErrorOnlineView` | applies if an error occurred while loading |
| `E-NL-OnlineView` | outputs the content of the newsletter |
| `E-NL-Title` | outputs the title, i.e. the subject of the email |
| `E-NL-MailBaseHref` | outputs the base address for the images in the newsletter |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<!doctype html>
<html>
   <head>
      <title>~E-NL-Title~</title>
      <base href="~E-NL-MailBaseHref~">
   </head>
   <body>
      {E-NL-SEC-ShowOnlineNewsletter}
         ~E-NL-OnlineView~
      {/E-NL-SEC-ShowOnlineNewsletter}

      {E-NL-SEC-ShowErrorOnlineView}
         <p>Dieser Newsletter lässt sich derzeit nicht anzeigen.</p>
      {/E-NL-SEC-ShowErrorOnlineView}
   </body>
</html>
```

> [!WARNING]
>
> Without `E-NL-MailBaseHref` in the `head`, the newsletter images remain empty. The image addresses in the newsletter are relative and refer to the storage location of the mailing, not to the shop.

## The tags at a glance

| Tag | Single tag | Range tag | Negative range tag | Loop tag | Template |
| - | - | - | - | - | - |
| `E-NL-SEC-Subscribe` | – | yes | yes | – | Manage |
| `E-NL-SEC-SubscribeVerificationSent` | – | yes | yes | – | Manage |
| `E-NL-SEC-SubscribeVerified` | – | yes | yes | – | Manage |
| `E-NL-SEC-Unsubscribe` | – | yes | yes | – | Manage |
| `E-NL-SEC-UnsubscribeVerificationSent` | – | yes | yes | – | Manage |
| `E-NL-SEC-UnsubscribeVerified` | – | yes | yes | – | Manage |
| `E-NL-SEC-Manage` | – | yes | yes | – | Manage |
| `E-NL-SEC-ManageVerificationSent` | – | yes | yes | – | Manage |
| `E-NL-SEC-ManageVerified` | – | yes | yes | – | Manage |
| `E-NL-SEC-NewSubscriber` | – | yes | yes | – | Manage |
| `E-NL-SEC-EmailSent` | – | yes | yes | – | Manage |
| `E-NL-SEC-Ajax` | – | yes | – | – | Manage |
| `E-NL-MSG-Error` | yes | yes | yes | – | Manage |
| `E-NL-MSG-Info` | yes | yes | yes | – | Manage |
| `E-NL-SEC-ShowOnlineNewsletter` | – | yes | yes | – | OnlineView |
| `E-NL-SEC-ShowErrorOnlineView` | – | yes | yes | – | OnlineView |
| `E-NL-OnlineView` | yes | – | – | – | OnlineView |
| `E-NL-Title` | yes | – | – | – | OnlineView |
| `E-NL-MailBaseHref` | yes | – | – | – | OnlineView |

The Template column names the parameter in the `<eMarketingManager>` section of the shop configuration under which the respective template is entered.

## Related topics

* Guide: E-Marketing Manager
* Materials: Materials for the E-Marketing Manager
* Reference: E-NL- (Sign-up form)
* Reference: E-NL- (Managing the subscription)
* Reference: NL- (Newsletter sign-up in the order process)


## Related topics

- [E-NL- (Managing the subscription)](https://dokumentation.websale.de/en/v8s/referenz/tags/e-nl/abonnement-verwalten.md)
- [E-NL- (Sign-up form)](https://dokumentation.websale.de/en/v8s/referenz/tags/e-nl/anmeldeformular.md)
- [E-NL- (Voucher for newsletter subscription)](https://dokumentation.websale.de/en/v8s/referenz/tags/e-nl/gutscheine.md)
- [NL- (Newsletter sign-up in the order process)](https://dokumentation.websale.de/en/v8s/referenz/tags/nl.md)
- [Materials: E-Marketing-Manager](https://dokumentation.websale.de/en/v8s/materialien/materialien-emarketing-manager.md)


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