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

# IR- (BackInStockMail)

> Das Formular aufbauen, mit dem sich ein Besucher für die Benachrichtigung bei Wiederverfügbarkeit anmeldet, und die Zahl seiner Anmeldungen abfragen.

Mit BackInStockMail hinterlässt ein Besucher seine Kontaktdaten zu einem Produkt, das gerade nicht lieferbar ist. Verbessert sich der Lieferbarkeitsstatus, schickt der Shop ihm automatisch eine E-Mail mit einem Deep-Link auf das Produkt.

Die `IR-`Tags bauen genau einen Teil dieser Funktion: das Formular, in dem der Besucher seine Kontaktdaten einträgt. Dieses Formular liegt auf dem Template, das in der Shopkonfiguration `shop.config` im Abschnitt `<Templates>` unter `InventoryRegister` eingetragen ist. Ein Tag der Gruppe fällt aus dem Rahmen und lässt sich auf jedem Template verwenden, dazu weiter unten.

Die Benachrichtigungs-E-Mail selbst kennt keine `IR-`Tags. Sie arbeitet mit `A-` und `PR-`Tags.

Wegweiser: BackInStockMail · Referenz: [Abschnitt OrderNowMail](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/e-mails.md#ordernowmail)

## Das Kontaktdatenformular

Pflicht ist allein die E-Mail-Adresse. Anrede, Vorname und Nachname sind nach der Datenschutzgrundverordnung freiwillig und sollten auch so gekennzeichnet sein.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<form action="~FORM-InventoryRegister~" method="post">
   ~MSG-InventoryRegister_Notify~

   {PR-Data}
      <p>Produkt: ~PR-Name~</p>
   {/PR-Data}

   <label>Anrede ~IR-SalutationList~</label>

   <label for="~IR-FirstName_input~">Vorname</label>
   <input type="text" maxlength="128"
          id="~IR-FirstName_input~" name="~IR-FirstName_input~" value="~IR-FirstName~">

   <label for="~IR-LastName_input~">Nachname</label>
   <input type="text" maxlength="128"
          id="~IR-LastName_input~" name="~IR-LastName_input~" value="~IR-LastName~">

   <label for="~IR-Email_input~">E-Mail-Adresse *</label>
   <input type="email" maxlength="128" required
          id="~IR-Email_input~" name="~IR-Email_input~" value="~IR-Email~">

   <button type="submit">Benachrichtigen</button>
</form>
```

Jedes Eingabefeld besteht aus zwei Tags. Das `_input`-Tag liefert den Feldnamen, den das Shopsystem beim Absenden erwartet. Das gleichnamige Tag ohne `_input` liefert den Wert, mit dem das Feld vorbelegt wird.

> [!WARNING]
>
> Schreiben Sie die Feldnamen nie von Hand. Sie sind im Shopsystem fest vergeben, und ein abweichender Name führt dazu, dass das Feld beim Absenden verloren geht. Die E-Mail-Adresse fehlt dann, und die Anmeldung scheitert, ohne dass der Besucher den Grund sieht.

## Die Tags des Formulars

| Tag | Liefert |
| - | - |
| `IR-SalutationList` | die fertige Auswahlliste für die Anrede, einschließlich der Einträge |
| `IR-FirstName_input` | den Feldnamen für den Vornamen |
| `IR-FirstName` | den vorbelegten Vornamen |
| `IR-LastName_input` | den Feldnamen für den Nachnamen |
| `IR-LastName` | den vorbelegten Nachnamen |
| `IR-Email_input` | den Feldnamen für die E-Mail-Adresse |
| `IR-Email` | die vorbelegte E-Mail-Adresse |

`IR-SalutationList` gibt das vollständige `select`-Element aus, nicht nur die Einträge. Sie können es nicht in ein eigenes `select` setzen und auch keine eigenen Einträge ergänzen. Wenn Sie die Anrede anders darstellen wollen, bleibt nur, sie wegzulassen, denn sie ist ohnehin freiwillig.

## Warum die Werte vorbelegt werden

Die drei Werttags sind kein Beiwerk. Das Shopsystem merkt sich die eingegebenen Kontaktdaten in der Sitzung, und bei einem angemeldeten Kunden stehen sie ohnehin schon fest.

* Meldet sich derselbe Besucher für ein zweites Produkt an, ist das Formular bereits ausgefüllt.
* Ist er im Shop angemeldet, stehen seine Daten von Anfang an darin.
* Wird das Formular wegen einer fehlerhaften Eingabe erneut angezeigt, bleibt das Eingetippte erhalten.

> [!WARNING]
>
> Lassen Sie das `value`-Attribut deshalb nicht weg. Ohne die Werttags muss der Besucher nach jeder beanstandeten Eingabe alles neu tippen.

Die drei Werttags arbeiten auch als Klammerung und greifen, wenn ein Wert vorliegt. Damit blenden Sie beispielsweise einen Hinweis ein, dass die Daten aus dem Kundenkonto übernommen wurden.

## Die Zahl der Anmeldungen abfragen

`IR-Positions` gibt aus, für wie viele Produkte der Besucher derzeit eine Benachrichtigung angemeldet hat. Als Klammerung greift es, sobald es mindestens eine ist.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{IR-Positions}
   <a href="~WS-LoadTpl(ws_inventory_register_overview.htm)~">
      Ihre Benachrichtigungen (~IR-Positions~)
   </a>
{/IR-Positions}

{!IR-Positions}
   <p>Sie haben derzeit keine Benachrichtigungen aktiviert.</p>
{/!IR-Positions}
```

Es ist der direkte Weg, um einen Einstieg in die Übersichtsseite nur dann anzuzeigen, wenn es dort etwas zu sehen gibt. Im Wegweiser wird dieselbe Frage bisher umständlich über eine `CAT-AdvData`-Klammerung und einen gesetzten Design-Parameter beantwortet.

`IR-Positions` ist das einzige Tag dieser Gruppe, das auf jedem Template funktioniert. Die übrigen gehören auf das `InventoryRegister`-Template. Ein naheliegender Platz ist die Kundenkonto-Übersicht, allerdings kann sich auch ein nicht angemeldeter Besucher anmelden.

## Die Tags im Überblick

| Tag | Einzel-Tag | Bereichs-Tag | negatives Bereichs-Tag | Schleifen-Tag |
| - | - | - | - | - |
| `IR-SalutationList` | ja | – | – | – |
| `IR-FirstName_input` | ja | – | – | – |
| `IR-FirstName` | ja | ja | ja | – |
| `IR-LastName_input` | ja | – | – | – |
| `IR-LastName` | ja | ja | ja | – |
| `IR-Email_input` | ja | – | – | – |
| `IR-Email` | ja | ja | ja | – |
| `IR-Positions` | ja | ja | ja | – |

Die Werte werden HTML-kodiert ausgegeben, Sie brauchen also kein zusätzliches `ENCHTML-`.

## Verwandte Themen

* Wegweiser: BackInStockMail
* Wegweiser: [Lagerbestand anzeigen](https://dokumentation.websale.de/v8s/lagerbestand/lagerbestand-anzeigen.md)
* Referenz: [FORM- (Formulare)](https://dokumentation.websale.de/v8s/referenz/tags/form-formulare.md)
* Referenz: [MSG- (Meldungen)](https://dokumentation.websale.de/v8s/referenz/tags/msg-meldungen.md)
* Referenz: [PR- (Produktdaten)](https://dokumentation.websale.de/v8s/referenz/tags/pr/grundlagen-und-produktdaten.md)


## Related topics

- [BackInStockMail im Modal abfragen](https://dokumentation.websale.de/v8s/anwendungsbeispiele/appex-backinstockmail-modal.md)
- [BackInStockMail (OrderNow-Service)](https://dokumentation.websale.de/v8s/produkte/backinstockmail-ordernow-service.md)
- [Lagerbestandsmeldung](https://dokumentation.websale.de/v8s/lagerbestand/lagerbestandsmeldung.md)
- [Ersatzprodukte (Subst-Links)](https://dokumentation.websale.de/v8s/zusatz-produkte/ersatzprodukte-subst-links.md)
- [E-Mails](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/e-mails.md)


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