Belege in Ihrem Onlineshop
Ihre WCPOS-Belegvorlagen sind nicht auf die Kasse beschränkt. Kunden Ihres Onlineshops können ihren Bestellbeleg oder ihre Rechnung über Mein Konto oder die Bestellbestätigungsseite anzeigen und herunterladen, gerendert mit einer benutzerdefinierten Vorlage aus WP Admin → POS → Vorlagen.
Der Zugriff auf Belege im Onlineshop — die Schaltfläche Mein Konto und der Shortcode [wcpos_receipt] — ist ab WCPOS 1.9.11 verfügbar. Die unten beschriebene Einstellung Kunden das Herunterladen von Belegen erlauben und die Auswahl Belegvorlage für Kunden wurden in 1.9.12 hinzugefügt; in 1.9.11 ist die Schaltfläche standardmäßig aktiviert und kann nicht über eine Einstellung gesteuert werden. Frühere Versionen rendern Belege nur innerhalb des POS.
Kassierer und Mitarbeiter benötigen dies nicht — der Bildschirm Bestellungen im POS listet bereits jede WooCommerce-Bestellung auf, einschließlich Onlinebestellungen, und über das Drei-Punkte-Menü kann der Beleg angezeigt, gedruckt oder per E-Mail versendet werden. Auf dieser Seite geht es um die andere Richtung: Kunden sollen den Beleg selbst über Ihre Website herunterladen können.
Download-Schaltfläche in Mein Konto
Die Schaltfläche Beleg ist standardmäßig deaktiviert. Aktivieren Sie sie unter POS > Einstellungen > Allgemein im Abschnitt Kunden: Aktivieren Sie Kunden das Herunterladen von Belegen erlauben. Nach der Aktivierung sehen angemeldete Kunden neben berechtigten Bestellungen unter Mein Konto → Bestellungen eine Schaltfläche Beleg; durch Anklicken wird ein mit Ihrer Belegvorlage gerendertes PDF (receipt-1234.pdf) heruntergeladen.
Die Schaltfläche wird bei Bestellungen mit dem Status In Bearbeitung, Abgeschlossen und Rückerstattet angezeigt — also bei Status, für die die Bestellung bezahlt wurde. Bei Zahlung ausstehenden, stornierten und fehlgeschlagenen Bestellungen wird sie nicht angezeigt. (Entwickler können ändern, bei welchen Status sie angezeigt wird.)
Außerdem wird eine aktive Belegvorlage benötigt — ist keine Vorlage aktiv, gibt es nichts zu rendern. Daher bleibt die Schaltfläche auch bei aktivierter Einstellung ausgeblendet.
Der folgende [wcpos_receipt]-Shortcode funktioniert unabhängig davon, ob diese Einstellung aktiviert ist — der Umschalter steuert nur die automatische Schaltfläche unter Mein Konto.
Der [wcpos_receipt]-Shortcode
Um einen Beleglink zur Bestellbestätigungsseite ("Danke") oder zur Seite Mein Konto → Bestellung anzeigen hinzuzufügen, verwenden Sie:
[wcpos_receipt]
Ohne Attribute erkennt der Shortcode die aktuelle Bestellung auf beiden Seiten automatisch und gibt einen Link Beleg herunterladen (PDF) aus. Auf anderen Seiten gibt er nichts aus. Ein explizites order_id funktioniert nur für angemeldete Kunden, denen diese Bestellung gehört.
Attribute
| Attribut | Standard | Funktion |
|---|---|---|
order_id | (automatisch erkannt) | Link zu einer bestimmten Bestellung. Funktioniert nur für angemeldete Kunden, denen die Bestellung gehört. |
link_text | Download receipt (PDF) | Der Linktext. |
format | pdf | pdf lädt eine PDF herunter; html öffnet stattdessen die druckbare Belegansicht. |
template | (Storefront-Standard) | Mit einer bestimmten Vorlagen-ID statt mit dem Storefront-Standard rendern. |
class | wcpos-receipt-link | CSS-Klasse für den Link. |
id | (keine) | HTML-id für den Link. |
Beispiele
Ein Download-Link auf der Bestellbestätigungsseite:
[wcpos_receipt link_text="Download your invoice"]
Ein Link zum Bildschirmbeleg (druckbar) statt zu einer PDF:
[wcpos_receipt format="html" link_text="View your receipt"]
Mit einer bestimmten Vorlage rendern — beispielsweise mit einer A4-Rechnungsvorlage statt mit Ihrem 80mm-Kassenbon:
[wcpos_receipt template="123" link_text="Download invoice (PDF)"]
Die Vorlagen-ID ist die Nummer in der URL des Bearbeitungsbildschirms der Vorlage (post=123) unter WP Admin → POS → Vorlagen.
Welche Vorlage erhalten Kunden?
Direkt unter dem Schalter legt Belegvorlage für Kunden fest, welche Vorlage für den Download verwendet wird. Standardmäßig ist Aktive Belegvorlage verwenden ausgewählt, sodass Kunden dieselbe Vorlage erhalten, die Ihr POS verwendet — bei einer Änderung der aktiven Vorlage werden ihre Belege automatisch angepasst.
Um Online-Bestellungen ein anderes Erscheinungsbild zu geben, wählen Sie stattdessen eine bestimmte Vorlage aus dem Dropdown-Menü. Der Kundendownload verwendet dann immer diese Vorlage, unabhängig von der Vorlage, die ein Kassierer im Dropdown-Menü der Kasse auswählt. Wenn die Kundenvorlage ein schmaler Beleg im Thermodruckstil ist, ist auch die PDF schmal — für Online-Bestellungen eignet sich möglicherweise ein ganzseitiges Dokument besser; die Vorlage Rechnung in der Galerie ist für A4/Letter ausgelegt.
Die Einstellung steuert die Schaltfläche Mein Konto. Für einen einmaligen Link auf einer bestimmten Seite kann die Vorlage weiterhin mit dem template-Attribut des Shortcodes überschrieben oder mit dem untenstehenden Entwicklerfilter websiteweit geändert werden (auch für die Schaltfläche).
Vorlagen werden mit derselben Belegdaten-Payload wie das POS gerendert, sodass Ihr Logo, die Identität Ihrer Filiale, Steuereinstellungen und Anpassungen übernommen werden.
Sicherheit
Beleglinks enthalten den eindeutigen Schlüssel der Bestellung – derselbe Mechanismus, den WooCommerce für Bestellbestätigungsseiten verwendet. Dadurch können Gäste, die ohne Konto zur Kasse gegangen sind, den Link weiterhin auf der Bestätigungsseite verwenden. Personen ohne Link müssen als Kunde der Bestellung angemeldet sein. Shortcodes mit explizitem order_id werden nur für den angemeldeten Besitzer dieser Bestellung gerendert.
Wie alle WCPOS-Checkout-Seiten verwendet die Beleg-URL WordPress-Umschreiberegeln. Websites mit Einfach-Permalinks (Einstellungen → Permalinks) müssen zu einer anderen Permalink-Struktur wechseln.
Für Entwickler
Drei Filter steuern die Bereiche der Storefront. Sie bauen auf den obigen Einstellungen auf und eignen sich für bedingte Logik, die sich mit den Einstellungen nicht ausdrücken lässt (pro Bestellung, pro Kunde usw.):
// Force the My Account Receipt button on or off, overriding the setting.
// The filter's default value is the "Let customers download receipts" setting,
// so you only need this to override it — e.g. show the button for one user role.
add_filter( 'woocommerce_pos_storefront_receipt_my_account_button', '__return_true' );
// Change which order statuses show the button (default: processing, completed, refunded).
add_filter( 'woocommerce_pos_storefront_receipt_order_statuses', function ( $statuses, $order ) {
$statuses[] = 'on-hold';
return $statuses;
}, 10, 2 );
// Use a different template for storefront PDF downloads, overriding the
// "Receipt template for customers" setting. Receives and returns the full
// template array (null when none is configured).
add_filter( 'woocommerce_pos_storefront_receipt_template', function ( $template, $order ) {
return \WCPOS\WooCommercePOS\Templates::get_template( 123 );
}, 10, 2 );
Der PDF-Pfad selbst lautet /wcpos-checkout/wcpos-receipt/{order_id}?key={order_key}&format=pdf – derselbe durch den Bestellschlüssel abgesicherte Endpunkt, den das POS für Belege verwendet. Mit format=pdf wird statt der Bildschirmansicht das gerenderte PDF zurückgegeben.