Zum Hauptinhalt springen
Version: 1.x

Referenz zu Belegdaten

Logikfreie HTML-Vorlagen von WCPOS und thermische XML-Vorlagen werden aus derselben kanonischen Belegdaten-Payload gerendert. Verwenden Sie Mustache-Punktpfade wie {{order.number}}, {{store.name}} und {{totals.total_display}}. Arrays werden mit Abschnitten gerendert:

{{#lines}}
{{name}} x {{qty}} — {{line_total_display}}
{{/lines}}

Der kanonische Datenvertrag wird auf dem Server vom WCPOS-Belegdaten-Builder erstellt und vom Offline-Belegrenderer in der App gespiegelt. Belege werden sofort anhand lokaler Daten geöffnet und bei Verfügbarkeit mit der Serverantwort aktualisiert. Benutzerdefinierte Vorlagen sollten daher die unten aufgeführten Felder statt PHP-Bestellmethoden verwenden.

Belegdaten v1.1 ergänzt für jede Produktzeile erfasste Felder für regulären Preis, Verkaufspreis vor Couponabzug und Einsparungen. Außerdem stellt es Einsparungssummen auf Bestellungsebene bereit, einschließlich eines Werts Gesamt eingespart, der Einsparungen gegenüber dem regulären Preis mit WooCommerce-Rabatten kombiniert, ohne Bestellsummen oder Berichte zu ändern.

Belegdaten v1.2 ergänzt für jede Rabattzeile discount_type: den WooCommerce-Coupon-Typ, der dem Rabatt zugrunde liegt.

Der Beleg im Überblick​

Jeder Teil eines gedruckten Belegs stammt aus einem Abschnitt des Datenvertrags. Bewegen Sie den Mauszeiger über eine Seite, um die Zuordnung zu sehen, und klicken Sie, um zu den Feldern dieses Abschnitts zu springen. Alle Beispiele auf dieser Seite verwenden dieselbe Beispielbestellung.

Häufige Vorlagenaufgaben​

Die meisten Vorlagenänderungen gehören zu einer dieser drei Aufgaben. Jede Karte zeigt zuerst das Druckergebnis und danach das genaue Markup, das Sie in jede logikfreie HTML- oder thermische XML-Vorlage kopieren können. Die dritte Karte zeigt statt der obigen Beispielbestellung eine ältere Bestellung vor v1.9.

2 × Espressobohnen29.00
34.00 · Ersparnis −5.00
Regulären Preis durchstreichen
{{#lines}}
{{#line_savings}}
  <s>{{line_regular_total_display}}</s>
  {{i18n.savings}}: -{{line_savings_display}}
{{/line_savings}}
{{/lines}}
Die Abschnittsprüfung blendet alles bei Bestellungen ohne erfassten Preisverlauf aus.
GESAMT59.97
Gesamt eingespart10.28
Zeile „Gesamt eingespart“ hinzufügen
{{#totals.total_saved_complete}}
{{#totals.total_saved}}
  {{i18n.total_saved}}:
  {{totals.total_saved_display}}
{{/totals.total_saved}}
{{/totals.total_saved_complete}}
Zwei Prüfungen: Die Zeile verschwindet, wenn der Preisverlauf unvollständig ist oder nichts eingespart wurde.
1 × Espressobohnen14.50
17.00 Rabatt −2.50
Bestellung vor v1.9 sicher erneut drucken
{{#lines}}
{{#line_savings}}
  {{^savings_in_discounts}}
    {{i18n.savings}}: -{{line_savings_display}}
  {{/savings_in_discounts}}
{{/line_savings}}
{{/lines}}
Bei alten Bestellungen steckt die Ersparnis bereits im Rabatt. So wird sie nicht doppelt gedruckt.

Belegdaten erweitern​

WCPOS hält den oben beschriebenen Datenvertrag herstellerneutral. Wenn ein Plugin zusätzliche Informationen auf dem Beleg benötigt, die WooCommerce nicht modelliert, fügt es diese selbst über den Filter woocommerce_pos_receipt_data hinzu – so wie Plugins auch die Bestellsummen von WooCommerce filtern. Der Filter wird für jeden vom Server erstellten Beleg ausgeführt: Live-Belege, Fiskal-Momentaufnahmen zum Zahlungszeitpunkt, PDF-Downloads und ältere PHP-Vorlagen.

add_filter( 'woocommerce_pos_receipt_data', function ( array $data, WC_Abstract_Order $order, string $mode ) {
foreach ( $data['discounts'] as &$row ) {
if ( 'smart_coupon' === $row['discount_type'] ) {
$row['gift_card'] = true;
}
}
return $data;
}, 10, 3 );

Eine Vorlage kann dann wie bei jedem anderen Abschnitt prüfen, ob der neue Schlüssel vorhanden ist:

{{#discounts}}
{{#gift_card}}Gift Card{{/gift_card}}{{^gift_card}}{{i18n.discount}}{{/gift_card}}{{#label}}: {{label}}{{/label}}
{{/discounts}}

Im Schema definierte Schlüssel sollten ihre dokumentierten Typen beibehalten. Hinzugefügte Schlüssel gehören nicht zum Schema und erscheinen daher nicht in der Feldauswahl des Vorlageneditors; Fiskal-Momentaufnahmen enthalten nur die Daten, die zum Zahlungszeitpunkt durch den Filter hinzugefügt wurden. Der Filter ist ab WCPOS 1.10.8 verfügbar.

Darstellungsregeln​

Währungsfelder​

Numerische Geldfelder werden als Zahlen beibehalten, und der Renderer ergänzt für die Vorlagenausgabe sprachabhängige _display-Felder:

Numerisches FeldAnzeigefeld
totals.totaltotals.total_display
lines[].line_totallines[].line_total_display
payments[].amountpayments[].amount_display
tax_summary[].tax_amounttax_summary[].tax_amount_display

Beim Drucken von Belegen sollten _display-Felder bevorzugt werden. Numerische Felder nur für bedingte Abschnitte oder maschinenlesbare Ausgaben verwenden.

Felder mit steueranzeigegerechten Werten​

Mehrere Felder verfügen über Varianten inklusive und exklusive Steuern sowie über einen praktischen Anzeigewert. Dieser richtet sich nach der Einstellung der Filiale für die Steueranzeige im Warenkorb.

KomfortfeldFeld inklusive SteuernFeld exklusive Steuern
lines[].regular_pricelines[].regular_price_incllines[].regular_price_excl
lines[].selling_pricelines[].selling_price_incllines[].selling_price_excl
lines[].unit_savingslines[].unit_savings_incllines[].unit_savings_excl
lines[].line_regular_totallines[].line_regular_total_incllines[].line_regular_total_excl
lines[].line_selling_totallines[].line_selling_total_incllines[].line_selling_total_excl
lines[].line_savingslines[].line_savings_incllines[].line_savings_excl
lines[].unit_pricelines[].unit_price_incllines[].unit_price_excl
lines[].unit_subtotallines[].unit_subtotal_incllines[].unit_subtotal_excl
lines[].line_subtotallines[].line_subtotal_incllines[].line_subtotal_excl
lines[].discountslines[].discounts_incllines[].discounts_excl
lines[].line_totallines[].line_total_incllines[].line_total_excl
fees[].totalfees[].total_inclfees[].total_excl
shipping[].totalshipping[].total_inclshipping[].total_excl
discounts[].totaldiscounts[].total_incldiscounts[].total_excl
totals.subtotaltotals.subtotal_incltotals.subtotal_excl
totals.discount_totaltotals.discount_total_incltotals.discount_total_excl
totals.sale_savings_totaltotals.sale_savings_total_incltotals.sale_savings_total_excl
totals.total_savedtotals.total_saved_incltotals.total_saved_excl
totals.totaltotals.total_incltotals.total_excl

Datumsobjekte​

Datumsfelder sind Objekte mit mehreren vorformatierten Varianten. Dadurch entfällt die Datumsformatierung innerhalb von Mustache.

FeldBeschreibung
datetime, date, timeStandard-Datums-/Zeitzeichenfolgen
datetime_short, datetime_long, datetime_fullGebietsschemaabhängige kombinierte Formate
date_short, date_long, date_fullGebietsschemaabhängige reine Datumsformate
date_ymd, date_dmy, date_mdyDatumsformate mit fester Reihenfolge
weekday_short, weekday_longTagesnamen
day, month, month_short, month_long, yearEinzelne Datumsbestandteile

Verfügbare Datumsobjekte: order.created, order.paid, order.completed, order.printed und refunds[].date. order.printed wird beim Rendern aktualisiert, was für Nachdrucke nützlich ist.

Abschnitte der obersten Ebene​

AbschnittTypBeschreibung
orderObjektBestellkennung, Status, Datumsangaben, Notiz und Informationen zur Zahlungs-URL
storeObjektFilialidentität, Adresse, Kontaktdaten, Steuer-IDs, Logo, Öffnungszeiten und Fußzeilentext
cashierObjektBenutzer, der die Bestellung verarbeitet hat
customerObjektKundenanzeigename, Adressen und Steuer-IDs
linesArrayProduktpositionen
feesArrayGebührzeilen
shippingArrayVersandzeilen
discountsArrayCoupon-/Rabattzeilen
totalsObjektBestellsummen, Zahlungssummen, Rückerstattungsübersicht und Artikelanzahl
taxObjektFlags für den Steuermodus zur Steuerung von Abschnitten
tax_summaryArraySteuerübersichtszeilen je Steuersatz
has_tax_summaryBooleschHilfsprüfung für tax_summary
paymentsArrayZahlungszeilen
refundsArrayAuf die Bestellung angewendete Rückerstattungsdatensätze
fiscalObjektFelder der Fiskalübersicht, die von Fiskalintegrationen befüllt werden
presentation_hintsObjektHinweise zur Formatierung und zum Renderer
i18nObjektÜbersetzte Beschriftungen für gebündelte und benutzerdefinierte Vorlagen

Zusammenhang der Preise​

Eine Produktposition enthält mehrere Preise. Die Bezeichnungen werden verständlich, wenn sie direkt am Geldbetrag dargestellt werden. Dies ist die Espresso-Position aus der Beispielbestellung: ein Produkt zum regulären Preis von 17,00 $, im Angebot für 14,50 $, mit einem zusätzlichen Coupon über 10 %.

Espressobohnen — eine Einheit (die Bestellung enthält zwei)
0regulärer Preis 17.00
Vom Kunden zu zahlender Betragunit_price → 13.05 · line_total → 26.10
Gutscheinnachlass (SUMMER10)lines[].discounts → 2.90 für diese Position
Ersparnis gegenüber dem regulären Preisunit_savings → 2.50 · line_savings → 5.00
Ersparnisse aus Angeboten für die gesamte Bestellungtotals.sale_savings_total = 5.00
Alle Coupon-Rabatte der Bestellungtotals.discount_total = 5.28
Ersparnisse und Rabatte ohne ältere Überschneidungentotals.total_saved = 10.28

Ersparnisse gegenüber dem regulären Preis und Coupon-Rabatte sind unterschiedliche Dinge: Für die Ersparnis wird der Verkaufspreis mit dem erfassten regulären Preis verglichen, während discounts die Coupon-Berechnung von WooCommerce bezeichnet. WooCommerce-Bestellsummen und -Berichte enthalten ausschließlich den Coupon-Anteil – deshalb gibt es total_saved als kundenorientierten Gesamtwert, der beides kombiniert.

Feldreferenz​

Die vollständige Feldreferenz ist unten nach Abschnitten gruppiert. Standardmäßig sind alle Bereiche eingeklappt – erweitern Sie die gewünschte Gruppe.

Bestellung — Kennung, Status, Datumsangaben

Bestellung​

FeldTypBeispiel / Beschreibung
order.idZahl1042
order.numberZeichenfolgeFür Menschen lesbare Bestellnummer, z. B. "1042"
order.currencyZeichenfolgeISO-Währungscode, z. B. "USD"
order.customer_noteZeichenfolgeKunden-/Bestellnotiz
order.wc_statusZeichenfolgeWooCommerce-Status-Slug, z. B. "processing"
order.status_labelZeichenfolgeLokalisierte Statusbezeichnung, einschließlich benutzerdefinierter Status
order.created_viaZeichenfolgeQuelle/Kanal, z. B. "woocommerce-pos"
order.needs_paymentBooleschGibt an, ob ein Zahlungsabschnitt angezeigt werden soll
order.payment_urlZeichenfolgeZahlungs-URL der Bestellung, sofern verfügbar
order.createdDatumsobjektErstellungsdatum der Bestellung
order.paidDatumsobjektZahlungsdatum; bei nicht bezahlten Bestellungen leere Zeichenfolgen
order.completedDatumsobjektAbschlussdatum; bei nicht abgeschlossenen Bestellungen leere Zeichenfolgen
order.printedDatumsobjektDruck-/Nachdruckzeitstempel zum Renderzeitpunkt
Filiale — Kennung, Adresse, Kontakt, Öffnungszeiten

Filiale​

FeldTypBeispiel / Beschreibung
store.idZahlFilial-ID oder historische ID gelöschter Filialen
store.nameZeichenfolgeAnzeigename der Filiale
store.address.address_1ZeichenfolgeStraßenadresse, Zeile 1
store.address.address_2ZeichenfolgeZeile für Suite/Einheit
store.address.cityZeichenfolgeStadt/Ort
store.address.stateZeichenfolgeBundesland/Region
store.address.postcodeZeichenfolgePostleitzahl
store.address.countryZeichenfolgeISO-Ländercode
store.address_linesArrayVorformatierte Adresszeilen; für die meisten Vorlagen empfohlen
store.tax_idsArrayStrukturierte Steuer-IDs des Unternehmens; durchlaufen Sie dieses Feld statt eine einzelne Steuer-ID zu verwenden
store.phoneZeichenfolgeTelefonnummer der Filiale
store.emailZeichenfolgeE-Mail-Adresse der Filiale
store.logoZeichenfolge/nullLogo-URL oder Daten-URI der Filiale
store.opening_hoursZeichenfolge/nullKompakter Text zu den Öffnungszeiten
store.opening_hours_verticalZeichenfolge/nullMehrzeiliger Öffnungszeitenblock
store.opening_hours_inlineZeichenfolge/nullDurch Kommas getrennter Text zu den Öffnungszeiten
store.opening_hours_notesZeichenfolge/nullFreitextnotizen zu den Öffnungszeiten
store.personal_notesZeichenfolge/nullBelegfußzeile/persönliche Notiz
store.policies_and_conditionsZeichenfolge/nullText zu Rückerstattungen, Rückgaben oder Geschäftsbedingungen
store.footer_imprintZeichenfolge/nullRechtliches Impressum in der Fußzeile

Steuer-ID-Objekte​

store.tax_ids und customer.tax_ids enthalten Objekte mit derselben Struktur:

FeldTypBeschreibung
typeZeichenfolgeKennung wie eu_vat, de_steuernummer, au_abn, br_cpf, us_ein oder other
valueZeichenfolgeZu druckender Steuer-ID-Wert
countryZeichenfolge/nullISO-Ländercode, sofern bekannt
labelZeichenfolge/nullLokalisierte Anzeigenbezeichnung, die vor der Darstellung aufgelöst wird

Beispiel:

{{#store.tax_ids}}
{{label}}: {{value}}
{{/store.tax_ids}}
Kassierer — Benutzer, der die Bestellung bearbeitet hat

Kassierer​

FeldTypBeispiel / Beschreibung
cashier.idZahlWordPress-Benutzer-ID, 0 falls unbekannt
cashier.nameZeichenfolgeAnzeigename des Kassierers
Kunde — Name, Adressen, Steuer-IDs

Kunde​

FeldTypBeispiel / Beschreibung
customer.idZahl/nullKunden-ID oder null für Gäste
customer.nameZeichenfolgeAnzeigename des Kunden oder Gastbezeichnung
customer.billing_address.*ObjektWooCommerce-Felder für die Rechnungsadresse
customer.shipping_address.*ObjektWooCommerce-Felder für die Lieferadresse
customer.tax_idsArrayStrukturierte Steuer-IDs des Kunden, die aus der Bestellung übernommen wurden

Gängige Adressschlüssel sind first_name, last_name, company, address_1, address_2, city, state, postcode, country, email und phone.

Zeilen — Produktpositionen

Zeilen​

Mit {{#lines}}...{{/lines}} durchlaufen. Die Beispielwerte stammen von der Espresso-Position aus der Beispielbestellung.

Jedes Geldfeld besteht aus einem Wertepaar: der Zahl (für Prüfungen mit {{#…}} verwenden — null und null blenden den Abschnitt aus; ein null-Feld hat überhaupt kein _display-Gegenstück) und der _display-Zeichenfolge (zum Ausgeben verwenden). Mit incl/excl markierte Felder enthalten außerdem _incl- und _excl-Varianten, jeweils mit eigenem _display.

keyZeichenfolge
Stabiler Zeilenschlüssel / Bestellpositions-ID.
key"412"
skuZeichenfolge
Produkt-SKU.
sku"ESP-500"
nameZeichenfolge
Anzeigename des Produkts oder der Position.
name"Espresso Beans"
qtyZahl
Verkaufte Menge.
qty2
qty_refundedZahl
Für diese Position erstattete Menge.
qty_refunded0
regular_priceZahlGeldbetragnullableinkl./exkl.
Erfasster regulärer Stückpreis. Bei Bestellungen ohne POS-Preishistorie null — schließen Sie ihn in einen Abschnitt ein.
regular_price17
regular_price_display"$17.00"
selling_priceZahlGeldbetragnullableinkl./exkl.
Verkaufseinzelpreis vor Couponabzug — der erfasste POS-Preis, sofern verfügbar, andernfalls aus der gespeicherten Positionszwischensumme abgeleitet.
selling_price14.5
selling_price_display"$14.50"
unit_savingsZahlGeldbetragnullableinkl./exkl.
Regulärer Preis abzüglich Verkaufspreis, auf null begrenzt. Null gilt als falsch, daher blenden sich abgesicherte Zeilen selbst aus.
unit_savings2.5
unit_savings_display"$2.50"
line_regular_totalZahlGeldbetragnullableinkl./exkl.
Erfasster regulärer Preis multipliziert mit der Menge.
line_regular_total34
line_regular_total_display"$34.00"
line_selling_totalZahlGeldbetragnullableinkl./exkl.
Verkaufspreis vor Coupons multipliziert mit der Menge.
line_selling_total29
line_selling_total_display"$29.00"
line_savingsZahlGeldbetragnullableinkl./exkl.
Gesamte Ersparnis dieser Position gegenüber dem regulären Preis.
line_savings5
line_savings_display"$5.00"
savings_in_discountsBoolescher Wert
Bei Bestellungen vor v1.9.0 wahr, wenn die Ersparnis bereits in discounts enthalten ist — das Kennzeichen gegen doppelte Zählung.
savings_in_discountsfalse
unit_subtotalZahlGeldbetraginkl./exkl.
WooCommerce-Stückwert vor Rabatt. Nicht als regulären Preis verwenden.
unit_subtotal14.5
unit_subtotal_display"$14.50"
unit_priceZahlGeldbetraginkl./exkl.
Endgültiger Stückwert nach WooCommerce-Rabatten.
unit_price13.05
unit_price_display"$13.05"
line_subtotalZahlGeldbetraginkl./exkl.
WooCommerce-Zwischensumme der Position vor Rabatt.
line_subtotal29
line_subtotal_display"$29.00"
discountsZahlGeldbetraginkl./exkl.
Nativer WooCommerce-Rabatt der Position als positiver Wert — bei aktuellen Bestellungen nur Coupons.
discounts2.9
discounts_display"$2.90"
line_totalZahlGeldbetraginkl./exkl.
Endgültiger Positionsbetrag nach Coupons — der Betrag, der in der Betragsspalte gedruckt wird.
line_total26.1
line_total_display"$26.10"
total_refundedZahlGeldbetrag
Für diese Position insgesamt erstatteter Betrag als positiver Wert.
total_refunded0
total_refunded_display"$0.00"
taxesArray
Steuerzeilen je Steuersatz für diese Position.
—
metaArray
Metadaten der Bestellposition als {key, value}-Paare.
—
attributesArray
Produkt-/Variationsattribute als {key, value}-Paare.
—

Regulären Preis und Ersparnis anzeigen​

Für ein Layout mit Stückpreisen zeigen Sie den erfassten regulären Preis, den Verkaufspreis und die Ersparnis wie folgt an:

{{#lines}}
{{#unit_savings}}
<span style="text-decoration: line-through;">{{regular_price_display}}</span>
<span>{{selling_price_display}}</span>
<span>{{i18n.savings}}: -{{unit_savings_display}}</span>
{{/unit_savings}}
{{/lines}}

Verwenden Sie die Felder für Positionssummen, wenn die Menge relevant ist:

{{#lines}}
{{#line_savings}}
<span style="text-decoration: line-through;">{{line_regular_total_display}}</span>
<span>{{i18n.savings}}: -{{line_savings_display}}</span>
{{/line_savings}}
{{/lines}}

selling_price ist der Preis vor Coupons. Verwenden Sie unit_price oder line_total für den Endbetrag nach WooCommerce-Rabatten.

Bestellungen erneut drucken, die vor v1.9.0 erstellt wurden

Bei älteren WCPOS-Bestellungen kann die Reduzierung vom regulären Preis zum Verkaufspreis bereits in discounts enthalten sein. Wenn Ihre benutzerdefinierte Vorlage sowohl Positionsersparnisse als auch Positionsrabatte ausgibt, verwenden Sie savings_in_discounts, damit dieselbe Reduzierung nicht doppelt angezeigt wird:

{{#lines}}
{{#line_savings}}
<span style="text-decoration: line-through;">{{line_regular_total_display}}</span>
{{^savings_in_discounts}}
<span>{{i18n.savings}}: -{{line_savings_display}}</span>
{{/savings_in_discounts}}
{{/line_savings}}
{{#discounts}}
<span>{{i18n.discount}}: -{{discounts_display}}</span>
{{/discounts}}
{{/lines}}

Wenn die Vorlage keine discounts-Zeile auf Positionsebene ausgibt, zeigen Sie line_savings weiterhin an, auch wenn savings_in_discounts wahr ist. Die mitgelieferten Vorlagen berücksichtigen diesen Unterschied automatisch.

fees and shipping — Gebühren und Versand

Gebühren und Versand​

Mit {{#fees}}...{{/fees}} und {{#shipping}}...{{/shipping}} durchlaufen.

FeldTypBeschreibung
labelZeichenfolgeGebührenbezeichnung oder Name der Versandart
method_idZeichenfolgeID der Versandart (nur beim Versand)
total / _incl / _exclZahlAnzeigesumme sowie Summen inklusive und exklusive Steuer
taxesArraySteuerzeilen je Steuersatz
metaArray{key, value}-Metapaare

Formatierte Varianten: total_display, total_incl_display und total_excl_display.

Rabatte — Coupon-/Rabattzeilen

Rabatte​

Mit {{#discounts}}...{{/discounts}} durchlaufen.

FeldTypBeschreibung
labelZeichenfolgeCouponbeschreibung oder ersatzweise der Code
codeZeichenfolgeCouponcode
discount_typeZeichenfolgeWooCommerce-Coupon-Typ-Slug, z. B. fixed_cart, percent oder fixed_product. Leer, wenn der Coupon nicht mehr existiert.
total / _incl / _exclZahlRabattbetrag als positiver Wert

Formatierte Varianten: total_display, total_incl_display und total_excl_display. Fügen Sie in der Vorlage ein eigenes Minuszeichen hinzu, wenn Rabatte als negative Zeilen angezeigt werden sollen.

discount_type wurde mit Belegdaten v1.2 hinzugefügt. Ältere Fiskal-Momentaufnahmen von Belegen enthalten diesen Wert nicht.

Summen — Bestell-, Zahlungs-, Rückerstattungs- und Positionssummen

Summen​

Die Beispielwerte stammen aus der Beispielbestellung, für die später eine Teilrückerstattung über $7.25 erfolgte.

Geldfelder folgen derselben Paarung wie Positionen: eine reine Zahl für Prüfungen und eine _display-Zeichenfolge zur Ausgabe, bei markierten Feldern mit _incl-/_excl-Varianten.

subtotalZahlGeldbetraginkl./exkl.
Zwischensumme der Bestellung vor Rabatten.
subtotal52.75
subtotal_display"$52.75"
discount_totalZahlGeldbetraginkl./exkl.
Gesamtrabatt der Bestellung als positiver Wert — bei aktuellen Bestellungen nur Coupons.
discount_total5.28
discount_total_display"$5.28"
sale_savings_totalZahlGeldbetragnullableinkl./exkl.
Insgesamt erfasste Ersparnis gegenüber dem regulären Preis über alle Produktpositionen hinweg, einschließlich Katalogangeboten und Preisänderungen an der Kasse.
sale_savings_total5
sale_savings_total_display"$5.00"
total_savedZahlGeldbetragnullableinkl./exkl.
Kombinierte WooCommerce-Rabatte und Ersparnisse gegenüber dem regulären Preis, ohne ältere Überschneidungen. Der kundenorientierte Gesamtwert für alle Ersparnisse.
total_saved10.28
total_saved_display"$10.28"
total_saved_completeBoolescher Wert
Gibt an, ob der Beleg genügend erfasste Preisdaten enthält, um die vollständigen Ersparnissummen zu berechnen.
total_saved_completetrue
tax_totalZahlGeldbetrag
Gesamtsteuerbetrag.
tax_total0
tax_total_display"$0.00"
totalZahlGeldbetraginkl./exkl.
Gesamtsumme der Bestellung.
total59.97
total_display"$59.97"
paid_totalZahlGeldbetrag
Gezahlter/angerechneter Betrag.
paid_total59.97
paid_total_display"$59.97"
change_totalZahlGeldbetrag
An den Kunden ausgezahltes Rückgeld.
change_total0
change_total_display"$0.00"
refund_totalZahlGeldbetrag
Gesamter Rückerstattungsbetrag als positiver Wert.
refund_total7.25
refund_total_display"$7.25"
net_totalZahlGeldbetrag
Gesamtsumme abzüglich Rückerstattungen, auf null begrenzt.
net_total52.72
net_total_display"$52.72"
total_qtyZahl
Summe der Mengen aller Positionen.
total_qty4
line_countZahl
Anzahl der Produktpositionszeilen.
line_count3

Verwenden Sie total_saved, wenn Sie einen einzigen kundenorientierten Wert für alle Ersparnisse benötigen. Addieren Sie discount_total und sale_savings_total nicht in der Vorlage: Bestellungen vor v1.9.0 können ihre POS-Preisersparnis bereits in der WooCommerce-Rabattsumme enthalten. Das maßgebliche Feld total_saved erkennt diese Überschneidung und zieht sie ab.

Die Ersparnissummen sind null und total_saved_complete ist false, wenn für mindestens eine Produktposition nicht genügend erfasste Preisdaten für eine zuverlässige Gesamtsumme vorhanden sind. Sichern Sie die Zeile mit total_saved_complete ab und verwenden Sie anschließend total_saved, um einen Nullwert auszublenden:

{{#totals.total_saved_complete}}
{{#totals.total_saved}}
<span>{{i18n.total_saved}}: {{totals.total_saved_display}}</span>
{{/totals.total_saved}}
{{/totals.total_saved_complete}}

Die mitgelieferten Vorlagen mit Preisen verwenden dieselbe Prüfstruktur mit den steuerinklusiven Varianten (total_saved_incl und total_saved_incl_display) und zeigen Gesamt eingespart nur an, wenn der vollständige Wert größer als null ist.

tax und tax_summary — Anzeigebedingungen und Zeilen je Steuersatz

tax und tax_summary​

Verwenden Sie tax für Prüfungen des Anzeigemodus und tax_summary für einzelne Steuersatzzeilen.

SteuerfeldTypBeschreibung
tax.displayZeichenfolgeincl oder excl
tax.display_inclBooleschWahr, wenn Preise einschließlich Steuer angezeigt werden
tax.display_exclBooleschWahr, wenn Preise ohne Steuer angezeigt werden
tax.breakdownZeichenfolgehidden, single oder itemized
tax.breakdown_hiddenBooleschWahr, wenn Steuerzeilen ausgeblendet werden sollen
tax.breakdown_singleBooleschWahr, wenn eine einzelne Steuersumme bevorzugt wird
tax.breakdown_itemizedBooleschWahr, wenn Zeilen je Steuersatz bevorzugt werden
has_tax_summaryBooleschWahr, wenn tax_summary Zeilen enthält

Durchlaufen Sie tax_summary mit {{#tax_summary}}...{{/tax_summary}}.

FeldTypBeschreibung
codeZeichenfolgeID/Code des Steuersatzes
rateZahl/nullSteuersatz in Prozent, sofern aufgelöst
labelZeichenfolgeBezeichnung des Steuersatzes
compoundBooleschGibt an, ob der Steuersatz zusammengesetzt ist
taxable_amount_exclZahl/nullSteuerpflichtige Bemessungsgrundlage ohne Steuer
tax_amountZahlErhobene Steuer
taxable_amount_inclZahl/nullSteuerpflichtige Bemessungsgrundlage einschließlich Steuer

Formatierte Varianten: taxable_amount_excl_display, tax_amount_display und taxable_amount_incl_display.

Zahlungen — Zahlungszeilen

Zahlungen​

Mit {{#payments}}...{{/payments}} durchlaufen.

FeldTypBeschreibung
method_idZeichenfolgeKennung der Zahlungsmethode
method_titleZeichenfolgeAnzeigename der Zahlungsmethode
amountZahlAuf die Bestellung angerechneter Betrag
transaction_idZeichenfolgeTransaktions-ID des Zahlungsgateways
tenderedZahlErhaltener Bargeldbetrag, sofern vorhanden
changeZahlAusgezahltes Rückgeld, sofern vorhanden

Formatierte Varianten: amount_display, tendered_display und change_display.

Rückerstattungen — Rückerstattungsdatensätze

Rückerstattungen​

Mit {{#refunds}}...{{/refunds}} durchlaufen. Rückerstattungsbeträge sind positive Werte; Vorlagen entscheiden, ob sie ein Minuszeichen voranstellen oder einen eigenen Block für zurückgegebene Artikel rendern.

FeldTypBeschreibung
idZahlID des Rückerstattungsdatensatzes
dateDatumsobjektErstellungsdatum der Rückerstattung
amountZahlRückerstattungssumme
subtotalZahlZwischensumme der erstatteten Position
tax_totalZahlErstattete Steuer
shipping_totalZahlErstatteter Versandbetrag
shipping_taxZahlErstattete Versandsteuer
reasonZeichenfolgeGrund für die Rückerstattung
refunded_by_idZahl/nullBenutzer-ID der Person, die die Rückerstattung veranlasst hat
refunded_by_nameZeichenfolgeAnzeigename der Person, die die Rückerstattung veranlasst hat
refunded_paymentBooleschGibt an, ob die Zahlung über das Zahlungsgateway erstattet wurde
destinationZeichenfolgeoriginal_method, cash oder manual
gateway_idZeichenfolgeFür die Rückerstattung verwendete Gateway-ID
gateway_titleZeichenfolgeAnzeigename des Zahlungsgateways
processing_modeZeichenfolgeVerarbeitungsmodus: über den Anbieter oder manuell
linesArrayErstattete Produktpositionen
feesArrayErstattete Gebührenpositionen
shippingArrayErstattete Versandpositionen

Zu den Feldern der erstatteten Positionen gehören name, sku, qty, total, total_incl, total_excl, line_total, unit_total und taxes. Für erstattete Gebühren- und Versandpositionen werden label, total, total_incl, total_excl und taxes verwendet. Für Summen und Steuerbeträge werden Anzeigevarianten hinzugefügt.

Fiskal — Momentaufnahme der Fiskalintegration

Fiskal​

Fiskalfelder sind standardmäßig leer und werden durch Fiskalintegrationen oder die Anreicherung der Momentaufnahme durch WCPOS Pro befüllt.

FeldTypBeschreibung
fiscal.immutable_idZeichenfolgeUnveränderliche Fiskalkennung
fiscal.receipt_numberZeichenfolgeFiskalbelegnummer
fiscal.sequenceZahl/nullSequenzzähler
fiscal.hashZeichenfolgeHash-/Signaturwert
fiscal.qr_payloadZeichenfolgeQR-Nutzdaten zur steuerlichen Verifizierung
fiscal.tax_agency_codeZeichenfolgeCode der Steuerbehörde
fiscal.signed_atZeichenfolgeZeitstempel der steuerlichen Signierung
fiscal.signature_excerptZeichenfolgeGekürzte Signatur zur Anzeige
fiscal.document_labelZeichenfolgeDokumentbezeichnung, z. B. Steuerrechnung
fiscal.is_reprintBooleschGibt an, ob diese Ausgabe ein Nachdruck ist
fiscal.reprint_countZahlAnzahl der Nachdrucke
fiscal.extra_fieldsArray/ObjektRechtsspezifische Werte
Darstellungshinweise — Formatierungs- und Rendererhinweise

Darstellungshinweise​

Diese Felder werden hauptsächlich vom Renderer und Formatierer verwendet. Bei Bedarf stehen sie auch Vorlagen zur Verfügung.

FeldTypBeschreibung
presentation_hints.display_taxZeichenfolgeincl, excl, hidden, itemized oder single
presentation_hints.prices_entered_with_taxBooleschGibt an, ob Katalogpreise Steuern enthalten
presentation_hints.rounding_modeZeichenfolgeWooCommerce-Einstellung für die Steuerrundung
presentation_hints.localeZeichenfolgeFür die Formatierung verwendetes Gebietsschema
presentation_hints.timezoneZeichenfolgeZeitzone des Belegs
presentation_hints.currency_positionZeichenfolgePosition des Währungssymbols
presentation_hints.currency_symbolZeichenfolgeWährungssymbol
presentation_hints.price_thousand_separatorZeichenfolgeTausendertrennzeichen
presentation_hints.price_decimal_separatorZeichenfolgeDezimaltrennzeichen
presentation_hints.price_num_decimalsZahlAnzahl der Dezimalstellen
presentation_hints.price_display_suffixZeichenfolgeWooCommerce-Preisanzeigesuffix
presentation_hints.order_barcode_typeZeichenfolgeVon Galerievorlagen verwendeter Barcode-Typ

Die vorformatierten Geldfelder (die *_display-Werte wie totals.total_display) geben Beträge mit dem Währungssymbol der Bestellwährung aus und berücksichtigen dabei die oben genannten Positionen und Trennzeichen – Belege zeigen also $12.00 statt USD 12.00. Das Feld order.currency bleibt für Logik in Ihrer Vorlage der ISO-Code.

i18n — übersetzte Beschriftungen

i18n​

Verwenden Sie nach Möglichkeit i18n-Beschriftungen, statt Text fest zu codieren:

{{i18n.order}} #{{order.number}}
{{i18n.cashier}}: {{cashier.name}}
{{i18n.total}}: {{totals.total_display}}

Zu den gängigen Schlüsseln gehören order, date, cashier, customer, item, sku, qty, unit_price, regular_price, selling_price, savings, discount, subtotal, total_saved, total, tax, paid, tendered, change, tax_summary, refunded, net_total, customer_note, thank_you_purchase, opening_hours sowie Steuer-ID-Beschriftungsschlüssel wie store_tax_id_label_eu_vat und customer_tax_id_label_other. Erweiterungen können zusätzliche Schlüssel hinzufügen.