Aangepaste Liquid-blokken voor geprinte bonnen

Je kunt een aangepast Liquid-blok gebruiken om je eigen content toe te voegen aan de koptekst of voettekst van een geprinte bon, zoals bestelgegevens, klantgegevens, producteigenschappen, metavelden en barcodes.

Aangepaste Liquid-blokken worden weergegeven op geprinte bonnen voor voltooide online en Point of Sale-bestellingen. Ze worden niet weergegeven bij bestellingen met een offline checkout.

Je kunt een aangepast Liquid-blok toevoegen vanuit de visuele editor voor bonnen in je Shopify-beheercentrum. De waarden waarnaar je verwijst, worden uit de gegevens van de bon gehaald wanneer de bon wordt geprint. De volgende Liquid-code voegt bijvoorbeeld de bestelnotitie toe aan de bon wanneer er een notitie is:

{% if order.note %}
  <p>Order note: {{ order.note }}</p>
{% endif %}

Liquid-syntaxisregels

Neem de volgende syntaxisregels door voordat je een aangepast Liquid-blok bouwt:

  • Namen van variabelen gebruiken kleine letters en underscores (lage streepjes), een format dat bekendstaat als snake_case. Gebruik bijvoorbeeld order.total_price, order.customer.display_name en order.line_items.
  • Geldwaarden zijn gewone getallen. Maak ze op met het money-filter, zoals {{ order.total_price | money }}.
  • Ondervang optionele waarden met een if-statement, zodat je geen lege regel print, zoals {% if order.customer.email %}{{ order.customer.email }}{% endif %}.
  • Doorloop lijsten met een for-statement, zoals {% for item in order.line_items %} ... {% endfor %}.
  • Sommige Liquid-tags worden niet ondersteund. Je kunt assign, capture, include, render, raw, increment of decrement niet gebruiken. Als je blok een niet-ondersteunde tag gebruikt, wordt je bon niet opgeslagen en krijg je een foutmelding te zien.
  • Een aangepast Liquid-blok kan maximaal 50 kB aan code bevatten.

HTML en CSS

Je kunt basis-HTML gebruiken in een aangepast Liquid-blok om je content te structureren, zoals <p>, <br>, <strong>, <em>, koppen, lijsten en links. Je content gebruikt de bestaande lettertypen en groottes van de bon.

Je kunt geen CSS gebruiken om de weergave van een bon te wijzigen. <style>-blokken en style-attributen worden niet ondersteund, zodat een aangepast Liquid-blok content elders op de bon niet opnieuw kan opmaken of kan verbergen. <script>-tags, eventhandlers zoals onclick, en javascript:-links worden ook niet ondersteund.

Als je blok niet-ondersteunde HTML bevat, wordt je bon niet opgeslagen en krijg je een foutmelding te zien. Verwijder de niet-ondersteunde HTML en sla vervolgens opnieuw op.

Variabelen en objecten

Een aangepast Liquid-blok kan verwijzen naar de volgende objecten en variabelen. Bepaalde waarden staan niet op de standaardbon, dus een aangepast Liquid-blok is een manier om deze toe te voegen.

Variabelen op het hoogste niveau

De volgende variabelen op het hoogste niveau zijn beschikbaar in een aangepast Liquid-blok.

Beschrijving van de variabelen op het hoogste niveau die beschikbaar zijn voor een aangepast Liquid-blok
VariabeleBeschrijving
order
De bestelling die wordt geprint.
shop
De winkel.
location
De winkellocatie.
settings
De weergave-instellingen van de bon. Dit zijn de schakelaars die in de editor zijn geconfigureerd.
purchased_gift_cards
De cadeaubonnen die bij deze bestelling zijn gekocht.
staff_member_description
De toegewezen medewerker (wanneer de weergave van medewerkers is ingeschakeld).
locale
De landinstellingen van de bon, zoals en.
is_pickup
Of de bestelling een afhaalbestelling is.
pickup_location
De afhaallocatie (indien van toepassing).

Order-object

Beschrijving van het order-object
EigenschapBeschrijving
name
De naam van de bestelling, zoals #1001.
created_at
Het tijdstempel van de bestelling. Gebruik in combinatie met het date-filter.
note
De bestelnotitie.
subtotal_price
Het subtotaal. Maak op met het money-filter.
total_price
Het totaal. Maak op met het money-filter.
shipping_price
De in rekening gebrachte verzendkosten. Maak op met het money-filter.
total_tip_received
Het totale fooibedrag. Maak op met het money-filter.
balance_due
Het nog openstaande bedrag. Maak op met het money-filter.
change_due
Het teruggegeven wisselgeld. Maak op met het money-filter.
taxes_included
Of de prijzen inclusief belasting zijn.
receipt_number
Het bonnummer.
barcode_content
De in een barcode te coderen content.
qr_code_content
De in een QR-code te coderen content. Gebruik met het qrcode-filter.
line_items
De gekochte artikelen. De eigenschappen van elk artikel staan vermeld in het orderregel-object.
transactions
De betalingen. De eigenschappen van elke betaling staan vermeld in het transactie-object.
discounts
De kortingen op bestelniveau. De eigenschappen van elke korting staan vermeld in het korting-object.
tax_lines
De belastingregels. De eigenschappen van elke belastingregel staan vermeld in het belastingregel-object.
refunds
De terugbetalingen voor de bestelling.
shipping_address
Het bezorgadres. Adreseigenschappen staan vermeld in het adresobject.
customer
De gegevens van de klant, vermeld in het klantobject.
metafields
De metavelden van de bestelling.

Klantobject

Het order.customer -object bevat de gegevens van de klant.

Beschrijving van het klantobject
EigenschapBeschrijving
display_name
De weergavenaam van de klant.
first_name
De voornaam van de klant.
last_name
De achternaam van de klant.
email
Het e-mailadres van de klant.
phone
Het telefoonnummer van de klant.
default_address
Het standaardadres van de klant.
metafields
De metavelden van de klant.

Orderregelobject

Elk artikel in order.line_items bevat de volgende eigenschappen.

Beschrijving van het orderregelobject
EigenschapBeschrijving
name
De product- of regelnaam.
variant_title
De variant, zoals Groot / blauw.
sku
De SKU.
vendor
De verkoper.
quantity
Het aantal.
price
De eenheidsprijs. Maak op met het filter money.
total_price
Het regeltotaal. Maak op met het filter money.
discounted_total_price
Het regeltotaal na kortingen. Maak op met het filter money.
discounted_unit_price
De prijs per eenheid na kortingen. Maak op met het filter money.
discounts
De kortingen die op de regel zijn toegepast.
selling_plan_name
De abonnements- of verkoopplannaam, indien van toepassing.
staff_member_description
De medewerker die aan de regel is toegewezen.
custom_attributes
De orderregeleigenschappen, toegankelijk via sleutel.
product_metafields
De productmetavelden, toegankelijk via sleutel.
variant_metafields
De variantmetavelden, toegankelijk via sleutel.

Transactieobject

Elke betaling in order.transactions bevat de volgende eigenschappen. Winkeltegoed dat aan de bestelling wordt besteed, wordt vermeld als een betaling genaamd Winkeltegoed. Het resterende saldo van het winkeltegoed van de klant is niet beschikbaar als een variabele.

Beschrijving van het transactieobject
EigenschapBeschrijving
name
De betalingsnaam, zoals Visa, contant geld of winkeltegoed.
payment_type
De code van het betalingstype.
amount
Het bedrag. Maak op met het filter money.
kind
Het soort transactie.
status
De transactiestatus.
credit_card_number
Het gemaskeerde kaartnummer, indien van toepassing.
created_at
Het tijdstempel van de transactie.
additional_details
Extra regels voor betalingsgegevens.

Shop-object

Het shop -object bevat de gegevens van de winkel.

Beschrijving van het Shop-object
EigenschapBeschrijving
name
De winkelnaam.
domain
Het winkeldomein.
currency
De winkelvaluta.
id
De winkel-ID.

Locatieobject

Het location -object bevat de gegevens van de winkellocatie.

Beschrijving van het locatieobject
EigenschapBeschrijving
name
De locatienaam.
address1
De eerste adresregel.
address2
De tweede adresregel.
city
De plaats.
province
De provincie of staat.
province_code
De code van de provincie of staat.
zip
De postcode.
country
Het land.
phone
Het telefoonnummer.
metafields
De locatiemetavelden.

Adresobject

Een adres, zoals order.shipping_address of order.customer.default_address, bevat de volgende eigenschappen.

Beschrijving van het adresobject
EigenschapBeschrijving
company
De bedrijfsnaam.
name
De naam van de ontvanger.
address1
De eerste adresregel.
address2
De tweede adresregel.
city
De plaats.
province
De provincie of staat.
province_code
De code van de provincie of staat.
zip
De postcode.
country
Het land.
country_code
De landcode.
phone
Het telefoonnummer.

Kortingsobject

Elke korting in order.discounts of item.discounts bevat de volgende eigenschappen.

Beschrijving van het kortingsobject
EigenschapBeschrijving
description
De kortingsbeschrijving.
amount
Het kortingsbedrag. Maak op met het filter money.
percentage
Het kortingspercentage.

Belastingregelobject

Elke belastingregel in order.tax_lines bevat de volgende eigenschappen.

Beschrijving van het belastingregelobject
EigenschapBeschrijving
title
De belastingtitel.
rate
Het belastingtarief als decimaal.
rate_percentage
Het belastingtarief als percentage.
price
Het belastingbedrag. Maak op met het filter money.
taxable_amount
Het belastbare bedrag. Maak op met het filter money.

Cadeaubonobject

Elke cadeaubon in purchased_gift_cards bevat de volgende eigenschappen.

Beschrijving van het cadeaubonobject
EigenschapBeschrijving
code
De cadeauboncode.
masked_code
De gemaskeerde cadeauboncode.
balance
Het cadeaubonsaldo. Maak op met het money-filter.
created_at
De tijdstempel van de cadeaubon.
qr_code_content
De te coderen content in een QR-code.

Metavelden en eigenschappen

Metavelden en orderregeleigenschappen zijn er in twee vormen.

Metavelden en eigenschappen van orderregels zijn gekoppeld aan een sleutel. Roep een waarde rechtstreeks aan via de bijbehorende sleutel:

{{ item.product_metafields.care_instructions }}
{{ item.custom_attributes.engraving }}

Bestellings- en klantmetavelden zijn lijsten. Doorloop deze:

{% for m in order.metafields %}
  {{ m.namespace }}.{{ m.key }}: {{ m.value }}
{% endfor %}

Sleutels worden genormaliseerd naar snake_case. Een sleutel als Care Instructions of careInstructions roep je aan als care_instructions. Verwijs altijd naar gekoppelde waarden met kleine letters en liggende streepjes (underscores).

De beschikbaarheid van bestellings- en klantmetavelden is afhankelijk van de aanwezigheid van deze metavelden in de record.

Liquid-filters

Je kunt filters gebruiken om de informatie in je aangepaste Liquid-blok op te maken. Als je een filter wilt toepassen, voeg je een sluisteken (|) toe en plaats je vervolgens het filter in de Liquid-uitvoer, zoals {{ order.total_price | money }}.

Standaard Liquid-filters werken ook. Ga voor meer informatie over Liquid-filters naar de Filters-referentie.

Beschrijving van de beschikbare filters voor een aangepast Liquid-blok
FilterVoorbeeldBeschrijving
money
{{ order.total_price | money }}
Maakt een bedrag op in de valuta van de bon.
date
{{ order.created_at | date: '%B %e, %Y' }}
Maakt een datum of tijd op.
percent
{{ tax_line.rate | percent }}
Maakt een decimaal getal op als een percentage, zoals 0,2 als 20%.
t
{{ 'receipt.total' | t }}
Retourneert een vertaald label.
barcode
{{ order.barcode_content | barcode }}
Geeft een barcode weer.
qrcode
{{ order.qr_code_content | qrcode }}
Geeft een QR-code weer.

Voorbeelden van aangepaste Liquid-blokken

In de volgende voorbeelden wordt content toegevoegd die niet op een standaardtemplate voor een afgedrukte bon staat.

Gebruik de volgende Liquid-code om de bestellingsnotitie toe te voegen (indien aanwezig):

{% if order.note %}<p>Note: {{ order.note }}</p>{% endif %}

Gebruik de volgende Liquid-code om de SKU toe te voegen naast elk artikel:

{% for item in order.line_items %}
  <p>{{ item.name }} — {{ item.sku }} ×{{ item.quantity }}</p>
{% endfor %}

Gebruik de volgende Liquid-code om een orderregeleigenschap, zoals een inscriptie, toe te voegen:

{% for item in order.line_items %}
  {% if item.custom_attributes.engraving %}
    <p>{{ item.name }} — Engraving: {{ item.custom_attributes.engraving }}</p>
  {% endif %}
{% endfor %}

Gebruik de volgende Liquid-code om een productmetaveld, zoals wasvoorschriften, toe te voegen:

{% for item in order.line_items %}
  {% if item.product_metafields.care_instructions %}
    <p>{{ item.name }}: {{ item.product_metafields.care_instructions }}</p>
  {% endif %}
{% endfor %}

Gebruik de volgende Liquid-code om een klantmetaveld toe te voegen:

{% for m in order.customer.metafields %}
  {% if m.key == 'loyalty_tier' %}<p>Loyalty tier: {{ m.value }}</p>{% endif %}
{% endfor %}

Gebruik de volgende Liquid-code om een QR-code toe te voegen die naar de bestelling linkt:

{{ order.qr_code_content | qrcode }}