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

# WatchList

> WatchList-Aktionen für die Merkliste: Produkte über WatchListItemAdd hinzufügen und über WatchListItemDelete aus der Wunschliste entfernen.

In diesem Abschnitt werden die verfügbaren Aktionen im Bereich Merkliste beschrieben. Mit diesen Aktionen können Produkte zur Merkliste hinzugefügt oder daraus entfernt werden.

***

## Aktionen im Überblick

| **Aktion**            | **Beschreibung**                                    |
| --------------------- | --------------------------------------------------- |
| `WatchListItemAdd`    | Fügt ein oder mehrere Produkte zur Merkliste hinzu. |
| `WatchListItemDelete` | Entfernt ein Produkt aus der Merkliste.             |
| `AddWatchList`        | Erstellt eine neue Merkliste.                       |
| `DeleteWatchList`     | Löscht eine bestehende Merkliste.                   |
| `RenameWatchList`     | Benennt eine bestehende Merkliste um.               |

***

## Aktionen

### WatchListItemAdd

Mit dieser Aktion wird ein Produkt zur Merkliste des Benutzers hinzugefügt. Es können sowohl einzelne Produkte als auch mehrere Produkte gleichzeitig übergeben werden.

**Anwendungsbeispiel**\
Nutzbar auf Produkt- oder Kategorieseiten, auf denen Kunden Artikel auf ihre Merkliste setzen können, um sie später wiederzufinden oder zu kaufen.

**Parameter**

| **Name**                               | **Beschreibung**                                                                |
| -------------------------------------- | ------------------------------------------------------------------------------- |
| `productId`                            | Die ID des Produkts, das zur Merkliste hinzugefügt werden soll.                 |
| `freeFields.<identifier>`              | Optionale Freifelder, die dem Merklisten-Eintrag zugeordnet werden können.      |
| `multiProducts.<productId>.<quantity>` | Ermöglicht das gleichzeitige Hinzufügen mehrerer Produkte mit jeweiliger Menge. |

**Fehlercodes**

| **Fehlercode**     | **Beschreibung**                                                        |
| ------------------ | ----------------------------------------------------------------------- |
| `missingProductId` | Parameter `productId` fehlt oder ist leer.                              |
| `invalidProductId` | Das Produkt mit der angegebenen `productId` existiert nicht.            |
| `invalidVariantId` | Die angegebene Variante des Produkts ist ungültig oder nicht vorhanden. |

**Zugehörige Module, Variablen & Methoden**

* [\$wsWatchList](/frontend/referenz/module/wswatchlist)
* [\$wsWatchList.watchLists](/frontend/referenz/module/wswatchlist#\$wswatchlist-watchlists)
* [\$wsWatchList.loadWatchList()](/frontend/referenz/module/wswatchlist#\$wswatchlist-loadwatchlist)
* [\$wsWatchList.isProductOnWatchList()](/frontend/referenz/module/wswatchlist#\$wswatchlist-isproductonwatchlist)
* [\$wsWatchList.countWatchListsWithProduct()](/frontend/referenz/module/wswatchlist#\$wswatchlist-countwatchlistswithproduct)

**Beispiel** das zeigt, wie ein Produkt zur Standard-Merkliste hinzugefügt wird.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ var $myActionWatchListItemAdd = $wsActions.create("WatchListItemAdd") }}
<form method="post" action="{{= $wsViews.current.url() }}">
    <input type="hidden" name="wsact" value="{{= $myActionWatchListItemAdd.id }}">
    <input type="hidden" name="wscsrf" value="{{= $myActionWatchListItemAdd.csrf }}">
    <input type="hidden" name="productId" value="{{= $myProduct.id }}">
    <input type="hidden" name="watchListIds.default" value="default">
    <button type="submit">Zur Merkliste hinzufügen</button>
</form>
```

***

### WatchListItemDelete

Mit dieser Aktion wird ein Eintrag aus der Merkliste des Benutzers entfernt.

**Anwendungsbeispiel**\
Nutzbar auf der Merklisten-Seite, auf der Kunden einzelne Produkte wieder von ihrer Merkliste löschen können.

**Parameter**

| **Name**          | **Beschreibung**                                          |
| ----------------- | --------------------------------------------------------- |
| `watchListItemId` | Die ID des Merklisten-Eintrags, der gelöscht werden soll. |

**Fehlercodes**

| **Fehlercode**           | **Beschreibung**                                 |
| ------------------------ | ------------------------------------------------ |
| `missingWatchListItemId` | Parameter `watchListItemId` fehlt oder ist leer. |

**Zugehörige Module, Variablen & Methoden**

* [\$wsWatchList](/frontend/referenz/module/wswatchlist)
* [\$wsWatchList.watchLists](/frontend/referenz/module/wswatchlist#\$wswatchlist-watchlists)
* [\$wsWatchList.loadWatchList()](/frontend/referenz/module/wswatchlist#\$wswatchlist-loadwatchlist)
* [\$wsWatchList.loadWatchListItemId()](/frontend/referenz/module/wswatchlist#\$wswatchlist-loadwatchlistitemid)

**Beispiel** das zeigt, wie ein Produkt anhand seiner Merklisten-Eintrags-ID aus der Standard-Merkliste entfernt wird.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ var $myActionWatchListItemDelete = $wsActions.create("WatchListItemDelete") }}
{{ var $myWatchListItemId = $wsWatchList.loadWatchListItemId("default", $myProduct.id) }}
<form method="post" action="{{= $wsViews.current.url() }}">
    <input type="hidden" name="wsact" value="{{= $myActionWatchListItemDelete.id }}">
    <input type="hidden" name="wscsrf" value="{{= $myActionWatchListItemDelete.csrf }}">
    <input type="hidden" name="productId" value="{{= $myProduct.id }}">
    <input type="hidden" name="watchListItemId" value="{{= $myWatchListItemId }}">
    <button type="submit">Von Merkliste entfernen</button>
</form>
```

***

### AddWatchList

Mit dieser Aktion wird eine neue Merkliste für den eingeloggten Benutzer erstellt.

**Anwendungsbeispiel**\
Nutzbar auf der Merklisten-Verwaltungsseite, auf der Kunden zusätzlich Merklisten anlegen können, z.B. für verschiedene Anlässe oder Kategorien.

**Parameter**

| **Name**        | **Beschreibung**              |
| --------------- | ----------------------------- |
| `watchListName` | Der Name der neuen Merkliste. |

**Fehlercodes**

| **Fehlercode**         | **Beschreibung**                   |
| ---------------------- | ---------------------------------- |
| `notLoggedIn`          | Der Benutzer ist nicht eingeloggt. |
| `missingWatchListName` | Parameter `watchListName` fehlt.   |

**Zugehörige Module, Variablen & Methoden**

* [\$wsWatchList](/frontend/referenz/module/wswatchlist)
* [\$wsWatchList.watchLists](/frontend/referenz/module/wswatchlist#\$wswatchlist-watchlists)

**Beispiel** das zeigt, wie eine neue Merkliste über ein Eingabefeld erstellt wird.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ var $myActionAddWatchList = $wsActions.create("AddWatchList") }}
<form method="post" action="{{= $wsViews.current.url() }}">
    <input type="hidden" name="wsact" value="{{= $myActionAddWatchList.id }}">
    <input type="hidden" name="wscsrf" value="{{= $myActionAddWatchList.csrf }}">
    <input type="text" name="watchListName">
    <button type="submit">Neue Merkliste erstellen.</button>
</form>
```

***

### DeleteWatchList

Mit dieser Aktion wird eine bestehende Merkliste des eingeloggten Benutzers gelöscht.

**Anwendungsbeispiel**\
Nutzbar auf der Merklisten-Verwaltungsseite, auf der Kunden nicht mehr benötigte Merklisten entfernen können.

**Parameter**

| **Name**      | **Beschreibung**                                |
| ------------- | ----------------------------------------------- |
| `watchListId` | Die ID der Merkliste, die gelöscht werden soll. |

**Fehlercodes**

| **Fehlercode**       | **Beschreibung**                                                                    |
| -------------------- | ----------------------------------------------------------------------------------- |
| `notLoggedIn`        | Der Benutzer ist nicht eingeloggt.                                                  |
| `missingWatchListId` | Parameter `watchListId` fehlt.                                                      |
| `invalidWatchListId` | Die angegebene Merkliste existiert nicht oder gehört nicht zu diesem Benutzerkonto. |

**Zugehörige Module, Variablen & Methoden**

* [\$wsWatchList](/frontend/referenz/module/wswatchlist)
* [\$wsWatchList.watchLists](/frontend/referenz/module/wswatchlist#\$wswatchlist-watchlists)

**Beispiel** das zeigt, wie eine Merkliste über einen Button gelöscht wird.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ var $myActionDeleteWatchList = $wsActions.create("DeleteWatchList") }}
<form method="post" action="{{= $wsViews.current.url() }}">
    <input type="hidden" name="wsact" value="{{= $myActionDeleteWatchList.id }}">
    <input type="hidden" name="wscsrf" value="{{= $myActionDeleteWatchList.csrf }}">
    <input type="hidden" name="watchListId" value="{{= $myWatchList.watchListId }}">
    <button type="submit">Merkliste löschen.</button>
</form>
```

***

### RenameWatchList

Mit dieser Aktion wird eine bestehende Merkliste des eingeloggten Benutzers umbenannt.

**Anwendungsbeispiel**\
Nutzbar auf der Merklisten-Verwaltungsseite, auf der Kunden den Namen einer bestehenden Merkliste anpassen können.

**Parameter**

| **Name**        | **Beschreibung**                                 |
| --------------- | ------------------------------------------------ |
| `watchListId`   | Die ID der Merkliste, die umbenannt werden soll. |
| `watchListName` | Der neue Name der Merkliste.                     |

**Fehlercodes**

| **Fehlercode**         | **Beschreibung**                                                                    |
| ---------------------- | ----------------------------------------------------------------------------------- |
| `notLoggedIn`          | Der Benutzer ist nicht eingeloggt.                                                  |
| `missingWatchListId`   | Parameter `watchListId` fehlt.                                                      |
| `missingWatchListName` | Parameter `watchListName` fehlt.                                                    |
| `invalidWatchListId`   | Die angegebene Merkliste existiert nicht oder gehört nicht zu diesem Benutzerkonto. |

**Zugehörige Module, Variablen & Methoden**

* [\$wsWatchList](/frontend/referenz/module/wswatchlist)
* [\$wsWatchList.watchLists](/frontend/referenz/module/wswatchlist#\$wswatchlist-watchlists)

**Beispiel** das zeigt, wie eine Merkliste über ein Eingabefeld umbenannt wird.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ var $myActionRenameWatchList = $wsActions.create("RenameWatchList") }}
<form method="post" action="{{= $wsViews.current.url() }}">
    <input type="hidden" name="wsact" value="{{= $myActionRenameWatchList.id }}">
    <input type="hidden" name="wscsrf" value="{{= $myActionRenameWatchList.csrf }}">
    <input type="hidden" name="watchListId" value="{{= $myWatchList.watchListId }}">
    <input type="text" name="watchListName" value="{{= $myWatchList.watchListName }}">
    <button type="submit">Merkliste umbenennen.</button>
</form>
```
