Zum Hauptinhalt springen
Kaufgutscheine zum Ausdrucken erscheinen standardmäßig alle im selben Layout. Soll der Käufer zwischen mehreren Motiven wählen können, etwa einem für Geburtstage und einem für Weihnachten, legen Sie je Motiv ein eigenes Produkt an und reichen den Dateinamen des Motivs bis in das PDF-Template durch. Kaufgutscheine mit mehreren Motiven

Was dieses Beispiel zusätzlich braucht

Diese Seite beschreibt nur die Unterschiede. Alles Übrige, von der Freischaltung über das Anlegen der Gutscheinprodukte bis zur Fehlermeldung, steht auf der Seite zur Grundfunktion und gilt unverändert. Wegweiser: Kaufgutscheine zum Ausdrucken

Ein Produkt je Motiv

Die Gutscheinprodukte sind bis auf das Motiv identisch. Für drei Motive legen Sie drei Produkte mit denselben Einstellungen an, auch mit demselben Inhalt im Feld InstantVoucherProduct. Dazu kommt ein freies Produktdatenfeld, das den Dateinamen des Motivs aufnimmt, im Folgenden IS_ZUSATZ00. Die Bilddateien legen Sie unter benutzer/navigation/grafiken ab. Hinterlegen Sie dort zusätzlich ein Standardmotiv, beispielsweise img_instantVoucher_default.jpg. Das PDF-Template greift darauf zurück, wenn kein Motiv übergeben wurde.
Die Motive landen in einer Datei, die der Käufer ausdruckt. Stellen Sie sie deshalb in Druckauflösung bereit, als Anhaltspunkt 150 dpi bezogen auf die gedruckte Größe. Ein Bildschirmbild mit 72 dpi sieht auf Papier ausgefranst aus.
Der Name IS_ZUSATZ00 kommt auf dieser Seite in jedem Codebeispiel vor. Wenn Sie das Feld anders benennen, passen Sie alle Stellen an.

Das Motiv in den Warenkorb übernehmen

Ein freies Produktdatenfeld steht im Warenkorb und in der Bestellung nur zur Verfügung, wenn es dafür freigegeben ist. Ergänzen Sie es in der shop.config:
Ohne diesen Eintrag bleiben die Tags BASKET-PR-AF-IS_ZUSATZ00 und OH-P-AF-IS_ZUSATZ00 in den folgenden Beispielen leer. Der Käufer bekommt dann immer das Standardmotiv, und zwar ohne jede Fehlermeldung.
Referenz: Abschnitt AdditionalProductFieldsInBasket · Wegweiser: Freie Produktfelder im Warenkorb anzeigen Statt des Beispiels aus Schritt 7 der Grundfunktion:
otp3 ist einer von drei freien Parametern, die WEBSALE V8s an ein Template durchreicht. Im Template lesen Sie ihn mit WS-OTP3. Die Ziffer ist frei wählbar, otp1 und otp2 funktionieren genauso, solange sie nicht schon für etwas anderes belegt sind. Referenz: BASKET-PR-AF-”technische ID” · WS-OTPX

Das Motiv im PDF-Template ausgeben

Im Template aus Schritt 8.2 der Grundfunktion kommt die Ausgabe des Bildes dazu.
Prüfen Sie den Wert, bevor Sie ihn in den Pfad schreiben.Der Gutscheinteil der Adresse ist verschlüsselt und mit einer Prüfsumme versehen. Der Motivparameter ist es nicht: Er steht offen in der Adresszeile und lässt sich dort durch einen beliebigen anderen Wert ersetzen. Wandert er ungeprüft in das src-Attribut, bestimmt der Aufrufer, welche Datei vom Server in die erzeugte PDF-Datei gerät.Der Abgleich gegen eine Liste der zugelassenen Dateinamen kostet eine Zeile je Motiv und schließt das aus. Pflegen Sie die Liste mit, wenn ein Motiv dazukommt.
Die beiden Klammerungen am Ende fangen den Fall ab, dass gar kein Motivparameter übergeben wurde, beispielsweise bei einem Gutschein aus der Zeit vor der Umstellung. Ohne sie bliebe die Stelle im Gutschein leer. Referenz: WS-OTPX · DC-CompareStringInList() · INSTANTVOUCHER- Statt des Beispiels aus Schritt 10 der Grundfunktion:
Der Umweg über den freien Parameter DC-FP1 ist nötig, weil das Motiv an der Position hängt und innerhalb der Gutscheinschleife nicht mehr zur Verfügung steht. Deshalb wird es davor einmal zwischengespeichert. WS-EnsureNextLinkContainsURLParams stellt sicher, dass die erzeugte Adresse überhaupt einen Parameterteil bekommt, an den sich der Motivparameter anhängen lässt.
Auch hier gilt die Prüfung aus dem vorigen Abschnitt. Sie findet im PDF-Template statt und deckt beide Wege ab, den aus der Bestellbestätigung und den aus der Bestellhistorie.
Referenz: OH-P-AF-”technische ID” · DC-FPX_set() · WS-EnsureNextLinkContainsURLParams · WS-Start

Verwandte Themen