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

# Basket

> Warenkorb-Aktionen im Überblick: BasketItemAdd, BasketItemUpdate, BasketItemDelete sowie VoucherAdd und VoucherDelete zum Verwalten des Warenkorbs.

In diesem Abschnitt werden die verfügbaren Aktionen im Bereich Warenkorb beschrieben. Mit diesen Aktionen können Produkte hinzugefügt, aktualisiert und entfernt sowie Gutscheine verwaltet werden.

***

## Aktionen im Überblick

| **Aktion**         | **Beschreibung**                                        |
| ------------------ | ------------------------------------------------------- |
| `BasketItemAdd`    | Legt ein Produkt in den Warenkorb.                      |
| `BasketItemUpdate` | Aktualisiert die Menge eines Produkts im Warenkorb.     |
| `BasketItemDelete` | Entfernt ein Produkt aus dem Warenkorb.                 |
| `VoucherAdd`       | Löst einen Gutscheincode im Warenkorb ein.              |
| `VoucherDelete`    | Entfernt einen eingelösten Gutschein aus dem Warenkorb. |

***

## Aktionen

### BasketItemAdd

Mit dieser Aktion wird ein Produkt in den Warenkorb gelegt.

**Anwendungsbeispiel**\
Nutzbar auf Produktedetail-, Kategorie- oder Merklisten-Seiten, auf denen Produkte direkt in den Warenkorb legen können.

**Parameter**

| **Name**                 | **Beschreibung**                                                               |
| ------------------------ | ------------------------------------------------------------------------------ |
| `productId`              | Die ID des Produkts, das in den Warenkorb gelegt werden soll.                  |
| `quantity`               | Die gewünschte Menge des Produkts.                                             |
| `freeFieldscategoryPath` | Optionales Freifeld zur Übergabe des Kategoriepfads, z.B. für Tracking-Zwecke. |

**Fehlercodes**

| **Fehlercode**     | **Beschreibung**                                      |
| ------------------ | ----------------------------------------------------- |
| `missingProductId` | Parameter `productId` fehlt.                          |
| `invalidProductId` | Das Produkt existiert nicht oder ist nicht verfügbar. |

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

* [\$wsBasket](/frontend/referenz/module/wsbasket)
* [\$wsBasket.items](/frontend/referenz/module/wsbasket#\$wsbasket-items)
* [\$wsBasket.lastBasketAction](/frontend/referenz/module/wsbasket#\$wsbasket-lastbasketaction)
* [\$wsBasket.lastUpdatedItem](/frontend/referenz/module/wsbasket#\$wsbasket-lastupdateditem)

**Beispiel** das zeigt, wie ein Produkt mit Mengenauswahl in den Warenkorb gelegt wird und nach erfolgreicher Ausführung eine Bestätigungsmeldung erscheint.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ if $wsActions.current.success and $wsActions.current.name == "BasketItemAdd" }}
    <div class="alert alert-success">Produkt zum Warenkorb hinzugefügt.</div>
{{ /if }}

{{ var $myActionBasketItemAdd = $wsActions.create("BasketItemAdd") }}
<form method="post" action="{{= $wsViews.current.url() }}">
    <input type="hidden" name="wscsrf" value="{{= $myActionBasketItemAdd.csrf }}">
    <input type="hidden" name="wsact" value="{{= $myActionBasketItemAdd.id }}">
    <input type="hidden" name="productId" value="{{= $cProduct.id }}">
    <input type="text" name="quantity" value="1">
    <button type="submit">In den Warenkorb legen.</button>
</form>
```

***

### BasketItemUpdate

Mit dieser Aktion wird die Menge eines im Warenkorb enthaltenen Produkts aktualisiert.

**Anwendungsbeispiel**\
Nutzbar auf der Warenkorbseite oder im Warenkorb-Offcanvas, wenn Kunden die Menge eines bereits hinzugefügten Produkts anpassen möchten.

**Parameter**

| **Name**       | **Beschreibung**                                                      |
| -------------- | --------------------------------------------------------------------- |
| `basketItemId` | Die ID des Warenkorb-Eintrags, dessen Menge aktualisiert werden soll. |
| `quantity`     | Die neue Menge des Produkts.                                          |

**Fehlercodes**

| **Fehlercode**        | **Beschreibung**                                                             |
| --------------------- | ---------------------------------------------------------------------------- |
| `missingBasketItemId` | Parameter `basketItemId` fehlt.                                              |
| `invalidBasketItemId` | Der Warenkorb-Eintrag existiert nicht oder gehört nicht zu diesem Warenkorb. |
| `missingQuantity`     | Parameter `quantity` fehlt.                                                  |

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

* [\$wsBasket](/frontend/referenz/module/wsbasket)
* [\$wsBasket.items](/frontend/referenz/module/wsbasket#\$wsbasket-items)
* [\$wsBasket.lastBasketAction](/frontend/referenz/module/wsbasket#\$wsbasket-lastbasketaction)
* [\$wsBasket.lastUpdatedItem](/frontend/referenz/module/wsbasket#\$wsbasket-lastupdateditem)

**Beispiel** das zeigt, wie die Menge eines Warenkorb-Eintrags über ein Formular aktualisiert wird.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ var $myActionBasketItemUpdate = $wsActions.create("BasketItemUpdate", tag = $myProduct.id) }}
<form method="post" action="{{= $wsViews.current.url() }}">
    <input type="hidden" name="wscsrf" value="{{= $myActionBasketItemUpdate.csrf }}">
    <input type="hidden" name="wsact" value="{{= $myActionBasketItemUpdate.id }}">
    <input type="hidden" name="basketItemId" value="{{= $myProduct.id }}">
    <input type="text" name="quantity" value="{{= $myProduct.quantity | preparedFormat('amount') }}">
    <button type="submit">Menge aktualisieren.</button>
</form>
```

***

### BasketItemDelete

Mit dieser Aktion wird ein Produkt aus dem Warenkorb entfernt.

**Anwendungsbeispiel**\
Nutzbar auf der Warenkorbseite oder im Warenkorb-Offcanvas, wenn Kunden ein Produkt vollständig aus dem Warenkorb entfernen möchten.

**Parameter**

| **Name**       | **Beschreibung**                                         |
| -------------- | -------------------------------------------------------- |
| `basketItemId` | Die ID des Warenkorb-Eintrags, der entfernt werden soll. |
| `productId`    | Die ID des Produkts, das entfernt werden soll.           |
| `quantity`     | Die aktuelle Menge des Produkts.                         |

**Fehlercodes**

| **Fehlercode**        | **Beschreibung**                                                             |
| --------------------- | ---------------------------------------------------------------------------- |
| `missingBasketItemId` | Parameter `basketItemId` fehlt.                                              |
| `invalidBasketItemId` | Der Warenkorb-Eintrag existiert nicht oder gehört nicht zu diesem Warenkorb. |

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

* [\$wsBasket](/frontend/referenz/module/wsbasket)
* [\$wsBasket.items](/frontend/referenz/module/wsbasket#\$wsbasket-items)
* [\$wsBasket.lastBasketAction](/frontend/referenz/module/wsbasket#\$wsbasket-lastbasketaction)
* [\$wsBasket.lastUpdatedItem](/frontend/referenz/module/wsbasket#\$wsbasket-lastupdateditem)

**Beispiel** das zeigt, wie ein Produkt über einen Button aus dem Warenkorb entfernt wird.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ var $myActionBasketItemDelete = $wsActions.create("BasketItemDelete", tag = $myProduct.id) }}
<form method="post" action="{{= $wsViews.current.url() }}">
    <input type="hidden" name="wscsrf" value="{{= $myActionBasketItemDelete.csrf }}">
    <input type="hidden" name="wsact" value="{{= $myActionBasketItemDelete.id }}">
    <input type="hidden" name="basketItemId" value="{{= $myProduct.id }}">
    <input type="hidden" name="productId" value="{{= $myProduct.product.id }}">
    <input type="hidden" name="quantity" value="{{= $myProduct.quantity | preparedFormat('amount') }}">
    <button type="submit">Produkt entfernen.</button>
</form>
```


## Related topics

- [Template-Migration](/migration/migration-websale-v8s-neue-version/template-migration.md)
- [basket - Warenkorb](/konfiguration/basket-warenkorb.md)
- [$wsBasket - Warenkorb](/frontend/referenz/module/wsbasket.md)
- [Konfigurations-Deeplinks](/admin-interface/konfigurations-deeplinks.md)
- [Storefront API Warenkorb](/schnittstellen/storefront-api/storefront-api-warenkorb.md)
