Blocuri Liquid personalizate pentru chitanțele tipărite

Puteți utiliza un bloc Liquid personalizat pentru a adăuga propriul conținut în antetul sau subsolul unei chitanțe tipărite, cum ar fi informații detaliate despre comandă, informații despre clienți, proprietăți ale produselor, metacâmpuri și coduri de bare.

Blocurile Liquid personalizate se randează pe chitanțele tipărite pentru comenzile online și din Punctul de vânzare finalizate. Acestea nu se randează pentru comenzile care utilizează plata offline.

Puteți adăuga un bloc Liquid personalizat din editorul vizual de chitanțe din panoul de administrare Shopify. Valorile la care faceți referire sunt preluate din datele chitanței atunci când aceasta este tipărită. De exemplu, următorul cod Liquid adaugă mențiunea la comandă pe chitanță, atunci când există o mențiune:

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

Reguli de sintaxă Liquid

Examinați următoarele reguli de sintaxă înainte de a construi un bloc Liquid personalizat:

  • Numele variabilelor folosesc litere mici și liniuțe de subliniere, un format cunoscut sub numele de snake_case. De exemplu, folosiți order.total_price, order.customer.display_name și order.line_items.
  • Valorile monetare sunt numere simple. Formatați-le cu filtrul money, de exemplu {{ order.total_price | money }}.
  • Protejați valorile opționale cu o instrucțiune if astfel încât să nu tipăriți o linie goală, de exemplu {% if order.customer.email %}{{ order.customer.email }}{% endif %}.
  • Iterați prin liste cu o instrucțiune for, de exemplu {% for item in order.line_items %} ... {% endfor %}.
  • Anumite etichete Liquid nu sunt acceptate. Nu puteți utiliza assign, capture, include, render, raw, increment sau decrement. Dacă blocul dvs. folosește o etichetă neacceptată, chitanța nu se va salva și veți vedea o eroare.
  • Un bloc Liquid personalizat poate conține până la 50 KB de cod.

HTML și CSS

Puteți utiliza HTML de bază într-un bloc Liquid personalizat pentru a vă structura conținutul, de exemplu <p>, <br>, <strong>, <em>, titluri, liste și linkuri. Conținutul dvs. folosește fonturile și dimensiunile existente ale chitanței.

Nu puteți utiliza CSS pentru a schimba aspectul unei chitanțe. Blocurile <style> și atributele style nu sunt acceptate, prin urmare un bloc Liquid personalizat nu poate restiliza sau ascunde conținut în altă parte pe chitanță. Etichetele <script>, rutinele de tratare a evenimentelor, cum ar fi onclick, și linkurile javascript: de asemenea nu sunt acceptate.

Dacă blocul conține elemente HTML neacceptate, chitanța nu se va salva și veți vedea o eroare. Eliminați codul HTML neacceptat și salvați din nou.

Variabile și obiecte

Un bloc Liquid personalizat poate face referire la următoarele obiecte și variabile. Unele valori nu se află pe chitanța implicită, astfel încât un bloc Liquid personalizat este o modalitate de a le adăuga.

Variabile de nivel superior

Următoarele variabile de nivel superior sunt disponibile într-un bloc Liquid personalizat.

Descrierea variabilelor de nivel superior disponibile pentru un bloc Liquid personalizat
VariabilăDescriere
order
Comanda care este tipărită.
shop
Magazinul.
location
Locația de retail.
settings
Setările de afișare ale chitanței, care sunt comutatoarele configurate în editor.
purchased_gift_cards
Cardurile cadou cumpărate pe această comandă.
staff_member_description
Membrul personalului atribuit, când este activată afișarea personalului.
locale
Parametrii locali ai chitanței, de exemplu en.
is_pickup
Dacă comanda este o comandă cu ridicare.
pickup_location
Locația de ridicare, dacă este cazul.

Obiectul comandă

Descrierea obiectului comandă
ProprietateDescriere
name
Numele comenzii, de exemplu #1001.
created_at
Marca de timp a comenzii. A se utiliza cu filtrul date.
note
Mențiunea la comandă.
subtotal_price
Subtotalul. A se formata cu filtrul money.
total_price
Totalul. A se formata cu filtrul money.
shipping_price
Taxa de expediere. A se formata cu filtrul money.
total_tip_received
Totalul bacșișului. A se formata cu filtrul money.
balance_due
Suma încă datorată. A se formata cu filtrul money.
change_due
Restul oferit. A se formata cu filtrul money.
taxes_included
Dacă taxa este inclusă în prețuri.
receipt_number
Numărul chitanței.
barcode_content
Conținutul care urmează să fie codificat într-un cod de bare.
qr_code_content
Conținutul care urmează să fie codificat într-un cod QR. A se utiliza cu filtrul qrcode.
line_items
Articolele achiziționate. Proprietățile fiecărui articol sunt listate în obiectul rând de comandă.
transactions
Plățile. Proprietățile fiecărei plăți sunt listate în obiectul tranzacție.
discounts
Reducerile la nivel de comandă. Proprietățile fiecărei reduceri sunt listate în obiectul reducere.
tax_lines
Rândurile de taxe. Proprietățile fiecărui rând de taxe sunt listate în obiectul rând de taxe.
refunds
Restituirile aferente comenzii.
shipping_address
Adresa de livrare. Proprietățile adresei sunt enumerate în obiectul adresă.
customer
Informațiile clientului, enumerate în obiectul client.
metafields
Metacâmpurile comenzii.

Obiectul client

Obiectul order.customer conține detaliile clientului.

Descrierea obiectului client
ProprietateDescriere
display_name
Numele afișat al clientului.
first_name
Prenumele clientului.
last_name
Numele de familie al clientului.
email
Adresa de e-mail a clientului.
phone
Numărul de telefon al clientului.
default_address
Adresa implicită a clientului.
metafields
Metacâmpurile clientului.

Obiectul rând din comandă

Fiecare articol din order.line_items conține următoarele proprietăți.

Descrierea obiectului rând din comandă
ProprietateDescriere
name
Numele produsului sau al rândului.
variant_title
Varianta, cum ar fi Large / Blue.
sku
Numărul de inventar (SKU).
vendor
Vânzătorul.
quantity
Cantitatea.
price
Prețul la bucată. Se formatează cu filtrul money.
total_price
Totalul rândului. Se formatează cu filtrul money.
discounted_total_price
Totalul rândului după aplicarea reducerilor. Se formatează cu filtrul money.
discounted_unit_price
Prețul la bucată după aplicarea reducerilor. Se formatează cu filtrul money.
discounts
Reducerile aplicate rândului.
selling_plan_name
Numele abonamentului sau al planului de vânzări, dacă există.
staff_member_description
Membrul personalului atribuit rândului.
custom_attributes
Proprietățile rândului, accesate prin cheie.
product_metafields
Metacâmpurile produsului, accesate prin cheie.
variant_metafields
Metacâmpurile variantei, accesate prin cheie.

Obiectul tranzacție

Fiecare plată din order.transactions conține următoarele proprietăți. Creditul de magazin cheltuit pentru comandă apare ca o plată numită Credit magazin. Soldul rămas al creditului magazin pentru client nu este disponibil ca variabilă.

Descrierea obiectului tranzacție
ProprietateDescriere
name
Numele plății, cum ar fi Visa, numerar sau credit magazin.
payment_type
Codul tipului de plată.
amount
Suma. Se formatează cu filtrul money.
kind
Tipul tranzacției.
status
Starea tranzacției.
credit_card_number
Numărul ascuns al cardului, dacă este cazul.
created_at
Marca de timp a tranzacției.
additional_details
Rânduri suplimentare cu informații detaliate privind plata.

Obiectul magazin

Obiectul shop conține detaliile magazinului.

Descrierea obiectului magazin
ProprietateDescriere
name
Numele magazinului.
domain
Domeniul magazinului.
currency
Moneda magazinului.
id
ID-ul magazinului.

Obiectul locație

Obiectul location conține detaliile locației de vânzare cu amănuntul.

Descrierea obiectului locație
ProprietateDescriere
name
Numele locației.
address1
Primul rând al adresei.
address2
Al doilea rând al adresei.
city
Orașul.
province
Provincia sau statul.
province_code
Codul provinciei sau al statului.
zip
Codul ZIP sau codul poștal.
country
Țara.
phone
Numărul de telefon.
metafields
Metacâmpurile locației.

Obiectul adresă

O adresă, cum ar fi order.shipping_address sau order.customer.default_address, conține următoarele proprietăți.

Descrierea obiectului adresă
ProprietateDescriere
company
Numele societății.
name
Numele destinatarului.
address1
Primul rând al adresei.
address2
Al doilea rând al adresei.
city
Orașul.
province
Provincia sau statul.
province_code
Codul provinciei sau al statului.
zip
Codul ZIP sau codul poștal.
country
Țara.
country_code
Codul de țară.
phone
Numărul de telefon.

Obiectul reducere

Fiecare reducere din order.discounts sau item.discounts conține următoarele proprietăți.

Descrierea obiectului reducere
ProprietateDescriere
description
Descrierea reducerii.
amount
Suma reducerii. Se formatează cu filtrul money.
percentage
Procentul reducerii.

Obiectul rând de taxă

Fiecare rând de taxă din order.tax_lines conține următoarele proprietăți.

Descrierea obiectului rând de taxă
ProprietateDescriere
title
Titlul taxei.
rate
Cota de impozitare sub formă zecimală.
rate_percentage
Cota de impozitare sub formă procentuală.
price
Suma taxei. Se formatează cu filtrul money.
taxable_amount
Suma supusă taxelor. Se formatează cu filtrul money.

Obiectul card cadou

Fiecare card cadou din purchased_gift_cards conține următoarele proprietăți.

Descrierea obiectului card cadou
ProprietateDescriere
code
Codul cardului cadou.
masked_code
Codul mascat al cardului cadou.
balance
Soldul cardului cadou. Formatați cu filtrul money.
created_at
Marca de timp a cardului cadou.
qr_code_content
Conținutul de codificat într-un cod QR.

Metacâmpuri și proprietăți

Metacâmpurile și proprietățile de rând au două forme.

Metacâmpurile și proprietățile de rând sunt identificate prin chei. Accesați o valoare direct prin cheia sa:

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

Metacâmpurile pentru comandă și client sunt liste. Puteți itera prin acestea:

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

Cheile sunt normalizate la formatul snake_case. O cheie precum Care Instructions sau careInstructions este accesată ca care_instructions. Faceți întotdeauna referire la valorile cu cheie folosind litere mici și caractere de subliniere.

Disponibilitatea metacâmpurilor pentru comenzi și clienți depinde de existența respectivelor metacâmpuri în înregistrare.

Filtre Liquid

Puteți folosi filtre pentru a formata informațiile din blocul Liquid personalizat. Pentru a aplica un filtru, adăugați o bară verticală, |, iar apoi filtrul în interiorul ieșirii Liquid, cum ar fi {{ order.total_price | money }}.

Filtrele Liquid standard funcționează de asemenea. Pentru a afla mai multe despre filtrele Liquid, consultați Referința filtrelor.

Descrierea filtrelor disponibile pentru un bloc Liquid personalizat
FiltruExempluDescriere
money
{{ order.total_price | money }}
Formatează o sumă în moneda din dovada plății.
date
{{ order.created_at | date: '%B %e, %Y' }}
Formatează o dată sau o oră.
percent
{{ tax_line.rate | percent }}
Formatează o zecimală ca procent, de exemplu 0,2 ca 20%.
t
{{ 'receipt.total' | t }}
Returnează o etichetă tradusă.
barcode
{{ order.barcode_content | barcode }}
Generează un cod de bare.
qrcode
{{ order.qr_code_content | qrcode }}
Generează un cod QR.

Exemple de blocuri Liquid personalizate

Exemplele următoare adaugă un conținut care nu se găsește pe șablonul implicit pentru dovadă a plății tipărită.

Pentru a adăuga nota la comandă atunci când există, folosiți următorul cod Liquid:

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

Pentru a adăuga SKU-ul lângă fiecare articol, folosiți următorul cod Liquid:

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

Pentru a adăuga o proprietate a rândului, cum ar fi o gravură, folosiți următorul cod Liquid:

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

Pentru a adăuga un metacâmp al produsului, cum ar fi instrucțiunile de întreținere, folosiți următorul cod Liquid:

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

Pentru a adăuga un metacâmp al clientului, folosiți următorul cod Liquid:

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

Pentru a adăuga un cod QR care trimite spre comandă, folosiți următorul cod Liquid:

{{ order.qr_code_content | qrcode }}