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

# CB- (Cookie-Warenkorb)

> Die Tags für den Cookie-Warenkorb: den Käufer darüber informieren, welche Produkte aus seinem gespeicherten Warenkorb nicht erneut übernommen werden konnten.

Der Cookie-Warenkorb hält den Warenkorb eines Käufers über die Sitzung hinaus fest. Legt jemand Produkte in den Warenkorb, bestellt aber nicht, und kommt Tage später wieder, findet er seinen Warenkorb vor.

Beim erneuten Befüllen geht nicht immer alles auf. Ein Produkt kann ausverkauft, ausgelaufen oder nicht mehr im Sortiment sein. Die Tags mit dem Präfix `CB-` sind ausschließlich für diesen Fall da: Sie sagen dem Käufer, was fehlt und warum sein Warenkorb kleiner ist als erwartet.

Wegweiser: [Cookiewarenkorb verwenden](https://dokumentation.websale.de/v8s/warenkorb/cookiewarenkorb-verwenden.md)

## Die beiden Meldungen

Zum Cookie-Warenkorb gehören zwei Hinweise an den Käufer, und nur einer davon kommt aus dieser Tag-Gruppe.

| Tag | Meldet | Präfix |
| - | - | - |
| `WS-BasketFromCookie` | es wurden Produkte aus dem Cookie-Warenkorb übernommen | WS- |
| `CB-Notify` | es konnten Produkte nicht übernommen werden | CB- |

Die beiden schließen sich nicht aus. Wurden von fünf gespeicherten Produkten drei übernommen und zwei nicht, greifen beide Bereiche. Bauen Sie die Meldung deshalb als eine zusammenhängende Mitteilung und nicht als zwei getrennte Kästen.

Referenz: [WS-BasketFromCookie](https://dokumentation.websale.de/v8s/referenz/tags/ws/warenkorb-preise-waehrung-und-bonus.md#die-tags-im-uberblick)

## Das vollständige Beispiel

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{WS-BasketFromCookie}
   <div class="hinweis">
      Wir haben Ihren Warenkorb vom letzten Besuch wiederhergestellt.

      {CB-Notify}
         {CB-NotifyData}
            Diese ~CB-NotifyData~ Positionen sind leider nicht mehr verfügbar:
            <ul>
               {@CB-NotifyData}
                  <li>
                     ~CB-NotifyQuantity~ x ~CB-NotifyProdName~
                     {CB-NotifyProdNumber}(Art.-Nr. ~CB-NotifyProdNumber~){/CB-NotifyProdNumber}
                  </li>
               {/@CB-NotifyData}
            </ul>
         {/CB-NotifyData}
      {/CB-Notify}
   </div>
{/WS-BasketFromCookie}
```

> [!WARNING]
>
> Zulässig sind alle Tags dieser Gruppe auf allen Templates. Setzen Sie die Meldung trotzdem nur an eine Stelle, die der Käufer beim ersten Seitenaufbau sieht. Der Hinweis erscheint nur einmal, und auf einer Seite, die er nie öffnet, ist er verloren.

## CB-Notify

Greift, wenn beim Einlesen des Cookie-Warenkorbs mindestens ein Produkt nicht übernommen werden konnte. Der Bereich wird nur ein einziges Mal angezeigt.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{CB-Notify}
   Einige Produkte aus Ihrem gespeicherten Warenkorb sind nicht mehr verfügbar.
{/CB-Notify}
```

Damit der Bereich greift, muss der Cookie-Warenkorb in diesem Seitenaufruf tatsächlich eingelesen worden sein. Auf jedem weiteren Aufruf der Sitzung bleibt er leer, auch wenn die Produkte weiterhin fehlen.

> [!WARNING]
>
> Die Einmaligkeit ist so gebaut, dass sie den laufenden Seitenaufbau nicht ausbremst. In seltenen Fällen kann der Hinweis deshalb ein zweites Mal erscheinen. Formulieren Sie die Meldung so, dass eine Wiederholung nicht stört, und hängen Sie keine Aktion daran, die nur einmal passieren darf.
>
> `CB-Notify` ist ausschließlich positives Bereichs-Tag. Es gibt kein negatives Bereichs-Tag und keine Einzel-Tag-Form. Für den Fall "alles konnte übernommen werden" klammern Sie stattdessen mit `{!CB-NotifyData}`.

## CB-NotifyData

Das zentrale Tag der Gruppe, in drei Rollen.

| Verwendung | Ergebnis |
| - | - |
| Einzel-Tag | die Anzahl der Positionen, die nicht übernommen werden konnten |
| Bereichs-Tag | greift, wenn es solche Positionen gibt |
| Schleifen-Tag | läuft über diese Positionen |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{CB-NotifyData}
   ~CB-NotifyData~ Positionen konnten nicht übernommen werden.

   {@CB-NotifyData}
      ...
   {/@CB-NotifyData}
{/CB-NotifyData}

{!CB-NotifyData}
   Ihr gespeicherter Warenkorb wurde vollständig wiederhergestellt.
{/!CB-NotifyData}
```

Der Unterschied zu `CB-Notify` liegt in der Dauer. `CB-Notify` greift einmalig im Moment des Einlesens, `CB-NotifyData` solange die Daten in der Sitzung vorliegen. Für die einmalige Ansprache nehmen Sie `CB-Notify`, für eine Liste, die der Käufer auch später noch abrufen soll, `CB-NotifyData`.

## Die Angaben je Position

Fünf Tags liefern die Daten der einzelnen Position. Alle fünf sind nur innerhalb der Schleife `{@CB-NotifyData}` zulässig.

| Tag | Liefert |
| - | - |
| `CB-NotifyPosition` | die laufende Nummer innerhalb der Schleife |
| `CB-NotifyProdName` | den Produktnamen |
| `CB-NotifyProdNumber` | die Produktnummer |
| `CB-NotifyProdIndex` | den Produktindex |
| `CB-NotifyQuantity` | die Menge dieser Position |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{@CB-NotifyData}
   <tr>
      <td>~CB-NotifyPosition~</td>
      <td>~CB-NotifyProdName~</td>
      <td>{CB-NotifyProdNumber}~CB-NotifyProdNumber~{/CB-NotifyProdNumber}</td>
      <td>~CB-NotifyQuantity~</td>
   </tr>
{/@CB-NotifyData}
```

`CB-NotifyProdName`, `CB-NotifyProdNumber` und `CB-NotifyProdIndex` lassen sich auch als Bereichs-Tag verwenden und greifen dann, wenn ein Wert vorliegt. Bei `CB-NotifyPosition` und `CB-NotifyQuantity` geht das nicht, sie sind reine Einzel-Tags.

> [!WARNING]
>
> Die Menge wird ohne Nachkommastellen ausgegeben. Bei Produkten, die nach Metern oder Kilogramm verkauft werden, steht dort also eine gerundete Zahl. Für eine Liste nicht mehr verfügbarer Produkte genügt das, für eine Weiterverarbeitung nicht.

### Den Produktindex sinnvoll nutzen

`CB-NotifyProdIndex` ist die einzige Angabe, mit der sich etwas anfangen lässt, das über die reine Meldung hinausgeht.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{@CB-NotifyData}
   ~CB-NotifyProdName~
   {CB-NotifyProdIndex}
      <a href="~PR-Link($CB-NotifyProdIndex$)~">Produkt ansehen</a>
   {/CB-NotifyProdIndex}
{/@CB-NotifyData}
```

Ein Produkt, das gerade ausverkauft ist, existiert weiterhin. Ein Link darauf gibt dem Käufer die Möglichkeit, sich für die Wiederverfügbarkeitsmeldung einzutragen, statt die Meldung nur zur Kenntnis zu nehmen. Bei Produkten, die aus dem Sortiment genommen wurden, führt der Link allerdings ins Leere, prüfen Sie das für Ihren Shop.

## Was Sie über den Cookie-Warenkorb wissen sollten

> [!WARNING]
>
> Der Cookie-Warenkorb muss für Ihren Shop freigeschaltet werden. Er verbraucht zusätzliche Leistungseinheiten, weil bei jedem Ändern des Warenkorbs geschrieben wird. Stimmen Sie den Einsatz außerdem mit Ihrem Datenschutzbeauftragten ab.

| Einstellung | Wert |
| - | - |
| Speicherdauer | standardmäßig 30 Tage, höchstens 60 |
| gespeicherte Positionen | höchstens die ersten 200 Produkte des Warenkorbs |
| Einlesen nach Login | optional, je Subshop einstellbar |

> [!WARNING]
>
> Wenn Ihr Shop kundenabhängige Preise verwendet, darf der Cookie-Warenkorb erst nach dem Login eingelesen werden. Sonst bekommt der Käufer die Standardpreise statt seiner eigenen. Das muss ausdrücklich eingestellt werden und ist bei geschlossenen Shops ohnehin erforderlich.

## Die Tags im Überblick

| Tag | Einzel-Tag | Bereichs-Tag | negatives Bereichs-Tag | Schleifen-Tag |
| - | - | - | - | - |
| `CB-Notify` | – | ja | – | – |
| `CB-NotifyData` | ja | ja | ja | ja |
| `CB-NotifyPosition` | ja | – | – | – |
| `CB-NotifyProdName` | ja | ja | ja | – |
| `CB-NotifyProdNumber` | ja | ja | ja | – |
| `CB-NotifyProdIndex` | ja | ja | ja | – |
| `CB-NotifyQuantity` | ja | – | – | – |

Zulässig sind alle Tags auf allen Templates. Die fünf Tags für die einzelne Position gelten nur innerhalb der Schleife `{@CB-NotifyData}`.

## Verwandte Themen

* Wegweiser: [Cookiewarenkorb verwenden](https://dokumentation.websale.de/v8s/warenkorb/cookiewarenkorb-verwenden.md)
* Wegweiser: [Speicherbarer Warenkorb](https://dokumentation.websale.de/v8s/warenkorb/speicherbarer-warenkorb.md)
* Materialien: [Verwendete Cookies](https://dokumentation.websale.de/v8s/referenz/verwendete-cookies.md)
* Referenz: WS-BasketFromCookie


## Related topics

- [$wsSubshop - Subshop](https://dokumentation.websale.de/frontend/referenz/module/wssubshop.md)
- [general - Allgemeine Shopeinstellungen](https://dokumentation.websale.de/konfiguration/general-allgemeine-shopeinstellungen.md)
- [Cookiewarenkorb verwenden](https://dokumentation.websale.de/v8s/warenkorb/cookiewarenkorb-verwenden.md)
- [Geräteübergreifender Warenkorb](https://dokumentation.websale.de/v8s/warenkorb/geraeteuebergreifender-warenkorb.md)
- [basket - Warenkorb](https://dokumentation.websale.de/konfiguration/basket-warenkorb.md)


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