Ga naar hoofdinhoud
Versie: 1.x

Referentie bongegevens

WCPOS HTML-sjablonen zonder logica en thermische XML-sjablonen worden gerenderd vanuit dezelfde canonieke bonpayload. Gebruik Mustache-paden met punten, 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 op de server gemaakt door de WCPOS-bongegevensbouwer en gespiegeld door de offline bonrenderer in de app. Bonnen openen direct vanuit lokale gegevens en worden daarna bijgewerkt met de serverrespons zodra die beschikbaar is. Aangepaste sjablonen moeten daarom de onderstaande velden gebruiken in plaats van PHP-bestelmethoden.

Renderregels

Valutavelden

Numerieke geldvelden blijven nummers en de renderer voegt locale-afhankelijke _display-velden toe voor uitvoer in sjablonen:

Numeriek veldWeergaveveld
totals.totaltotals.total_display
lines[].line_totallines[].line_total_display
payments[].amountpayments[].amount_display
tax_summary[].tax_amounttax_summary[].tax_amount_display

Gebruik bij voorkeur _display-velden bij het afdrukken van bonnen. Gebruik numerieke velden alleen voor voorwaardelijke secties of machineleesbare uitvoer.

Velden die rekening houden met belastingweergave

Verschillende velden hebben varianten inclusief en exclusief belasting, plus een handige weergavewaarde. De handige weergavewaarde volgt de instelling voor belastingweergave in de winkelwagen van de winkel.

Handig veldVeld inclusief belastingVeld exclusief belasting
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.totaltotals.total_incltotals.total_excl

Datumobjecten

Datumvelden zijn objecten met meerdere vooraf opgemaakte varianten. Zo hoeft datumopmaak niet in Mustache te gebeuren.

VeldBeschrijving
datetime, date, timeStandaard datum-/tijdstrings
datetime_short, datetime_long, datetime_fullLocale-afhankelijke gecombineerde formaten
date_short, date_long, date_fullLocale-afhankelijke formaten met alleen datum
date_ymd, date_dmy, date_mdyDatumformaten met vaste volgorde
weekday_short, weekday_longDagnamen
day, month, month_short, month_long, yearAfzonderlijke datumdelen

Beschikbare datumobjecten: order.created, order.paid, order.completed, order.printed en refunds[].date. order.printed wordt tijdens het renderen vernieuwd, wat handig is voor herdrukken.

Secties op hoogste niveau

SectieTypeBeschrijving
orderobjectBestelidentiteit, status, datums, notitie en betaal-URL-informatie
storeobjectWinkelidentiteit, adres, contactgegevens, belasting-ID's, logo, openingstijden en voettekst
cashierobjectGebruiker die de bestelling heeft verwerkt
customerobjectWeergavenaam van de klant, adressen en belasting-ID's
linesarrayProductregels
feesarrayKostenregels
shippingarrayVerzendregels
discountsarrayCoupon-/kortingsregels
totalsobjectBesteltotalen, betalingstotalen, retourbetalingssamenvatting en artikeltellingen
taxobjectVlaggen voor belastingweergavemodus voor sectievoorwaarden
tax_summaryarrayBelastingoverzichtsregels per tarief
has_tax_summarybooleanHandige voorwaarde voor tax_summary
paymentsarrayBetalingsregels
refundsarrayRetourbetalingsrecords die op de bestelling zijn toegepast
fiscalobjectFiscale snapshotvelden die door fiscale integraties worden gevuld
presentation_hintsobjectOpmaak- en rendererhints
i18nobjectVertaalde labels voor meegeleverde en aangepaste sjablonen

order

VeldTypeVoorbeeld / beschrijving
order.idnumber1234
order.numberstringBestelnummer voor de klant, bijvoorbeeld "10045"
order.currencystringISO-valutacode, bijvoorbeeld "USD"
order.customer_notestringKlant-/bestelnotitie
order.wc_statusstringOnbewerkte WooCommerce-statusslug, bijvoorbeeld "processing"
order.status_labelstringGelokaliseerd statuslabel, inclusief aangepaste statussen
order.created_viastringBron/kanaal, bijvoorbeeld "woocommerce-pos"
order.needs_paymentbooleanOf een betalingssectie moet worden getoond
order.payment_urlstringBetaal-URL van de bestelling wanneer beschikbaar
order.createddate objectAanmaakdatum van de bestelling
order.paiddate objectBetaaldatum; lege strings wanneer niet betaald
order.completeddate objectVoltooiingsdatum; lege strings wanneer niet voltooid
order.printeddate objectTijdstempel van afdrukken/herdrukken tijdens het renderen

store

VeldTypeVoorbeeld / beschrijving
store.idnumberWinkel-ID, of historisch ID voor verwijderde winkels
store.namestringWeergavenaam van de winkel
store.address.address_1stringStraatadres regel 1
store.address.address_2stringSuite-/unitregel
store.address.citystringPlaats/gemeente
store.address.statestringStaat/regio
store.address.postcodestringPostcode
store.address.countrystringISO-landcode
store.address_linesarrayVooraf opgemaakte adresregels; aanbevolen voor de meeste sjablonen
store.tax_idsarrayGestructureerde zakelijke belasting-ID's; loop hierover in plaats van een enkele belasting-ID te gebruiken
store.phonestringTelefoonnummer van de winkel
store.emailstringE-mailadres van de winkel
store.logostring/nullURL of data-URI van het winkellogo
store.opening_hoursstring/nullCompacte tekst met openingstijden
store.opening_hours_verticalstring/nullOpeningstijdenblok over meerdere regels
store.opening_hours_inlinestring/nullOpeningstijden als kommagescheiden tekst
store.opening_hours_notesstring/nullVrije tekstnotities over openingstijden
store.personal_notesstring/nullPersoonlijke notitie/voettekst op de bon
store.policies_and_conditionsstring/nullTekst voor terugbetalingen, retouren of voorwaarden
store.footer_imprintstring/nullWettelijke voettekst

Belasting-ID-objecten

store.tax_ids en customer.tax_ids bevatten objecten met dezelfde vorm:

VeldTypeBeschrijving
typestringIdentificatie zoals eu_vat, de_steuernummer, au_abn, br_cpf, us_ein of other
valuestringBelasting-ID-waarde om af te drukken
countrystring/nullISO-landcode wanneer bekend
labelstring/nullGelokaliseerd weergavelabel, opgelost voordat er wordt gerenderd

Voorbeeld:

{{#store.tax_ids}}
{{label}}: {{value}}
{{/store.tax_ids}}

cashier

VeldTypeVoorbeeld / beschrijving
cashier.idnumberWordPress-gebruikers-ID, 0 wanneer onbekend
cashier.namestringWeergavenaam van de kassier

customer

VeldTypeVoorbeeld / beschrijving
customer.idnumber/nullKlant-ID, of null voor gasten
customer.namestringWeergavenaam van de klant, of gastlabel
customer.billing_address.*objectWooCommerce-velden voor factuuradres
customer.shipping_address.*objectWooCommerce-velden voor verzendadres
customer.tax_idsarrayGestructureerde klantbelasting-ID's die uit de bestelling zijn vastgelegd

Veelgebruikte adressleutels zijn first_name, last_name, company, address_1, address_2, city, state, postcode, country, email en phone.

lines

Loop met {{#lines}}...{{/lines}}.

VeldTypeBeschrijving
keystringStabiele regelsleutel/bestelitem-ID
skustringProduct-SKU
namestringProductnaam of regelweergavenaam
qtynumberVerkochte hoeveelheid
qty_refundednumberTerugbetaalde hoeveelheid voor deze regel
unit_subtotal / _incl / _exclnumberEenheidsprijs voor korting
unit_price / _incl / _exclnumberEenheidsprijs na korting
line_subtotal / _incl / _exclnumberRegelsubtotaal voor korting
discounts / _incl / _exclnumberKortingsbedrag als positieve waarde
line_total / _incl / _exclnumberDefinitief regeltotaal
total_refundednumberTotaal terugbetaald voor deze regel als positieve waarde
taxesarrayBelastingregels per tarief voor deze regel
metaarrayBestelitemmeta als {key, value}-paren
attributesarrayProduct-/variatieattributen als {key, value}-paren

Opgemaakte varianten zijn onder meer unit_subtotal_display, unit_price_display, line_subtotal_display, discounts_display, line_total_display en inclusieve/exclusieve _display-varianten.

fees en shipping

Loop met {{#fees}}...{{/fees}} en {{#shipping}}...{{/shipping}}.

VeldTypeBeschrijving
labelstringKostenlabel of naam van verzendmethode
method_idstringID van de verzendmethode (alleen verzending)
total / _incl / _exclnumberTotalen aan weergavezijde, inclusief en exclusief belasting
taxesarrayBelastingregels per tarief
metaarray{key, value}-metaparen

Opgemaakte varianten: total_display, total_incl_display en total_excl_display.

discounts

Loop met {{#discounts}}...{{/discounts}}.

VeldTypeBeschrijving
labelstringCouponomschrijving of code als fallback
codestringCouponcode
codesstringVerouderde/weergavefallback voor samengevoegde codes
total / _incl / _exclnumberKortingsbedrag als positieve waarde

Opgemaakte varianten: total_display, total_incl_display en total_excl_display. Voeg zelf een minteken toe in het sjabloon als je kortingen als negatieve regels wilt tonen.

totals

VeldTypeBeschrijving
totals.subtotal / _incl / _exclnumberBestelsubtotaal voor kortingen
totals.discount_total / _incl / _exclnumberTotaal aan bestelkortingen als positieve waarde
totals.tax_totalnumberTotaal belastingbedrag
totals.total / _incl / _exclnumberEindtotaal van de bestelling
totals.paid_totalnumberBetaald/toegepast bedrag
totals.change_totalnumberWisselgeld teruggegeven aan de klant
totals.refund_totalnumberTotaal terugbetaald als positieve waarde
totals.net_totalnumbertotal - refund_total, begrensd op nul
totals.total_qtynumberSom van de hoeveelheden van regelitems
totals.line_countnumberAantal productregels

Opgemaakte varianten zijn onder meer subtotal_display, discount_total_display, tax_total_display, total_display, paid_total_display, change_total_display, refund_total_display en net_total_display, plus inclusieve/exclusieve varianten waar van toepassing.

tax en tax_summary

Gebruik tax voor voorwaarden rond de weergavemodus en tax_summary voor gespecificeerde tariefregels.

BelastingveldTypeBeschrijving
tax.displaystringincl of excl
tax.display_inclbooleanWaar wanneer prijzen inclusief belasting worden weergegeven
tax.display_exclbooleanWaar wanneer prijzen exclusief belasting worden weergegeven
tax.breakdownstringhidden, single of itemized
tax.breakdown_hiddenbooleanWaar wanneer belastingregels verborgen moeten worden
tax.breakdown_singlebooleanWaar wanneer een enkel belastingtotaal de voorkeur heeft
tax.breakdown_itemizedbooleanWaar wanneer regels per tarief de voorkeur hebben
has_tax_summarybooleanWaar wanneer tax_summary regels bevat

Loop door tax_summary met {{#tax_summary}}...{{/tax_summary}}.

VeldTypeBeschrijving
codestringID/code van het belastingtarief
ratenumber/nullTariefpercentage wanneer opgelost
labelstringLabel van het belastingtarief
compoundbooleanOf het tarief samengesteld is
taxable_amount_exclnumber/nullBelastbare grondslag exclusief belasting
tax_amountnumberGeïnde belasting
taxable_amount_inclnumber/nullBelastbare grondslag inclusief belasting

Opgemaakte varianten: taxable_amount_excl_display, tax_amount_display en taxable_amount_incl_display.

payments

Loop met {{#payments}}...{{/payments}}.

VeldTypeBeschrijving
method_idstringIdentificatie van de betaalmethode
method_titlestringWeergavetitel van de betaalmethode
amountnumberBedrag dat op de bestelling is toegepast
transaction_idstringGateway-transactie-ID
tenderednumberContant aangeboden bedrag wanneer aanwezig
changenumberContant wisselgeld wanneer aanwezig

Opgemaakte varianten: amount_display, tendered_display en change_display.

refunds

Loop met {{#refunds}}...{{/refunds}}. Retourbedragen zijn positieve grootheden; sjablonen bepalen zelf of ze een minteken toevoegen of een apart blok met geretourneerde items renderen.

VeldTypeBeschrijving
idnumberRetourbetalingsrecord-ID
datedate objectAanmaakdatum van de retourbetaling
amountnumberTotaal van de retourbetaling
subtotalnumberTerugbetaald regelsubtotaal
tax_totalnumberTerugbetaalde belasting
shipping_totalnumberTerugbetaald verzendbedrag
shipping_taxnumberTerugbetaalde verzendbelasting
reasonstringReden voor retourbetaling
refunded_by_idnumber/nullGebruikers-ID dat de retourbetaling heeft uitgegeven
refunded_by_namestringWeergavenaam van de gebruiker die de retourbetaling heeft uitgegeven
refunded_paymentbooleanOf de betaling via de gateway is terugbetaald
destinationstringoriginal_method, cash of manual
gateway_idstringGateway-ID die voor de retourbetaling is gebruikt
gateway_titlestringWeergavetitel van de gateway
processing_modestringVerwerkingsmodus van provider/handmatig
linesarrayTerugbetaalde productregels
feesarrayTerugbetaalde kostenregels
shippingarrayTerugbetaalde verzendregels

Retourregelvelden zijn onder meer name, sku, qty, total, total_incl, total_excl, line_total, unit_total en taxes. Retourkosten- en verzendregels gebruiken label, total, total_incl, total_excl en taxes. Weergavevarianten worden toegevoegd voor totalen en belastingbedragen.

fiscal

Fiscale velden zijn standaard leeg en worden gevuld door fiscale integraties of WCPOS Pro-snapshotverrijking.

VeldTypeBeschrijving
fiscal.immutable_idstringOnveranderlijke fiscale identificatie
fiscal.receipt_numberstringFiscaal bonnummer
fiscal.sequencenumber/nullVolgnummer
fiscal.hashstringHash-/handtekeningwaarde
fiscal.qr_payloadstringQR-payload voor fiscale verificatie
fiscal.tax_agency_codestringCode van de belastingautoriteit
fiscal.signed_atstringTijdstempel van fiscale ondertekening
fiscal.signature_excerptstringIngekorte handtekening voor weergave
fiscal.document_labelstringDocumentlabel, bijvoorbeeld Belastingfactuur
fiscal.is_reprintbooleanOf deze render een herdruk is
fiscal.reprint_countnumberAantal herdrukken
fiscal.extra_fieldsarray/objectRechtsgebiedspecifieke waarden

presentation_hints

Deze velden worden voornamelijk gebruikt door de renderer en formatter. Ze zijn beschikbaar voor sjablonen wanneer dat nodig is.

VeldTypeBeschrijving
presentation_hints.display_taxstringincl, excl, hidden, itemized of single
presentation_hints.prices_entered_with_taxbooleanOf catalogusprijzen belasting bevatten
presentation_hints.rounding_modestringWooCommerce-instelling voor belastingafronding
presentation_hints.localestringLocale die voor opmaak wordt gebruikt
presentation_hints.timezonestringTijdzone van de bon
presentation_hints.currency_positionstringPositie van het valutasymbool
presentation_hints.currency_symbolstringValutasymbool
presentation_hints.price_thousand_separatorstringScheidingsteken voor duizendtallen
presentation_hints.price_decimal_separatorstringDecimaal scheidingsteken
presentation_hints.price_num_decimalsnumberAantal decimalen
presentation_hints.price_display_suffixstringWooCommerce-achtervoegsel voor prijsweergave
presentation_hints.order_barcode_typestringBarcodetype dat door galerijsjablonen wordt gebruikt

i18n

Gebruik i18n-labels in plaats van tekst waar mogelijk rechtstreeks op te nemen:

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

Veelgebruikte 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 belasting-ID-labelsleutels zoals store_tax_id_label_eu_vat en customer_tax_id_label_other. Extensies kunnen extra sleutels toevoegen.