Zum Hauptinhalt springen
Ein Gutschein ist mehr als ein Betrag. Er hat eine Laufzeit, gilt vielleicht nur für bestimmte Produkte, nur für bestimmte Kunden, nur in bestimmten Subshops, lässt sich begrenzt oft einlösen und verträgt sich womöglich nicht mit anderen Gutscheinen. All das legt der Gutschein-Generator im Online-Servicebereich fest, und all das lässt sich im Template auslesen. Die VOUCHER-Tags greifen auf diese Felder zu. Sie beantworten zwei verschiedene Fragen: Was ist mit dem Gutschein, den der Käufer gerade eingelöst hat, und was steht hinter einer beliebigen Gutscheinnummer. Wegweiser: Gutscheine anbieten

Die eine Regel, die für alle Tags gilt

Jedes Tag dieser Seite braucht einen Gutschein, auf den es sich bezieht. Dafür gibt es genau zwei Wege.
Außerhalb dieser beiden Bereiche sind alle Tags wirkungslos. Die einzigen Ausnahmen sind VOUCHER-LoadData() selbst und VOUCHER-DataExists, die den Rahmen ja erst aufspannen, sowie die vier Tags zu Meta-Gutscheinen, die sich auf die Sitzung beziehen.
Auf der neuen Seite steht sie einmal hier, und die Abschnitte darunter verweisen nur noch auf Abweichungen.

Einen Gutschein laden

VOUCHER-LoadData() lädt einen Gutschein über seine Nummer. Das Argument unterstützt Tag-in-Tag.
VOUCHER-LoadData() greift immer, auch wenn es die Nummer gar nicht gibt. Ob der Gutschein existiert, sagt allein VOUCHER-DataExists. Das verhält sich genauso wie PR-LoadData() bei Produkten. Wer die Prüfung weglässt, zeigt bei einer erfundenen Nummer eine Seite voller leerer Felder.
Geladen wird unabhängig davon, ob der Käufer den Gutschein gerade einlösen könnte. Ein abgelaufener oder bereits aufgebrauchter Gutschein lässt sich auf diesem Weg also trotzdem anzeigen. Das ist genau der Zweck, beispielsweise für eine Statusseite “Ihr Gutschein”.

Nummer, Charge und Währung

Ein Gutschein kann mehrere Chargen-Label tragen. VOUCHER-ChargeLabel gibt sie dann als kommagetrennte Liste aus. Die Auswahlliste steht im Abschnitt ChargeLabelValues der global.config, und im Abschnitt ChargeLabel lässt sich die Angabe zur Pflicht machen.
Die Chargen-Kennung zählt im Shopsystem immer als Label, auch wenn der Ersteller gar keines vergeben hat. Für die Verträglichkeitsprüfung weiter unten ist das wichtig, denn damit hat jeder Gutschein mindestens ein Label.

Wert und Abzugsart

Zuerst die Frage, wie der Gutschein rechnet, dann die Frage, wie viel. VOUCHER-AmountType_code gibt denselben Code als Zahl aus.
Alle Wert-Tags greifen auch als Klammerung, und zwar dann, wenn ein Wert hinterlegt ist. Bei einem prozentualen Gutschein ist VOUCHER-Value_absoluteamount leer und umgekehrt. Fragen Sie deshalb zuerst die Abzugsart ab und geben Sie darin den passenden Wert aus. Der Abzug des Set-Unterproduktpreises ist ein Sonderfall für Setprodukte. Ein Höchstbetrag lässt sich dabei nicht zusätzlich festlegen. Zu dieser Gutscheinart berät Sie Ihr Ansprechpartner bei der WEBSALE AG.

Gültigkeit und Einlösegrenzen

Die beiden Zähler ergeben nur innerhalb von {VOUCHER-MaxRedeemable} einen Sinn. Ohne festgelegte Höchstzahl gibt es nichts zu zählen, und die Klammerung greift dann ohnehin nicht.
VOUCHER-ValidInSubhops_list liefert eine rohe Liste. Mit den DC-Tags lässt sie sich in einzelne Einträge zerlegen.

Wie weit der Mindestbestellwert noch entfernt ist

Drei weitere Tags beziehen sich nicht auf den Gutschein, sondern auf den aktuellen Warenkorb.
Sie sind der Unterschied zwischen “Gutschein nicht einlösbar” und “es fehlen noch zwölf Euro”, und das Zweite verkauft besser.
Die drei arbeiten nur innerhalb von {ST-Voucher_OK} und in der Mehrfachgutschein-Schleife. Innerhalb von {VOUCHER-LoadData()} geben sie bewusst nichts aus, denn dort liegt der Gutschein nicht zwingend im aktuellen Vorgang und ein Abstand zum Warenkorb lässt sich nicht berechnen.
Die Werte kommen bereits im Zahlenformat des Shops. Das Währungszeichen setzen Sie selbst.

Die Gutscheintypen

VOUCHER-Type_code gibt den Typ als Zahl aus, acht Klammerungen fragen ihn einzeln ab. Die Codes 0 bis 6 kombinieren drei Merkmale: Individual- oder Universalgutschein, Restbetrag nutzbar oder verfallend, und ob eine Anmeldung nötig ist. Die Codes 3 bis 6 setzen einen angemeldeten Kunden voraus. Typ 7 ist der Sonderfall: Dieser Gutschein lässt sich mehrfach einlösen, bindet sich aber beim ersten Einlösen an das Konto, das ihn zuerst verwendet hat. Danach ist er für andere Konten gesperrt. An welches Konto, sagt VOUCHER-BoundUserIndex.
VOUCHER-BoundUserIndex gibt den Userindex aus, an den der Gutschein gebunden ist, und greift als Klammerung, wenn eine Bindung besteht. Damit lässt sich bei einem Gutschein vom Typ 7 unterscheiden, ob er noch frei ist oder schon vergeben.

Werbegutschein oder Kaufgutschein

VOUCHER-CampaignType_code gibt den Code als Zahl aus.

Produkt- und Kategoriefilter

Drei Klammerungen sagen, ob und wie ein Filter gesetzt ist, eine Schleife listet die Regeln auf.
Ein Filter kann einschließende und ausschließende Regeln zugleich enthalten. Deshalb gibt es die Unterscheidung zweimal: einmal auf Gutscheinebene als _active_onlyValidFor und _active_notValidFor, und einmal je Regel als _data_type_isOnlyValidFor und _data_type_isNotValidFor.
VOUCHER-CatProdFilter_data_index_code steht ausschließlich innerhalb der Schleife, so wie alle anderen _data_-Tags. Im allgemeinen Bereich greift es nicht.

Setprodukte im Filter

VOUCHER-CatProdFilter_SetBehavior gibt den Code als Zahl aus.

Kundenfilter

Aufbau wie beim Produktfilter, nur mit Kunden statt Produkten.
Achten Sie auf die Zahlen: Beim Kundenfilter beginnt die Codeliste bei 0, beim Produktfilter bei 1. Die beiden Listen sehen gleich aus, zählen aber unterschiedlich.

Zugesteuerte Produkte

Ein Gutschein kann dem Warenkorb Produkte hinzufügen, beispielsweise eine Zugabe.
VOUCHER-VoucherProducts_active gilt im gewöhnlichen Rahmen, so wie die übrigen Klammerungen auf Gutscheinebene. Die Schleife {@VOUCHER-CustomerFilter_data} ist dafür nicht nötig.

Mehrere Währungen

Ist ein Gutschein für mehrere Währungen hinterlegt, geben fünf Tags die Werte in einem technischen Format aus, das sich mit den DC-Tags zerlegen lässt.
Die Währungsliste kommt in der ersten Form, alle übrigen in der zweiten mit Währung und Betrag je Gruppe. Zum Zerlegen nehmen Sie DC-DynamicLoopX_setSeparatorTags() und DC-DynamicLoopX_settaggedData(), für die Betragsgruppen zusätzlich DC-FPX_extractTaggedData(). Die einfachen Tags wie VOUCHER-Value_absoluteamount liefern bei einem Mehrwährungsgutschein den Wert in der Währung des aktuellen Vorgangs. Die Mehrwährungstags brauchen Sie nur, wenn Sie alle Währungen zugleich zeigen wollen. Referenz: DC- (Datenkonvertierung)

Sonderfunktionen

Diese Klammerungen sagen, welche Zusatzregeln für den Gutschein gelten.
Die erste eignet sich als Rahmen um den ganzen Block mit Sonderhinweisen.
_DisableOtherDiscounts ist für den Käufer erklärungsbedürftig. Wer einen Kundenrabatt hat und diesen Gutschein einlöst, verliert den Rabatt für diese Bestellung. Weisen Sie im Template darauf hin, sonst entstehen Rückfragen.

Abhängigkeit vom Lagerbestand

Abhängigkeit von freien Produktdatenfeldern

Ein Gutschein kann daran geknüpft sein, dass ein freies Produktdatenfeld einen bestimmten Wert enthält. Dieselbe Prüfung gibt es auch in der umgekehrten Richtung als Ausschluss.
Dieselben fünf Tags gibt es mit Negative hinter AddProdFieldsFilter, also VOUCHER-SpecialFeatures_AddProdFieldsFilterNegative und so fort. Sie beschreiben Artikel, für die der Gutschein nicht gilt.

Mehrere Gutscheine zugleich

Ist die Mehrfachgutschein-Funktion freigeschaltet, kann der Käufer weitere Gutscheine eingeben. VOUCHER-MultiVoucher läuft über sie.
Als Einzel-Tag gibt VOUCHER-MultiVoucher die Zahl der zusätzlichen Gutscheine aus. Der erste eingegebene zählt nicht mit, der steht außerhalb der Schleife. Die Schleife läuft über die zusätzlichen Gutscheine und hängt noch einen leeren Durchlauf an, solange die Höchstzahl nicht erreicht ist, ein gültiger Gutschein vorliegt und alle eingegebenen geprüft und gültig sind. Dieser leere Durchlauf ist das Eingabefeld für den nächsten Gutschein.

Vertragen sich die Gutscheine

Ob zwei Gutscheine zusammen einlösbar sind, entscheidet das Shopsystem über Label. Jeder Gutschein hat eigene Label, dazu eine Positivliste und eine Ausschlussliste.
Ohne sie lässt sich einem Käufer nicht erklären, warum sein zweiter Gutschein abgelehnt wurde. Exklusiv heißt: Dasselbe Label steht zugleich in der Positivliste und in der Ausschlussliste. Ein solcher Gutschein verträgt sich mit keinem anderen aus dieser Gruppe.
VOUCHER-SpecialFeatures_Compatibility_notCompatible gibt als Einzel-Tag die Nummer des jeweils anderen Gutscheins aus und läuft als Schleife über alle unverträglichen. Der Fehlercode daneben ist eine technische Zahl ohne Beschriftung. Zeigen Sie ihn dem Käufer nicht roh an, sondern übersetzen Sie ihn im Template.

Meta-Gutscheine

Ein Meta-Gutschein ist ein Sammelcode, hinter dem mehrere einzelne Gutscheine stehen. Gibt der Käufer den Sammelcode ein, löst das Shopsystem alle dahinterliegenden Gutscheine zugleich ein.
VOUCHER-IsFromMeta und VOUCHER-MetaShowAsBlock sind reine Klammerungen. Es gibt sie weder als Einzel-Tag noch als Schleife.VOUCHER-MetaSubCount zählt die erfolgreich eingelösten Einzelgutscheine, nicht die hinterlegten. Waren einzelne davon abgelaufen oder aufgebraucht, ist die Zahl kleiner als im Sammelcode konfiguriert. Formulieren Sie den Text entsprechend.
Es lässt sich immer nur ein Sammelcode zugleich einlösen. Welche Einzelgutscheine dahinterstehen, steht in einer Konfigurationsdatei des Shops, nicht im Gutschein-Generator. VOUCHER-MetaShowAsBlock steuert die Darstellung. Der Wert kommt aus den Daten des Sammelcodes, und fehlt er dort, greift die Einstellung aus der Shopkonfiguration. Mit dieser Klammerung zeigen Sie die Einzelgutscheine entweder als einen Block oder einzeln auflistbar. Die vier Meta-Tags beziehen sich auf die Sitzung und nicht auf einen geladenen Gutschein. Sie sind damit die einzigen Tags dieser Seite, die auch außerhalb von {VOUCHER-LoadData()} und {ST-Voucher_OK} arbeiten. VOUCHER-IsFromMeta greift zusätzlich innerhalb der Mehrfachgutschein-Schleife auf den jeweiligen Gutschein zu.

Die Tags im Überblick

Alle Tags sind auf allen Templates zulässig. Maßgeblich ist nicht das Template, sondern der Rahmen aus {VOUCHER-LoadData()} oder {ST-Voucher_OK}, wie am Anfang dieser Seite beschrieben.

Verwandte Themen