Referentie bongegevens
De logicaloze HTML-sjablonen en thermische XML-sjablonen van WCPOS renderen vanuit dezelfde canonieke bonpayload. Gebruik Mustache-dotpaden zoals {{order.number}}, {{store.name}} en {{totals.total_display}}. Arrays worden gerenderd met secties:
{{#lines}}
{{name}} x {{qty}} — {{line_total_display}}
{{/lines}}
Het canonieke contract wordt geproduceerd door de WCPOS-bongegevensbouwer op de server en gespiegeld door de offline-bonrenderer in de app. Bonnen openen onmiddellijk vanuit lokale gegevens en upgraden vervolgens naar de serverreactie wanneer deze beschikbaar is, dus aangepaste sjablonen moeten de onderstaande velden gebruiken in plaats van PHP-bestelmethoden.
Renderregels
Valutavelden
Numerieke geldvelden worden als getallen behouden en de renderer voegt locale-bewuste _display-velden toe voor sjabloonuitvoer:
| Numeriek veld | Weergaveveld |
|---|---|
totals.total | totals.total_display |
lines[].line_total | lines[].line_total_display |
payments[].amount | payments[].amount_display |
tax_summary[].tax_amount | tax_summary[].tax_amount_display |
Geef de voorkeur aan _display-velden bij het afdrukken van bonnen. Gebruik numerieke velden alleen voor voorwaardelijke secties of machineleesbare uitvoer.
Btw-weergavebewuste velden
Verschillende velden hebben varianten inclusief en exclusief btw plus een weergavegerichte gemakswaarde. De gemakswaarde volgt de instelling voor de btw-weergave in de winkelwagen van de winkel.
| Gemaksveld | Veld inclusief | Veld exclusief |
|---|---|---|
lines[].unit_price | lines[].unit_price_incl | lines[].unit_price_excl |
lines[].unit_subtotal | lines[].unit_subtotal_incl | lines[].unit_subtotal_excl |
lines[].line_subtotal | lines[].line_subtotal_incl | lines[].line_subtotal_excl |
lines[].discounts | lines[].discounts_incl | lines[].discounts_excl |
lines[].line_total | lines[].line_total_incl | lines[].line_total_excl |
fees[].total | fees[].total_incl | fees[].total_excl |
shipping[].total | shipping[].total_incl | shipping[].total_excl |
discounts[].total | discounts[].total_incl | discounts[].total_excl |
totals.subtotal | totals.subtotal_incl | totals.subtotal_excl |
totals.discount_total | totals.discount_total_incl | totals.discount_total_excl |
totals.total | totals.total_incl | totals.total_excl |
Datumobjecten
Datumvelden zijn objecten met meerdere vooraf opgemaakte varianten. Dit voorkomt datumopmaak binnen Mustache.
| Veld | Beschrijving |
|---|---|
datetime, date, time | Standaard datum-/tijdstrings |
datetime_short, datetime_long, datetime_full | Locale-bewuste gecombineerde formaten |
date_short, date_long, date_full | Locale-bewuste formaten met alleen datum |
date_ymd, date_dmy, date_mdy | Datumformaten met vaste volgorde |
weekday_short, weekday_long | Dagnamen |
day, month, month_short, month_long, year | Afzonderlijke datumonderdelen |
Beschikbare datumobjecten: order.created, order.paid, order.completed, order.printed en refunds[].date. order.printed wordt op het moment van renderen vernieuwd, wat handig is voor herafdrukken.
Secties op hoofdniveau
| Sectie | Type | Beschrijving |
|---|---|---|
order | object | Bestelidentiteit, status, datums, notitie en betalings-URL-informatie |
store | object | Winkelidentiteit, adres, contactgegevens, fiscale nummers, logo, openingstijden en voettekst |
cashier | object | Gebruiker die de bestelling heeft verwerkt |
customer | object | Weergavenaam, adressen en fiscale nummers van de klant |
lines | array | Productregelitems |
fees | array | Kostenregels |
shipping | array | Verzendregels |
discounts | array | Coupon-/kortingsregels |
totals | object | Besteltotalen, betalingstotalen, terugbetaaloverzicht en aantallen items |
tax | object | Vlaggen voor de btw-weergavemodus voor sectie-guards |
tax_summary | array | Btw-overzichtsregels per tarief |
has_tax_summary | boolean | Gemaks-guard voor tax_summary |
payments | array | Betalingsregels |
refunds | array | Terugbetalingsrecords die op de bestelling zijn toegepast |
fiscal | object | Fiscale-snapshotvelden die worden gevuld door fiscale integraties |
presentation_hints | object | Opmaak- en renderer-hints |
i18n | object | Vertaalde labels voor meegeleverde en aangepaste sjablonen |
Veldreferentie
De volledige veldreferentie is hieronder gegroepeerd per sectie. Alles is standaard ingeklapt — vouw de groep uit die je nodig hebt.
order — identiteit, status, datums
order
| Veld | Type | Voorbeeld / beschrijving |
|---|---|---|
order.id | number | 1234 |
order.number | string | Voor mensen leesbaar bestelnummer, bijv. "10045" |
order.currency | string | ISO-valutacode, bijv. "USD" |
order.customer_note | string | Klant-/bestelnotitie |
order.wc_status | string | Onbewerkte WooCommerce-statusslug, bijv. "processing" |
order.status_label | string | Gelokaliseerd statuslabel, inclusief aangepaste statussen |
order.created_via | string | Bron/kanaal, bijv. "woocommerce-pos" |
order.needs_payment | boolean | Of een betalingssectie moet worden getoond |
order.payment_url | string | Betalings-URL van de bestelling indien beschikbaar |
order.created | date object | Aanmaakdatum van de bestelling |
order.paid | date object | Betaaldatum, lege strings indien niet betaald |
order.completed | date object | Voltooiingsdatum, lege strings indien niet voltooid |
order.printed | date object | Tijdstempel van het afdrukken/herafdrukken op het moment van renderen |
store — identiteit, adres, contact, openingstijden
store
| Veld | Type | Voorbeeld / beschrijving |
|---|---|---|
store.id | number | Winkel-ID, of historische ID voor verwijderde winkels |
store.name | string | Weergavenaam van de winkel |
store.address.address_1 | string | Adresregel 1 |
store.address.address_2 | string | Suite-/unitregel |
store.address.city | string | Stad/plaats |
store.address.state | string | Provincie/regio |
store.address.postcode | string | Postcode |
store.address.country | string | ISO-landcode |
store.address_lines | array | Vooraf opgemaakte adresregels; aanbevolen voor de meeste sjablonen |
store.tax_ids | array | Gestructureerde fiscale bedrijfsnummers; loop hierdoorheen in plaats van één enkel fiscaal nummer te gebruiken |
store.phone | string | Telefoonnummer van de winkel |
store.email | string | E-mailadres van de winkel |
store.logo | string/null | URL of data-URI van het winkellogo |
store.opening_hours | string/null | Compacte tekst met openingstijden |
store.opening_hours_vertical | string/null | Meerregelig blok met openingstijden |
store.opening_hours_inline | string/null | Door komma's gescheiden tekst met openingstijden |
store.opening_hours_notes | string/null | Vrije-tekstnotities over openingstijden |
store.personal_notes | string/null | Voettekst van de bon/persoonlijke notitie |
store.policies_and_conditions | string/null | Tekst over terugbetalingen, retourzendingen of voorwaarden |
store.footer_imprint | string/null | Juridische voettekst (imprint) |
Fiscale-nummerobjecten
store.tax_ids en customer.tax_ids bevatten objecten met dezelfde vorm:
| Veld | Type | Beschrijving |
|---|---|---|
type | string | Nummer zoals eu_vat, de_steuernummer, au_abn, br_cpf, us_ein of other |
value | string | Fiscale-nummerwaarde om af te drukken |
country | string/null | ISO-landcode indien bekend |
label | string/null | Gelokaliseerd weergavelabel, opgelost vóór het renderen |
Voorbeeld:
{{#store.tax_ids}}
{{label}}: {{value}}
{{/store.tax_ids}}
cashier — gebruiker die de bestelling heeft verwerkt
cashier
| Veld | Type | Voorbeeld / beschrijving |
|---|---|---|
cashier.id | number | WordPress-gebruikers-ID, 0 indien onbekend |
cashier.name | string | Weergavenaam van de kassier |
customer — naam, adressen, fiscale nummers
customer
| Veld | Type | Voorbeeld / beschrijving |
|---|---|---|
customer.id | number/null | Klant-ID, of null voor gasten |
customer.name | string | Weergavenaam van de klant, of gastlabel |
customer.billing_address.* | object | WooCommerce-factuuradresvelden |
customer.shipping_address.* | object | WooCommerce-verzendadresvelden |
customer.tax_ids | array | Gestructureerde fiscale nummers van de klant, vastgelegd vanuit de bestelling |
Veelvoorkomende adressleutels zijn first_name, last_name, company, address_1, address_2, city, state, postcode, country, email en phone.
lines — productregelitems
lines
Loop met {{#lines}}...{{/lines}}.
| Veld | Type | Beschrijving |
|---|---|---|
key | string | Stabiele regelsleutel/bestelitem-ID |
sku | string | Product-SKU |
name | string | Weergavenaam van product of regel |
qty | number | Verkochte hoeveelheid |
qty_refunded | number | Terugbetaalde hoeveelheid voor deze regel |
unit_subtotal / _incl / _excl | number | Eenheidsprijs vóór korting |
unit_price / _incl / _excl | number | Eenheidsprijs na korting |
line_subtotal / _incl / _excl | number | Regelsubtotaal vóór korting |
discounts / _incl / _excl | number | Kortingsbedrag als positieve waarde |
line_total / _incl / _excl | number | Definitief regeltotaal |
total_refunded | number | Totaal terugbetaald voor deze regel als positieve waarde |
taxes | array | Btw-regels per tarief voor deze regel |
meta | array | Metadata van bestelitem als {key, value}-paren |
attributes | array | Product-/variatieattributen als {key, value}-paren |
Opgemaakte varianten zijn onder andere unit_subtotal_display, unit_price_display, line_subtotal_display, discounts_display, line_total_display en inclusief/exclusief _display-varianten.
fees en shipping
fees en shipping
Loop met {{#fees}}...{{/fees}} en {{#shipping}}...{{/shipping}}.
| Veld | Type | Beschrijving |
|---|---|---|
label | string | Kostenlabel of naam van verzendmethode |
method_id | string | ID van verzendmethode (alleen verzending) |
total / _incl / _excl | number | Weergavegerichte, inclusieve en exclusieve totalen |
taxes | array | Btw-regels per tarief |
meta | array | {key, value}-metaparen |
Opgemaakte varianten: total_display, total_incl_display en total_excl_display.
discounts — coupon-/kortingsregels
discounts
Loop met {{#discounts}}...{{/discounts}}.
| Veld | Type | Beschrijving |
|---|---|---|
label | string | Couponbeschrijving of code-fallback |
code | string | Couponcode |
codes | string | Legacy-/weergave-fallback voor samengevoegde codes |
total / _incl / _excl | number | Kortingsbedrag als positieve waarde |
Opgemaakte varianten: total_display, total_incl_display en total_excl_display. Voeg je eigen minteken toe in het sjabloon als je kortingen als negatieve regels wilt tonen.
totals — bestel-, betalings-, terugbetaal- en itemtotalen
totals
| Veld | Type | Beschrijving |
|---|---|---|
totals.subtotal / _incl / _excl | number | Bestelsubtotaal vóór kortingen |
totals.discount_total / _incl / _excl | number | Totale bestelkorting als positieve waarde |
totals.tax_total | number | Totaal btw-bedrag |
totals.total / _incl / _excl | number | Eindtotaal van de bestelling |
totals.paid_total | number | Betaald/toegepast bedrag |
totals.change_total | number | Wisselgeld dat aan de klant wordt teruggegeven |
totals.refund_total | number | Totaal terugbetaald als positieve waarde |
totals.net_total | number | total - refund_total, vastgezet op nul |
totals.total_qty | number | Som van de hoeveelheden van regelitems |
totals.line_count | number | Aantal productregels |
Opgemaakte varianten zijn onder andere subtotal_display, discount_total_display, tax_total_display, total_display, paid_total_display, change_total_display, refund_total_display en net_total_display, plus inclusief/exclusief varianten waar van toepassing.
tax en tax_summary — weergave-guards en regels per tarief
tax en tax_summary
Gebruik tax voor weergavemodus-guards en tax_summary voor gespecificeerde tariefregels.
| Btw-veld | Type | Beschrijving |
|---|---|---|
tax.display | string | incl of excl |
tax.display_incl | boolean | True wanneer prijzen inclusief btw worden weergegeven |
tax.display_excl | boolean | True wanneer prijzen exclusief btw worden weergegeven |
tax.breakdown | string | hidden, single of itemized |
tax.breakdown_hidden | boolean | True wanneer btw-regels verborgen moeten zijn |
tax.breakdown_single | boolean | True wanneer een enkel btw-totaal de voorkeur heeft |
tax.breakdown_itemized | boolean | True wanneer regels per tarief de voorkeur hebben |
has_tax_summary | boolean | True wanneer tax_summary regels bevat |
Loop tax_summary met {{#tax_summary}}...{{/tax_summary}}.
| Veld | Type | Beschrijving |
|---|---|---|
code | string | Btw-tarief-ID/-code |
rate | number/null | Tariefpercentage indien opgelost |
label | string | Label van btw-tarief |
compound | boolean | Of het tarief samengesteld is |
taxable_amount_excl | number/null | Belastbare grondslag exclusief btw |
tax_amount | number | Geïnde btw |
taxable_amount_incl | number/null | Belastbare grondslag inclusief btw |
Opgemaakte varianten: taxable_amount_excl_display, tax_amount_display en taxable_amount_incl_display.
payments — betalingsregels
payments
Loop met {{#payments}}...{{/payments}}.
| Veld | Type | Beschrijving |
|---|---|---|
method_id | string | Identifier van betaalmethode |
method_title | string | Weergavetitel van betaalmethode |
amount | number | Op de bestelling toegepast bedrag |
transaction_id | string | Transactie-ID van de gateway |
tendered | number | Aangeboden contant bedrag indien aanwezig |
change | number | Teruggegeven contant wisselgeld indien aanwezig |
Opgemaakte varianten: amount_display, tendered_display en change_display.
refunds — terugbetalingsrecords
refunds
Loop met {{#refunds}}...{{/refunds}}. Terugbetaalbedragen zijn positieve grootten; sjablonen bepalen of er een minteken voorgevoegd wordt of een apart blok met geretourneerde items wordt gerenderd.
| Veld | Type | Beschrijving |
|---|---|---|
id | number | ID van terugbetalingsrecord |
date | date object | Aanmaakdatum van terugbetaling |
amount | number | Terugbetaaltotaal |
subtotal | number | Terugbetaald regelsubtotaal |
tax_total | number | Terugbetaalde btw |
shipping_total | number | Terugbetaald verzendbedrag |
shipping_tax | number | Terugbetaalde verzend-btw |
reason | string | Reden van terugbetaling |
refunded_by_id | number/null | Gebruikers-ID die de terugbetaling heeft uitgevoerd |
refunded_by_name | string | Weergavenaam van de gebruiker die de terugbetaling heeft uitgevoerd |
refunded_payment | boolean | Of de betaling via de gateway is terugbetaald |
destination | string | original_method, cash of manual |
gateway_id | string | Gateway-ID die voor de terugbetaling is gebruikt |
gateway_title | string | Weergavetitel van de gateway |
processing_mode | string | Provider-/handmatige verwerkingsmodus |
lines | array | Terugbetaalde productregels |
fees | array | Terugbetaalde kostenregels |
shipping | array | Terugbetaalde verzendregels |
Terugbetalingsregelvelden zijn onder andere name, sku, qty, total, total_incl, total_excl, line_total, unit_total en taxes. Terugbetalingskosten- en verzendregels gebruiken label, total, total_incl, total_excl en taxes. Weergavevarianten worden toegevoegd voor totalen en btw-bedragen.
fiscal — snapshot van fiscale integratie
fiscal
Fiscale velden zijn standaard leeg en worden gevuld door fiscale integraties of de snapshotverrijking van WCPOS Pro.
| Veld | Type | Beschrijving |
|---|---|---|
fiscal.immutable_id | string | Onveranderlijke fiscale identifier |
fiscal.receipt_number | string | Fiscaal bonnummer |
fiscal.sequence | number/null | Volgteller |
fiscal.hash | string | Hash-/handtekeningwaarde |
fiscal.qr_payload | string | QR-payload voor fiscale verificatie |
fiscal.tax_agency_code | string | Code van de belastingautoriteit |
fiscal.signed_at | string | Tijdstempel van fiscale ondertekening |
fiscal.signature_excerpt | string | Afgekapte handtekening voor weergave |
fiscal.document_label | string | Documentlabel, bijv. Tax Invoice |
fiscal.is_reprint | boolean | Of deze render een herafdruk is |
fiscal.reprint_count | number | Aantal herafdrukken |
fiscal.extra_fields | array/object | Jurisdictiespecifieke waarden |
presentation_hints — opmaak- en renderer-hints
presentation_hints
Deze velden worden voornamelijk verbruikt door de renderer en formatter. Ze zijn beschikbaar voor sjablonen wanneer dat nodig is.
| Veld | Type | Beschrijving |
|---|---|---|
presentation_hints.display_tax | string | incl, excl, hidden, itemized of single |
presentation_hints.prices_entered_with_tax | boolean | Of catalogusprijzen btw bevatten |
presentation_hints.rounding_mode | string | WooCommerce-instelling voor btw-afronding |
presentation_hints.locale | string | Locale die voor de opmaak wordt gebruikt |
presentation_hints.timezone | string | Tijdzone van de bon |
presentation_hints.currency_position | string | Positie van het valutasymbool |
presentation_hints.currency_symbol | string | Valutasymbool |
presentation_hints.price_thousand_separator | string | Duizendtalscheidingsteken |
presentation_hints.price_decimal_separator | string | Decimaalscheidingsteken |
presentation_hints.price_num_decimals | number | Aantal decimalen |
presentation_hints.price_display_suffix | string | WooCommerce-achtervoegsel voor prijsweergave |
presentation_hints.order_barcode_type | string | Barcodetype dat door galerijsjablonen wordt gebruikt |
i18n — vertaalde labels
i18n
Gebruik waar mogelijk i18n-labels in plaats van tekst hard te coderen:
{{i18n.order}} #{{order.number}}
{{i18n.cashier}}: {{cashier.name}}
{{i18n.total}}: {{totals.total_display}}
Veelvoorkomende sleutels zijn order, date, cashier, customer, item, sku, qty, unit_price, discount, subtotal, total, tax, paid, tendered, change, tax_summary, refunded, net_total, customer_note, thank_you_purchase, opening_hours, en de fiscale-labelsleutels zoals store_tax_id_label_eu_vat en customer_tax_id_label_other. Extra sleutels kunnen door extensies worden toegevoegd.