Skip to main content
In diesem Abschnitt finden Sie Praxisbeispiele für die Verwendung von Gutscheinen im Template. Die ersten Beispiele behandeln das Einlösen im Checkout, das letzte die Ausgabe gekaufter Gutscheine. Gutscheine werden im Admin-Interface angelegt. Dies wird auf den Seiten Gutscheine und Kaufgutschein-Produkt anlegen beschrieben.

Gutscheineingabe-Formular mit maximumCount-Check

Die Eingabe-Form wird nur angezeigt, solange weniger Gutscheine eingelöst sind als erlaubt. Sobald die Höchstgrenze erreicht ist, verschwindet das Formular automatisch.
Fehlermeldungen (z.B. “Mindestbestellwert nicht erreicht”) werden über components/errorAlert.htm definiert und ausgegeben.

Liste eingelöster Gutscheine anzeigen

Pro Gutschein wird ein eigenes kleines Formular mit eindeutiger ID ausgegeben. Gültige Gutscheine erscheinen grün, ungültige rot.

Alle eingelösten Gutscheine im Warenkorb ausgeben

In diesem Beispiel werden alle eingelösten Gutscheine im Warenkorb ausgegeben. So sieht der Kunde transparent, welche Codes im System sind und welcher davon gerade greift. Nicht wirksame Gutscheine werden nicht in die Liste aufgenommen und werden über eine Fehlermeldung gekennzeichnet.

Gutscheinfehler mit Grund und Gutschein-ID ausgeben

Statt eines allgemeinen Hinweises erhält der Kunde hier je Gutschein den konkreten Grund, warum der Gutschein nicht greift. Die Texte stammen aus checkout.voucherErrors, der Fallback auf code greift nur, falls kein Text gepflegt ist.
Prüfen Sie details.voucherId immer vor der Ausgabe. Die Gutschein-ID fehlt bewusst, wenn der Fehler aus der Summenprüfung der Mindestbestellwerte stammt. Welcher Fehler wann entsteht, steht unter Wann welcher Fehler entsteht.

Kostenfreie Versandart für Gutschein-Warenkörbe

Enthält ein Warenkorb ausschließlich (Sofort-)Gutscheine, wird kein physischer Versand benötigt. Dafür lässt sich unter checkout.shippingMethod eine eigene, immer kostenfreie Versandart anlegen: Die Preisstaffel basicCost setzt die Kosten ab einer Zwischensumme von 0 auf 0, und die Validierung shippingMethodValidation.productType mit rule: deny sperrt die Versandart, sobald ein reguläres Produkt (Produkttyp standard) im Warenkorb liegt - sie ist also nur für reine Gutschein-Warenkörbe wählbar.
Der Wert standard in der ruleList ist der Wert des Produkttyp-Feldes der Produkte (das über content.usedFields als Produkttyp definierte Produktdatenfeld) - nicht zu verwechseln mit dem Parameter type: "standard" der Versandart selbst. Produkte, bei denen das Produkttyp-Feld nicht gesetzt ist, bestehen die Prüfung immer.name, description und orderText verweisen im Beispiel auf Textbausteine, sodass die Texte je Sprache über den Textbaustein-Dienst gepflegt werden können.

Gekaufte Gutscheine zum Download anbieten

Dieses Beispiel gehört nicht zum Einlösen, sondern zum Verkauf: Wurde ein Kaufgutschein-Produkt bestellt, erzeugt der Shop beim Bestellabschluss je bestellter Einheit einen Gutscheincode. Die Codes einer Warenkorbposition stehen im Template unter voucherIds bereit, das zugehörige PDF wird über den URL-Parameter wsfilter=pdf aus dem am Produkt hinterlegten View-Template erzeugt. Der folgende Block gibt je Position und Code einen Download-Link aus. Er eignet sich für die Bestellbestätigungsseite und für das E-Mail-Template der Bestellbestätigung.
Der Typ absolute erzeugt eine vollständige URL, weil E-Mails keine relativen Links verarbeiten. Die Parameter voucherId und productId machen den Aufruf unabhängig von der Session, sodass der Link auch später noch funktioniert.voucher/default_voucher.htm steht hier stellvertretend für das View-Template, das am Produkt im Feld “HTML-Template” hinterlegt ist. Wie PDF-Ansichten aufgebaut werden, beschreibt PDF-Ansichten.
Für die Weiterverarbeitung außerhalb des Shops stehen dieselben Angaben in den Bestelldaten unter data.orderList.item[].voucher, siehe API-Referenz Bestellungen.