Mit dem $wsVoucher Modul können Sie Gutschein-Daten dynamisch im Frontend verwenden und anzeigen. Sie können eingelöste Gutscheine auflisten, den Gesamtwert berechnen und Details zu einzelnen Gutscheinen laden. In diesem Abschnitt erfahren Sie, wie Sie Gutscheindaten abrufen und im Warenkorb oder Checkout darstellen können.
Modulübersicht
Beispiel / Ausschnitt über $wsVoucher
JSON-Ausgabe
{
"vouchers": [...],
"totalValue": 0.0,
"totalUsedValue": 0.0,
"maximumCount": 0,
"load": "ƒ()"
}
Anmerkung: ƒ() kennzeichnet eine Funktion.
Variablen und Methoden in der Übersicht
| Name | Typ | Beschreibung |
|---|
vouchers | array | Liste der Gutscheine, die zum Einlösen vorgemerkt sind. |
totalValue | float | Gesamtwert der eingesetzten Gutscheine. |
totalUsedValue | float | Bereits genutzter Wert der Gutscheine. |
maximumCount | int | Maximale Anzahl der Gutscheine, die gleichzeitig eingelöst werden dürfen.
0 = kein Limit gesetzt. |
load() | map | Lädt einen Gutschein anhand seiner ID. |
Templates
Gutscheindaten können grundsätzlich auf allen Templates geladen und angezeigt werden. Eine Eingabe bzw. Einlösung eines Gutscheincodes ist im gesamten Shop möglich. Am sinnvollsten erfolgt dies jedoch innerhalb des Bestellprozesses oder im Warenkorb.
Variablen
$wsVoucher.vouchers
Gibt eine Liste aller Gutscheine aus, die der Kunde im aktuellen Warenkorb eingelöst hat.
{{ foreach $myVoucher in $wsVoucher.vouchers }}
Gutschein: {{= $myVoucher.id }} – Wert: {{= $myVoucher.value | currency }}
{{ /foreach }}
$wsVoucher.totalValue
Gibt den Gesamtwert der eingesetzten Gutscheine aus.
Gutscheinwert: {{= $wsVoucher.totalValue | currency }}
$wsVoucher.totalUsedValue
Gibt den bereits vom Warenkorb abgezogenen Gutscheinwert aus.
Bereits eingelöst: {{= $wsVoucher.totalUsedValue | currency }}
$wsVoucher.maximumCount
Gibt die maximale Anzahl der Gutscheine zurück, die ein Kunde gleichzeitig einlösen darf.
Eingelöst: {{= len($wsVoucher.vouchers) }} von {{= $wsVoucher.maximumCount }}
Methoden
$wsVoucher.load()
Lädt einen Gutschein anhand seiner ID.
Signatur
$wsVoucher.load(id)
Rückgabe
Map - Voucher-Map mit den Gutschein-Daten.
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|
id | string | ja | ID des Gutscheins. |
Beispiel, das einen Gutschein lädt:
{{ var $myVoucher = $wsVoucher.load("GUTSCHEIN123") }}
Wert: {{= $myVoucher.value | currency }}
Mit Verwendung der Funktion $wsVoucher.load() stehen verschiedene Variablen zur Verfügung, um Gutschein-Daten abzurufen und auszugeben. Nachfolgend eine Übersicht, welche Variablen verfügbar sind.
Gutschein-Daten (Rückgabe von $wsVoucher.load() )
Zunächst ist es notwendig, die Map mit den Gutschein-Daten, wie im obigen Beispiel dargestellt, einer lokalen Variable zuzuweisen. Diese kann anschließend an verschiedenen Stellen im Template verwendet werden.
JSON-Ausgabe
{
"id": "...",
"value": 0.0,
"currency": "...",
"taxId": "...",
"usedValue": 0.0,
"percentValue": 0.0,
"absoluteValue": 0.0,
"validFrom": "...",
"validUntil": "..."
}
Variablen in der Übersicht
| Variable | Typ | Beschreibung |
|---|
id | string | Gutschein-ID. |
value | float | Wert des Gutscheins. |
currency | string | Währung des Gutscheins. |
taxId | string | Steuersatz-ID des Gutscheins. |
usedValue | float | Bereits eingelöster Wert des Gutscheins. |
percentValue | float | Bei prozentualen Gutscheinen ist percentValue gefüllt (z.B. 10 für 10%), bei Festbetrags-Gutscheinen ist absoluteValue gefüllt (z.B. 5.00 für 5€). |
absoluteValue | float | Bei prozentualen Gutscheinen ist percentValue gefüllt (z.B. 10 für 10%), bei Festbetrags-Gutscheinen ist absoluteValue gefüllt (z.B. 5.00 für 5€). |
validFrom | string | Gültig ab (Datum). |
validUntil | string | Gültig bis (Datum). |
Aktionen
Aktionen zu diesem Modul, die Änderungen auslösen, sind separat im Kapitel “Aktionen” dokumentiert: Voucher
Beispiel für Anzeige von Gutscheindaten
Wert des Gutscheins
In diesem Beispiel wird der Wert des Gutscheins angezeigt.
Voucher Value: {{= $voucher.value }}
Gutschein-Typ: Prozentualer oder Festbetrag
In diesem Beispiel wird geprüft und angezeigt, ob der Gutschein einen prozentualen Rabatt oder einen festen Betrag gewährt.
Rabatt Typ: {{= $voucher.percentValue | ifNull("Percentage Value is null")}} {{= $voucher.absoluteValue | ifNull("absolute value is nulll")}}
Gültigkeitsdatum des Gutscheins
In diesem Beispiel werden das Start- und Enddatum der Gültigkeit eines Gutscheins angezeigt.
Gültig ab: {{= $voucher.validFrom | dateFmt("%d.%m.%Y") }}
Gültig bis: {{= $voucher.validUntil | dateFmt("%d.%m.%Y") }}
Währung des Gutscheins
In diesem Beispiel wird die Währung angezeigt, in der der Gutschein ausgestellt wurde.
Währung: {{= $voucher.currency }}
Restbetrag eines Gutscheins anzeigen
In diesem Beispiel wird angezeigt, wie viel Restbetrag ein teilgenutzter Gutschein noch hat.
Restbetrag: {{= ($voucher.value - $voucher.usedValue) | currency }}
Gültigkeit eines Gutscheins prüfen
In diesem Beispiel wird überprüft, ob der Gutschein grundsätzlich gültig ist.
{{ if $voucherAddAction.success }}
Gutschein erfolgreich in den Warenkorb gelegt.
{{ /if }}
Das Formular erscheint nur, wenn die Anzahl bereits eingelöster Gutscheine kleiner ist als das konfigurierte Limit. Ist das Limit erreicht, wird das Formular ausgeblendet und der Kunde erhält einen Hinweis.
{{ if len($wsVoucher.vouchers) < $wsVoucher.maximumCount }}
<form method="post" action="{{= $wsViews.current.url() }}">
<input type="text" name="id">
<input type="hidden" name="wsact" value="{{= $voucherAddAction.id }}">
<input type="hidden" name="wscsrf" value="{{= $voucherAddAction.csrf }}">
<input type="hidden" name="wstarget" value="{{= $wsViews.current.url() }}">
<button type="submit" class="btn btn-primary">Einlösen</button>
</form>
{{ /if }}
Weitere Praxisbeispiele zum Thema Gutscheine finden Sie hier.
Weiterführende Links