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

# Wunschliste

> Käufer legen Wunschlisten an und teilen sie per Link oder E-Mail. Bestandsverwaltung verhindert Doppelbestellungen.

Eine Wunschliste hat immer zwei Seiten. Auf der einen steht der **Wünschende**, der sich Produkte zusammenstellt und die Liste weitergibt. Auf der anderen stehen die **Schenkenden**, die die Liste über einen Link öffnen und daraus bestellen.

Diese Zweiteilung zieht sich durch die ganze Funktion, bis hin zu den beiden Templates: eines für die Verwaltung, eines für die Ansicht von außen. Wer das im Kopf behält, findet sich in der Integration deutlich leichter zurecht.

> [!WARNING]
>
> Der Shop versendet bei dieser Funktion unverlangt E-Mails an Dritte. Das ist aus datenschutzrechtlichen Gründen nicht in allen Ländern zulässig. Prüfen Sie die Rechtslage für **jedes Zielland jedes Subshops**, bevor Sie die Funktion einbauen.
>
> Als Alternative bietet sich an, auf die Empfängerliste im Shop zu verzichten und stattdessen einen `mailto`-Link anzubieten. Der Käufer verschickt die Wunschliste dann aus seinem eigenen E-Mail-Programm, und der Shop versendet nichts.

## Was die Funktion leistet

| Merkmal | |
| - | - |
| Mehrere Listen | Der Käufer legt im Kundenkonto beliebig viele Wunschlisten an, bis zu einer Höchstzahl |
| Lieferadresse je Liste | Zu jeder Wunschliste gehört die gewünschte Lieferadresse |
| Eigener Link je Liste | Über diesen Link kommen die Schenkenden zur Liste, ohne Kundenkonto |
| Versand per E-Mail | Der Link lässt sich im Template anzeigen und aus dem Shop heraus verschicken |
| Bestandsverwaltung | Verhindert, dass dasselbe Produkt mehrfach geschenkt wird |
| Endtermin | Bis zu diesem Datum ist die Liste gültig und wird angezeigt |

Zu jedem Produkt auf der Liste sieht der Schenkende vier Angaben.

| Angabe | Bedeutung |
| - | - |
| Datum und Uhrzeit | wann das Produkt auf die Liste gesetzt wurde |
| gewünschte Menge | was sich der Wünschende vorstellt |
| bereits bestellte Menge | was andere Schenkende schon gekauft haben |
| noch verfügbare Menge | was für diesen Schenkenden übrig ist |

Die Bestandsverwaltung arbeitet wie die Lagerbestandsverwaltung: Legt ein Schenkender ein Wunschprodukt in den Warenkorb, ist es für die anderen reserviert. Ohne diesen Mechanismus bekäme das Geburtstagskind dreimal dasselbe Buch.

## Schritt 1: Freischaltung

Die Funktion muss von der WEBSALE-Technik freigeschaltet werden. Wenden Sie sich dafür an Ihren WEBSALE-Ansprechpartner.

## Schritt 2: Die Templates zuweisen

Die beiden Templates entsprechen den beiden Rollen.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<Templates>
   ...
   Wishlist      = ws_wishlist.htm
   WishlistAdmin = ws_wishlist_admin.htm
   ...
</Templates>
```

| Eintrag | Für wen | Zeigt |
| - | - | - |
| `Wishlist` | den Schenkenden | die Wunschliste, wie sie über den Link erreichbar ist |
| `WishlistAdmin` | den Wünschenden | das Anlegen und Verwalten der eigenen Listen |

Referenz: [Abschnitt Templates](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/grundlagen-und-technik.md#templates)

## Schritt 3: Den Hinweis in den Bestelldaten festlegen

Damit in der Bestellung erkennbar ist, dass eine Position aus einer Wunschliste stammt, hinterlegen Sie im Abschnitt `<BasketEntries>` einen Text.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<BasketEntries>
   ...
   WishListOrderInfo-Txt = Wunschprodukt von ~WISH-OwnerFirstName~ ~WISH-OwnerLastName~
   ...
</BasketEntries>
```

Der Text landet in den Bestelldaten und damit auch in Ihrer Warenwirtschaft. Nennen Sie darin den Wünschenden, sonst sieht der Versand nur eine abweichende Lieferadresse und weiß nicht, warum.

Ohne diesen Parameter erscheint kein Hinweis. Die Angabe ist also technisch optional, fachlich aber kaum verzichtbar.

Referenz: [Abschnitt BasketEntries](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/warenkorb-und-bestellprozess.md#basketentries)

## Schritt 4: Die Meldung zu gemischten Warenkörben hinterlegen

Ein Warenkorb darf Produkte aus nur **einer** Wunschliste enthalten. Den Text dazu hinterlegen Sie im Abschnitt `<NotifyMessages-Txt>`.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<NotifyMessages-Txt>
   ...
   ProductFromDifferentWishLists = Sie können nur Produkte aus einer Wunschliste in den Warenkorb legen. Bitte schließen Sie Ihre Bestellung ab, bevor Sie Produkte aus einer anderen Wunschliste hinzufügen.
   ...
</NotifyMessages-Txt>
```

Der Grund für die Einschränkung ist die Lieferadresse: Jede Wunschliste hat eine eigene, und eine Bestellung geht an eine Adresse. Ohne diesen Text klickt der Schenkende auf "in den Warenkorb" und es passiert scheinbar nichts.

Referenz: [Abschnitt NotifyMessages-Txt](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/texte-und-meldungen.md#notifymessages-txt)

## Schritt 5: Zahlungsarten ausschließen (optional)

Bei jeder Zahlungsart lässt sich hinterlegen, dass sie bei Lieferung an eine Wunschlisten-Adresse nicht zur Verfügung steht. Der Parameter steht im Abschnitt der jeweiligen Zahlungsart.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<PaymentBill-Txt>
   ...
   DenyWishList = yes
   ...
</PaymentBill-Txt>
```

| Wert | Wirkung |
| - | - |
| `yes` | Die Zahlungsart steht bei Lieferung an eine Wunschlisten-Adresse nicht zur Verfügung |
| `no` | Sie steht zur Verfügung. Voreinstellung |

Der Abschnittsname richtet sich nach der Zahlungsart, `PaymentBill-Txt` ist hier nur ein Beispiel. Sinnvoll ist der Ausschluss vor allem beim Kauf auf Rechnung: Die Rechnung ginge an den Schenkenden, die Ware an den Wünschenden, und eine Bonitätsprüfung passt auf diese Konstellation nicht.

## Schritt 6: Die Meldungstexte hinterlegen

Im Abschnitt `<WishList>` stehen die Texte, die der Käufer bei Fehlern und Hinweisen zu sehen bekommt. Sie sind durchnummeriert.

| Nummer | Situation |
| - | - |
| 1 | Beim Anlegen fehlt der Name der Wunschliste |
| 2 | Eine Wunschliste mit diesem Namen existiert bereits |
| 3 | Beim Ändern der Daten sind Pflichtfelder leer |
| 4 | Die Höchstzahl an Wunschlisten ist erreicht |
| 5 | Beim Versand fehlt der Betreff der E-Mail |
| 6 | Die neue Wunschmenge ist kleiner als die bereits gekaufte Menge |
| 7 | Die gewünschte Menge ist nicht mehr verfügbar |
| 8 | Ein Produkt im Warenkorb ist nicht mehr verfügbar, die Nachreservierung ist fehlgeschlagen |
| 10 | Das Produkt hat eine Mindestbestellmenge |
| 11 | Die Bestellmenge muss durch den Mengenfaktor teilbar sein |
| 12 | Für das Benutzerkonto fehlt eine E-Mail-Adresse |

Die Nummer 9 fehlt nicht versehentlich. Sie ist im Programm als veraltet gekennzeichnet und wird nicht mehr verwendet.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<WishList>
   1  = Bitte geben Sie einen Namen für die Wunschliste an.
   2  = Es existiert bereits eine Wunschliste mit diesem Namen. Bitte wählen Sie einen anderen.
   3  = Bitte füllen Sie alle markierten Felder aus.
   4  = Sie können keine weitere Wunschliste anlegen. Bitte löschen Sie zuerst eine bestehende.
   5  = Bitte geben Sie einen Betreff für Ihre E-Mail ein.
   6  = Bei mindestens einem Produkt ist die gewünschte Menge kleiner als die bereits gekaufte Menge.<br>Bitte prüfen Sie Ihre Eingaben.
   7  = Die gewünschte Menge ist nicht mehr verfügbar. Bitte prüfen Sie Ihre gewünschten Mengen.
   8  = Mindestens ein Produkt einer Wunschliste ist nicht mehr verfügbar.<br>Bitte entfernen Sie die betroffenen Produkte aus Ihrem Warenkorb.
   10 = Das Produkt "~PR-Name~" hat eine Mindestbestellmenge von ~PR-MinQuantity~ ~PR-Unit~.
   11 = Die Bestellmenge für das Produkt "~PR-Name~" muss durch ~PR-UnitFactor~ teilbar sein.
   12 = Sie müssen für Ihr Benutzerkonto eine E-Mail-Adresse eingeben, bevor Sie Ihre Wunschliste versenden können.
</WishList>
```

In den Texten 10 und 11 stehen Produkt-Tags. Sie werden beim Anzeigen durch die Werte des betroffenen Produkts ersetzt, die Meldung nennt also Ross und Reiter.

## Schritt 7: Das E-Mail-Template festlegen

Der Versand der Wunschliste braucht ein eigenes HTML-Template.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<WishListMail>
   Template = mail_wishlist.htm
</WishListMail>
```

Referenz: [Abschnitt WishListMail](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/e-mails.md#wishlistmail)

## Schritt 8: Die Templates bearbeiten

Die Wunschliste greift an vielen Stellen in den Shop ein. Diese Templates müssen Sie ergänzen.

| Template | Zu ergänzen |
| - | - |
| `ws_product.htm` | die Möglichkeit, das Produkt auf eine Wunschliste zu setzen |
| `ws_basket.htm` | je Position der Hinweis, aus welcher Wunschliste sie stammt |
| `ws_address_combined.htm` | die Behandlung der Lieferadresse aus der Wunschliste |
| `ws_place_order.htm` | dieselben Angaben vor dem Absenden |
| `ws_confirm.htm` | dieselben Angaben in der Bestätigung |
| PDF und Bestätigungs-E-Mail | dieselben Angaben, damit der Beleg vollständig ist |
| `ws_user_account.htm` | der Zugang zur Wunschlistenverwaltung |
| `ws_order_history.htm` | die Kennzeichnung von Wunschlistenbestellungen |

Diese beiden Templates legen Sie neu an.

| Template | Für wen |
| - | - |
| `ws_wishlist_admin.htm` | den Wünschenden, zum Anlegen und Verwalten |
| `ws_wishlist.htm` | den Schenkenden, zur Ansicht über den Link |

Optional können Sie auf einem beliebigen Template einen Bereich vorsehen, über den ein Besucher zur zuletzt angesehenen Wunschliste zurückkehrt. Das ist nützlich, weil ein Schenkender, der über einen Wunschlistenlink in den Shop kommt und dann stöbert, sonst den Weg zurück verliert.

## Styles und Tags

Für die vom Shop erzeugten Elemente der Wunschliste gibt es eigene Klassen, die Sie in Ihre Stylesheet-Datei aufnehmen.

Die Wunschliste bringt einen eigenen Satz Tags mit dem Präfix `WISH-` mit, dazu Produkt-Tags mit dem Präfix `PR-WishList`. Sie stehen auf der Referenzseite.

Referenz: Styles für Wunschliste · Spezielle Tags für Wunschliste

## Verwandte Themen

* Wegweiser: [Merkliste](https://dokumentation.websale.de/v8s/interaktive-funktionen/merkliste.md)
* Wegweiser: [Kundenkonto](https://dokumentation.websale.de/v8s/zahlungsarten-anlegen/kundenkonto.md)
* Referenz: [Abschnitt WishListMail](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/e-mails.md#wishlistmail)


## Related topics

- [Wunschliste im Shop](https://dokumentation.websale.de/v8s/referenz/tags/wunschliste/wunschliste-im-shop.md)
- [Wunschliste anzeigen (wishlist-Template)](https://dokumentation.websale.de/v8s/referenz/tags/wunschliste/wunschliste-anzeigen.md)
- [Wunschlisten verwalten (admin-Template)](https://dokumentation.websale.de/v8s/referenz/tags/wunschliste/wunschlisten-verwalten.md)
- [Styles für Warenkorb und Bestellung](https://dokumentation.websale.de/v8s/referenz/styles/warenkorb-und-bestellung.md)
- [Daten-Migration](https://dokumentation.websale.de/migration/daten-migration.md)


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