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

# Inventory

> Inventory-Aktionen für Lagerbestände: Produktreservierungen erneuern und Benachrichtigungen bei Wiederverfügbarkeit von Artikeln verwalten.

In diesem Abschnitt werden die verfügbaren Aktionen im Bereich `Inventory` beschrieben. Mit diesen Aktionen können Produktreservierungen erneuert und Benachrichtigungen bei Wiederverfügbarkeit verwaltet werden.

***

## Aktionen im Überblick

| **Aktion**                    | **Beschreibung**                                                        |
| ----------------------------- | ----------------------------------------------------------------------- |
| `InventoryReserve`            | Erneuert die Reservierung eines Produkts im Warenkorb.                  |
| `BackInStockActivateNotify`   | Aktiviert eine Benachrichtigung, wenn ein Produkt wieder verfügbar ist. |
| `BackInStockDeactivateNotify` | Deaktiviert eine bestehende Wiedervorrätig-Benachrichtigung.            |

***

## Aktionen

### InventoryReserve

Mit dieser Aktion wird die Reservierung eines Produkts im Warenkorb erneuert. Sie ist nur relevant, wenn die Reservierungsdauer eines Artikels abgelaufen ist und der Kunde die Reservierung verlängern möchte.

**Anwendungsbeispiel**\
Nutzbar auf der Warenkorbseite, wenn die Reservierungszeit eines Artikels abgelaufen ist und dem Kunden die Möglichkeit gegeben werden soll, die Reservierung zu erneuern.

**Parameter**

| **Name**       | **Beschreibung**                                                         |
| -------------- | ------------------------------------------------------------------------ |
| `basketItemId` | Die ID des Warenkorb-Eintrags, dessen Reservierung erneuert werden soll. |

**Fehlercodes**

| **Fehlercode**        | **Beschreibung**                                                                               |
| --------------------- | ---------------------------------------------------------------------------------------------- |
| `missingBasketItemId` | Parameter `basketItemId` fehlt.                                                                |
| `invalidBasketItemId` | Der Warenkorb-Eintrag existiert nicht oder gehört nicht zu diesem Warenkorb.                   |
| `reservationFailed`   | Die Reservierung konnte nicht erneuert werden, z.B. weil das Produkt nicht mehr verfügbar ist. |

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

* [\$wsInventory](/frontend/referenz/module/wsinventory)
* [\$wsInventory.load()](/frontend/referenz/module/wsinventory#\$wsinventory-load)
* [\$wsInventory.loadReservation()](/frontend/referenz/module/wsinventory#\$wsinventory-loadreservation)
* [\$wsBasket.items](/frontend/referenz/module/wsbasket#\$wsbasket-items)

**Beispiel** das zeigt, wie einem Kunden bei abgelaufener Reservierung die Möglichkeit gegeben wird, diese über einen Button zu erneuern.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ var $myReservation = $wsInventory.loadReservation($myProduct.id) }}
{{ if $myReservation and $myReservation.duration == 0 }}
    {{ var $myActionInventoryReserve = $wsActions.create("InventoryReserve", tag=$myProduct.id) }}
    <form method="post" action="{{= $wsViews.viewUrl('basket.htm') }}">
        <input type="hidden" name="wscsrf" value="{{= $myActionInventoryReserve.csrf }}">
        <input type="hidden" name="wsact" value="{{= $myActionInventoryReserve.id }}">
        <input type="hidden" name="wstarget" value="{{= $wsViews.viewUrl('basket.htm') }}">
        <input type="hidden" name="basketItemId" value="{{= $myProduct.id }}">
        <button type="submit">Reservierung erneuern.</button>
    </form>
{{ /if }}
```

***

### BackInStockActivateNotify

Mit dieser Aktion wird eine Benachrichtigung aktiviert, die den Kunden per E-Mail informiert, sobald ein ausverkauftes Produkt wieder verfügbar ist.

**Anwendungsbeispiel**\
Nutzbar auf der Produktdetailseite, wenn ein Produkt ausverkauft ist und der Kunde benachrichtigt werden möchte, sobald es wieder bestellbar ist.

**Parameter**

| **Name**    | **Beschreibung**                                                         |
| ----------- | ------------------------------------------------------------------------ |
| `productId` | Die ID des Produkts, für das die Benachrichtigung aktiviert werden soll. |
| `email`     | Die E-Mail-Adresse, an die die Benachrichtigung gesendet werden soll.    |

**Fehlercodes**

| **Fehlercode**     | **Beschreibung**                            |
| ------------------ | ------------------------------------------- |
| `missingProductId` | Parameter `productId` fehlt.                |
| `missingEmail`     | Parameter `email` fehlt.                    |
| `emailCheckFailed` | Die angegebene E-Mail-Adresse ist ungültig. |

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

* [\$wsInventory](/frontend/referenz/module/wsinventory)
* [\$wsAccount.backInStockList](/frontend/referenz/module/wsAccount#\$wsaccount-backinstocklist)

**Beispiel** das zeigt, wie ein Kunde eine Benachrichtigung für ein ausverkauftes Produkt aktivieren kann.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ var $myActionBackInStockActivateNotify = $wsActions.create("BackInStockActivateNotify") }}
<form method="post" action="{{= $wsViews.current.url() }}">
    <input type="hidden" name="wscsrf" value="{{= $myActionBackInStockActivateNotify.csrf }}">
    <input type="hidden" name="wsact" value="{{= $myActionBackInStockActivateNotify.id }}">
    <input type="hidden" name="productId" value="{{= $myProduct.id }}">
    <input type="email" name="email">
    <button type="submit">Informiert werden, wenn das Produkt wieder vorrätig ist.</button>
</form>
```

***

### BackInStockDeactivateNotify

Mit dieser Aktion wird eine bestehende Wiedervorrätig-Benachrichtigung deaktiviert.

**Anwendungsbeispiel**\
Nutzbar auf der Account-Übersichtsseite, auf der eingeloggte Kunden ihre aktiven Benachrichtigungen einsehen und entfernen können.

**Parameter**

| **Name**    | **Beschreibung**                                                           |
| ----------- | -------------------------------------------------------------------------- |
| `productId` | Die ID des Produkts, für das die Benachrichtigung deaktiviert werden soll. |
| `email`     | Die E-Mail-Adresse, für die die Benachrichtigung deaktiviert werden soll.  |

**Fehlercodes**

| **Fehlercode**     | **Beschreibung**             |
| ------------------ | ---------------------------- |
| `missingProductId` | Parameter `productId` fehlt. |
| `missingEmail`     | Parameter `email` fehlt.     |

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

* [\$wsInventory](/frontend/referenz/module/wsinventory)
* [\$wsAccount.backInStockList](/frontend/referenz/module/wsAccount#\$wsaccount-backinstocklist)

**Beispiel** das zeigt, wie eine aktive Benachrichtigung über einen Button deaktiviert wird.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ var $myActionBackInStockDeactivateNotify = $wsActions.create("BackInStockDeactivateNotify") }}
<form method="post" action="{{= $wsViews.current.url() }}">
    <input type="hidden" name="wscsrf" value="{{= $myActionBackInStockDeactivateNotify.csrf }}">
    <input type="hidden" name="wsact" value="{{= $myActionBackInStockDeactivateNotify.id }}">
    <input type="hidden" name="productId" value="{{= $myProduct.id }}">
    <input type="hidden" name="email" value="{{= $myProduct.email }}">
    <button type="submit">%%DeleteFromNotification%%</button>
</form>
```


## Related topics

- [Template-Migration](/migration/migration-websale-v8s-neue-version/template-migration.md)
- [$wsInventory - Lagerbestand](/frontend/referenz/module/wsinventory.md)
- [API-Referenz Produkte](/schnittstellen/admin-interface-api/api-referenz-produkte.md)
- [actions - Warenkorb & Checkout](/konfiguration/actions-fehlertexte-e-mails/actions-warenkorb-checkout.md)
- [Storefront API Lagerbestand](/schnittstellen/storefront-api/storefront-api-lagerbestand.md)
