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.
Mit dem $wsWatchList Modul können Sie auf die Merklisten (Wunschlisten) des Nutzers zugreifen und diese im Frontend anzeigen. Sie können prüfen, ob Produkte auf einer Merkliste sind, Produkte hinzufügen oder entfernen und die Merkliste im Warenkorb darstellen. In diesem Abschnitt erfahren Sie, wie Sie Merklisten laden und verwalten können.
Modulübersicht
Beispiel / Ausschnitt über $wsWatchList
{{= $wsWatchList | json }}
JSON-Ausgabe:
{
"watchLists": [
{
"watchListId": "...",
"watchListName": "..."
}
],
"countWatchListsWithProduct": "ƒ()",
"isProductOnWatchList": "ƒ()",
"loadWatchList": "ƒ()",
"loadWatchListItemId": "ƒ()"
}
Anmerkung: ƒ() kennzeichnet eine Funktion.
Variablen und Methoden in der Übersicht
| Name | Rückgabe-Typ | Beschreibung |
|---|
watchLists | array | Gibt eine Liste mit allen Merklisten des Nutzers aus. |
[$i].watchListId | string | Gibt die ID der Merkliste aus. |
[$i].watchListName | string | Gibt den Namen der Merkliste aus. |
loadWatchList() | map | Lädt eine Merkliste anhand ihrer ID. |
isProductOnWatchList() | bool | Prüft, ob ein Produkt auf einer bestimmten Merkliste vorhanden ist. |
countWatchListsWithProduct() | int | Gibt die Anzahl der Merklisten aus, auf denen ein bestimmtes Produkt liegt. |
loadWatchListItemId() | string | Gibt die ID des Merklisten-Eintrags für ein bestimmtes Produkt zurück. |
Templates
Merkliste-Produkte werden über $wsWatchList im Template basket.htm geladen. Dort können sie in den Warenkorb gelegt oder aus der Merkliste entfernt werden. Zusätzlich ist es möglich, die Merkliste im Header oder im Offcanvas-Flyout anzuzeigen.
Variablen
$wsWatchList.watchLists
Gibt eine Liste aller Merklisten des Nutzers aus.
{{ foreach $myWatchlistVariable in $wsWatchList.watchLists }}
{{= $myWatchlistVariable.watchListId }} - {{= $myWatchlistVariable.watchListName }}
{{ /foreach }}
Methoden
$wsWatchList.loadWatchList()
Lädt eine Merkliste anhand ihrer ID.
Signatur
$wsWatchList.loadWatchList(watchlistId)
Rückgabe
map - WatchList-Map mit allen Daten.
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|
watchlistId | string | ja | ID der Merkliste. |
Beispiel, das die Standard-Merkliste lädt.
{{ var $myWatchList = $wsWatchList.loadWatchList("watchlist_1_default") }}
Mit Verwendung der Funktion $wsWatchList.loadWatchList() stehen verschiedene Variablen zur Verfügung, um weitere Daten zur Merkliste abzurufen und auszugeben. Nachfolgend eine Übersicht, welche Variablen verfügbar sind.
Merklisten-Daten (Rückgabe von $wsWatchList.loadWatchList() )
Zunächst ist es notwendig, die Map mit den Merklisten-Daten, wie im obigen Beispiel dargestellt, einer lokalen Variable zuzuweisen. Diese kann anschließend an verschiedenen Stellen im Template verwendet werden.
JSON-Ausgabe der Variablen:
{
"id": "...",
"watchListName": "...",
"items": [
{
"id": "...",
"freeFields": { },
"product": { ... }
}
]
}
Variablen in der Übersicht
| Variable | Typ | Beschreibung |
|---|
id | string | ID der Merkliste. |
watchListName | string | Name der Merkliste. |
items | array | Liste der Produkte auf der Merkliste. |
[$i].id | string | ID des Merklisten-Eintrags. |
[$i].freeFields | map | Benutzerdefinierte Felder zum Merklisten-Eintrag (z.B. Notizen, gewünschte Menge). |
[$i].product | map | Produktdaten (Map “Product”). |
$wsWatchList.isProductOnWatchList()
Prüft, ob ein Produkt auf einer bestimmten Merkliste vorhanden ist.
Signatur
$wsWatchList.isProductOnWatchList(watchlistId, productId)
Rückgabe
bool - true, wenn das Produkt auf der Merkliste ist, sonst false.
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|
watchlistId | string | ja | ID der Merkliste. |
productId | string | ja | ID des Produkts. |
Beispiel, das prüft, ob ein Produkt auf der Merkliste ist.
{{ if $wsWatchList.isProductOnWatchList("watchlist_1_default", $product.id) }}
<span>Auf der Merkliste</span>
{{ /if }}
$wsWatchList.countWatchListsWithProduct()
Gibt die Anzahl der Merklisten aus, auf denen ein bestimmtes Produkt liegt.
Signatur
$wsWatchList.countWatchListsWithProduct(productId)
Rückgabe
int - Anzahl der Merklisten, auf denen das Produkt liegt.
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|
productId | string | ja | ID des Produkts. |
Beispiel, das die Anzahl der Merklisten mit einem Produkt ausgibt:
Auf {{= $wsWatchList.countWatchListsWithProduct($product.id) }} Merklisten
$wsWatchList.loadWatchListItemId()
Gibt die ID des Merklisten-Eintrags für ein bestimmtes Produkt zurück. Diese ID wird benötigt, um das Produkt von der Merkliste zu entfernen.
Signatur
$wsWatchList.loadWatchListItemId(watchlistId, productId)
Rückgabe
string - ID des Merklisten-Eintrags.
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|
watchlistId | string | ja | ID der Merkliste. |
productId | string | ja | ID des Produkts. |
Beispiel, das die Eintrag-ID eines Produkts lädt.
{{ var $myItemId = $wsWatchList.loadWatchListItemId("watchlist_1_default", $product.id) }}
Aktionen
Aktionen zu diesem Modul, die Änderungen auslösen, sind separat im Kapitel “Aktionen” dokumentiert: Watchlist
Prüfen, ob die Merkliste Produkte enthält.
In diesem Beispiel wird geprüft, ob Produkte auf der Merkliste enthalten sind, und gibt die Anzahl der Produkte aus.
{{ if $wsWatchList.items }}
<p>Es gibt {{= $wsWatchList.items | len }} Produkte auf der Merkliste</p>
{{ /if }}
Eigenschaften der Produkte auf der Merkliste
Nachdem die Daten der Merkliste geladen und einer Variable zugewiesen wurden, können Sie diese flexibel ausgeben. Die Zuweisung kann wie folgt erfolgen:
Produktdaten anzeigen
In diesem Beispiel werden die üblichen Produktinfos ausgegeben, wie zum Beispiel der Produktname, Preis und Bild.
{{ if $wsWatchList.items }}
{{ foreach $product in $wsWatchList.items }}
<img src="{{= $watchListItem.product.custom.image.thumbnail }}" alt="{{= $watchListItem.product.name }}">
<p>Produktname: {{= $watchListItem.product.name }}</p>
<p>Preis: {{= $watchListItem.product.price }}</p>
{{ /foreach }}
{{ /if }}
Produktvarianten Anzeigen
In diesem Beispiel wird geprüft, ob sich eine Produktvariante auf der Merkliste befindet. Im positiven Fall werden die Eigenschaften der Produktvariante ausgelesen.
{{if $wsWatchList.items}}
{{ foreach $watchListItem in $wsWatchList.items }}
...
{{ if $watchListItem.product.variantSelection }}
{{ foreach $varAttr in $watchListItem.product.variantSelection | keys }}
<p>{{= $varAttr}}: {{= $watchListItem.product.variantSelection[$varAttr] }} </p>
{{ /foreach }}
{{ /if }}
{{ /foreach }}
...
{{/if}}
Freifelder auf der Merkliste zeigen
In diesem Beispiel wird geprüft, ob das Produkt Freifelder besitzt, wie zum Beispiel Herkunftsland oder Gewicht, und zeigt diese an.
{{if $wsWatchList.items}}
{{ foreach $watchListItem in $wsWatchList.items }}
...
{{ if $watchListItem.freeFields }}
{{ foreach $freeFieldName in $watchListItem.freeFields | keys }}
<p>{{= $freeFieldName}}: {{= $watchListItem.freeFields[$freeFieldName] }}</p>
{{ /foreach }}
{{ /if }}
{{ /foreach }}
...
{{/if}}
Produkt in den Warenkorb legen
In diesem Beispiel wird gezeigt wie ein Produkt aus der Merkliste in den Warenkorb gelegt wird.
{{if $wsWatchList.items}}
{{ foreach $watchListItem in $wsWatchList.items }}
...
{{ var $basketItemAdd = $wsActions.create("BasketItemAdd", tag=$watchListItem.id) }}
{{ if $basketItemAdd.error }}
Es sind Fehler aufgetreten:
{{ foreach $error in $basketItemAdd.errors }}
{{ if $error.text }}
<p> {{= $error.text }} </p>
{{ else }}
<p> {{= $error.code }} </p>
{{ /if }}
{{ /foreach }}
{{ /if }}
<form method="post" action="{{= $wsViews.viewUrl('basket.htm') }}">
<input type="hidden" name="wscsrf" value="{{= $basketItemAdd.csrf }}">
<input type="hidden" name="wsact" value="{{= $basketItemAdd.id }}">
<input type="hidden" name="wstarget" value="{{= $wsViews.viewUrl('basket.htm') }}">
<input type="hidden" name="productId" value="{{= $watchListItem.product.id }}">
<input type="hidden" name="quantity" value="1">
{{ foreach $freeFieldName in $watchListItem.freeFields | keys }}
<input type="hidden" name="freeFields.{{= $freeFieldName}}" value="{{= $watchListItem.freeFields[$freeFieldName] }}">
{{ /foreach }}
<button type="submit">in den Warenkorb</button>
</form>
{{ /foreach }}
{{ else }}
...
{{/if}}
Produkt aus der Merkliste löschen
In diesem Beispiel wird gezeigt wie ein Produkt aus der Merkliste gelöscht wird.
{{if $wsWatchList.items}}
{{ foreach $watchListItem in $wsWatchList.items }}
...
{{ var $watchListItemDelete = $wsActions.create("WatchListItemDelete", tag=$watchListItem.id) }}
{{ if $watchListItemDelete.error }}
Es sind Fehler aufgetreten:
{{ foreach $error in $watchListItemDelete.errors }}
{{ if $error.text }}
<p> {{= $error.text }} </p>
{{ else }}
<p> {{= $error.code }} </p>
{{ /if }}
{{ /foreach }}
{{ /if }}
<form method="post" action="{{= $wsViews.viewUrl('basket.htm') }}">
<input type="hidden" name="wscsrf" value="{{= $watchListItemDelete.csrf }}">
<input type="hidden" name="wsact" value="{{= $watchListItemDelete.id }}">
<input type="hidden" name="wstarget" value="{{= $wsViews.viewUrl('basket.htm') }}">
<input type="hidden" name="productId" value="{{= $watchListItem.product.id }}">
<input type="hidden" name="watchListItemId" value="{{= $watchListItem.id }}">
<button type="submit">löschen</button>
</form>
{{ /foreach }}
{{ else }}
...
{{/if}}
Weitere Praxisbeispiele zur Verwendung der Merkliste und Merklisten-Funktionen befinden sich hier: → Praxisbeispiele Merkliste
Weiterführende Links