wsfilter=pdf kann jede Shop-Seite als PDF ausgegeben werden. Das System interpretiert die aufgerufene URL wie gewohnt, gibt die Seite jedoch nicht als HTML aus, sondern wandelt sie serverseitig in ein PDF-Dokument um. Das Ergebnis kann dem Benutzer direkt im Browser angezeigt oder als Datei zum Download angeboten werden.
Dynamisch erzeugte PDFs können derzeit nicht automatisch als E-Mail-Anhang versendet werden. Sie lassen sich aber als Download-Link bereitstellen - auf einer Shop-Seite oder in einer E-Mail (siehe PDF-Download in einer E-Mail).
Module
Zwingend benötigt wird nur das Modul $wsViews, um viewUrl() und View-Informationen verwenden zu können. Die Verwendung anderer Module hängt vom jeweiligen Seitenkontext ab, aus dem ein PDF erzeugt werden soll.URL-Parameter
| Parameter | Wert | Pflicht | Beschreibung |
|---|---|---|---|
wsfilter | ja | Gibt die Seite als PDF aus. | |
wsfilterName | dateiname.pdf | nein | Legt den Dateinamen der erzeugten PDF inklusive .pdf-Endung fest. Ohne Angabe vergibt das System einen Standardnamen. |
Funktionsweise
Beliebige Shop-Seite als PDF ausgeben
Der einfachste Weg ist,?wsfilter=pdf an eine beliebige Shop-URL anzuhängen. Das System rendert dann die aufgerufene Seite inklusive Navigation, Header und Footer und gibt sie als PDF aus.
Beispiel für eine Produktseite:
Eigenes Template für die PDF-Ansicht verwenden
Wenn die PDF anders aussehen soll als die normale Shop-Seite, zum Beispiel ohne Navigation, Header oder Footer, muss dafür ein eigenes Template angelegt werden. Eine PDF-Ansicht ist ein normales View-Template, das wie jedes andere View-Template im Verzeichnis “templates/views/” abgelegt und über $wsViews.viewUrl() verlinkt wird. Um die Ausgabe als PDF zu erzwingen, wird beim Aufruf zusätzlich der Parameter wsfilter=pdf übergeben.
Beispielaufruf des eigenen Templates als PDF:
Datenverfügbarkeit im PDF-Template
Ein PDF-Template wird serverseitig genauso erzeugt wie eine normale Shop-Seite. Es bietet deshalb denselben Zugriff auf Module wie jedes andere Shop-Template. Das bedeutet, dass die Daten nicht eigens übergeben oder neu aufgebaut werden müssen. Entscheidend für die Verfügbarkeit der Module ist, in welchem Kontext die PDF erzeugt wird:- Session- und shopweite Daten stehen immer zur Verfügung, unabhängig davon, welches Template gerade verwendet wird. Dazu gehören z.B. der Warenkorb ($wsBasket), das Kundenkonto samt Adressen ($wsAccount) oder Konfigurationswerte ($wsConfig). Ein Warenkorb-PDF kann den Warenkorb also beispielsweise direkt über $wsBasket auslesen.
- Seitenkontext-bezogene Daten - beispielsweise das aktuell aufgerufene Produkt oder die aktuelle Kategorie - sind an den jeweiligen Seitenkontext gebunden und über $wsViews.current.info erreichbar. Ein Produkt-PDF muss daher aus dem Kontext des jeweiligen Produkts heraus erzeugt werden, damit die Produktdaten geladen werden.
Beispiele
Warenkorb als PDF ausgeben
Um im Warenkorb eine PDF-Version der Warenkorbseite anzubieten, wird ein PDF-Template benötigt, das den Warenkorb darstellt, sowie einen Download-Link, über den dieses Template als PDF aufgerufen werden kann. Der Download-Link wird in das Template der Warenkorbseite eingebunden (z.B.basket.htm der genaue Name hängt davon ab, wie die Warenkorbseite im jeweiligen Shop benannt wurde. Er ruft das PDF-Template auf und hängt wsfilter=pdf an.
views/pdf/basket.htm) liest die Warenkorb-Daten direkt über $wsBasket aus.
Bestelleingangsbestätigung als PDF bereitstellen
Ein häufiger Anwendungsfall ist es, dem Kunden nach einer erfolgreichen Bestellung eine PDF-Bestelleingangsbestätigung anzubieten. Wie jede andere PDF-Ansicht wird sie über ein PDF-Template (hier abgelegt unterviews/pdf/bestellbestaetigung.htm), das die Bestelldaten darstellt und mit dem Parameter wsfilter=pdf aufgerufen wird, erzeugt. Da die Bestelldaten an den Kontext der abgeschlossenen Bestellung gebunden sind, wird der Download-Link auf der Bestellbestätigungsseite platziert, die der Kunde direkt nach dem Bestellabschluss sieht.
PDF-Download-Link in einer E-Mail
PDF-Dateien können als Download Link in E-Mail-Templates (z.B. der Bestellbestätigungs-E-Mail) zur Verfügung gestellt werden. Dabei wird das PDF nicht an die E-Mail angehängt, sondern beim Klick auf den Link in der E-Mail erzeugt. Der Link wird nach dem bereits bekannten Schema gebildet. Dabei sind zwei Dinge wichtige: der Typ “absolute”, weil E-Mails vollständige URLs benötigen und die Parameter, die den Inhalt eindeutig identifizieren (z.B. voucherId, productId. So kann das PDF unabhängig von der Session erzeugt werden.
Beispiel: Download-Links im E-Mail-Template für gekaufte Gutscheine, das versendet wird, nachdem Gutscheine über den Shop gekauft wurden.
voucher/default_voucher.htm das PDF-Template, das die Gutschein-Daten anhand der übergebenen voucherId und productId ausgibt.
