Blocchi Liquid personalizzati per le ricevute stampate
Puoi usare un blocco Liquid personalizzato per aggiungere contenuti all'header o al footer di una ricevuta stampata, ad esempio dettagli dell'ordine, informazioni sui clienti, proprietà del prodotto, metafield e codici a barre.
I blocchi Liquid personalizzati vengono visualizzati sulle ricevute stampate per gli ordini online e POS completati. Non vengono visualizzati per gli ordini che utilizzano il check-out offline.
Puoi aggiungere un blocco Liquid personalizzato dall'editor visivo della ricevuta nel pannello di controllo Shopify. I valori a cui fai riferimento vengono estratti dai dati della ricevuta al momento della stampa. Ad esempio, il seguente codice Liquid aggiunge la nota dell'ordine alla ricevuta se è presente:
{% if order.note %}
<p>Order note: {{ order.note }}</p>
{% endif %}In questa pagina
Regole di sintassi Liquid
Controlla le seguenti regole di sintassi prima di creare un blocco Liquid personalizzato:
- I nomi delle variabili utilizzano lettere minuscole e trattini bassi, un formato noto come snake_case. Ad esempio, utilizza
order.total_price,order.customer.display_nameeorder.line_items. - I valori in denaro sono numeri semplici. Formattali con il filtro
money, ad esempio{{ order.total_price | money }}. - Proteggi i valori facoltativi con un'istruzione
ifin modo da non stampare una riga vuota, ad esempio{% if order.customer.email %}{{ order.customer.email }}{% endif %}. - Esegui un'iterazione sugli elenchi con un'istruzione
for, ad esempio{% for item in order.line_items %} ... {% endfor %}. - Alcuni tag Liquid non sono supportati. Non puoi utilizzare
assign,capture,include,render,raw,incrementodecrement. Se il tuo blocco utilizza un tag non supportato, la ricevuta non verrà salvata e verrà visualizzato un errore. - Un blocco Liquid personalizzato può contenere fino a 50 KB di codice.
HTML e CSS
Puoi utilizzare codice HTML di base in un blocco Liquid personalizzato per strutturare i contenuti, come <p>, <br>, <strong>, <em>, intestazioni, elenchi e link. I tuoi contenuti utilizzano i font e le dimensioni già presenti nella ricevuta.
Non puoi utilizzare CSS per modificare l'aspetto di una ricevuta. I blocchi <style> e gli attributi style non sono supportati, in modo che un blocco Liquid personalizzato non possa modificare lo stile o nascondere i contenuti altrove nella ricevuta. Anche i tag <script>, i gestori di eventi come onclick e i link javascript: non sono supportati.
Se il blocco contiene codice HTML non supportato, la ricevuta non verrà salvata e verrà visualizzato un errore. Rimuovi il codice HTML non supportato, quindi salva di nuovo.
Variabili e oggetti
Un blocco Liquid personalizzato può fare riferimento ai seguenti oggetti e variabili. Alcuni valori non sono presenti nella ricevuta predefinita, pertanto un blocco Liquid personalizzato rappresenta un modo per aggiungerli.
Variabili di primo livello
In un blocco Liquid personalizzato sono disponibili le seguenti variabili di primo livello.
| Variabile | Descrizione |
|---|---|
order | L'ordine in fase di stampa. |
shop | Il negozio. |
location | Il negozio fisico. |
settings | Le impostazioni di visualizzazione della ricevuta, ovvero i selettori configurati nell'editor. |
purchased_gift_cards | I buoni regalo acquistati in questo ordine. |
staff_member_description | Il membro dello staff attribuito, quando la visualizzazione dello staff è attivata. |
locale | Le impostazioni locali della ricevuta, come "en". |
is_pickup | Indica se l'ordine è un ordine con ritiro. |
pickup_location | La sede di ritiro, ove applicabile. |
Oggetto ordine
| Proprietà | Descrizione |
|---|---|
name | Il nome ordine, ad esempio #1001. |
created_at |
Il timestamp dell'ordine. Utilizzalo con il filtro date.
|
note | La nota dell'ordine. |
subtotal_price |
Il subtotale. Formattalo con il filtro money.
|
total_price |
Il totale. Formattalo con il filtro money.
|
shipping_price |
La spedizione addebitata. Formattala con il filtro money.
|
total_tip_received |
Il totale della mancia. Formattalo con il filtro money.
|
balance_due |
L'importo ancora dovuto. Formattalo con il filtro money.
|
change_due |
Il resto restituito. Formattalo con il filtro money.
|
taxes_included | Indica se le imposte sono incluse nei prezzi. |
receipt_number | Il numero di ricevuta. |
barcode_content | Il contenuto da codificare in un codice a barre. |
qr_code_content |
Il contenuto da codificare in un codice QR. Utilizzalo con il filtro qrcode.
|
line_items | Gli articoli acquistati. Le proprietà di ciascun articolo sono elencate nell'oggetto voce dell'ordine. |
transactions | I pagamenti. Le proprietà di ciascun pagamento sono elencate nell'oggetto transazione. |
discounts | Gli sconti a livello di ordine. Le proprietà di ciascuno sconto sono elencate nell'oggetto sconto. |
tax_lines | Le righe d'imposta. Le proprietà di ciascuna riga d'imposta sono elencate nell'oggetto riga d'imposta. |
refunds | I rimborsi dell'ordine. |
shipping_address | L'indirizzo di spedizione. Le proprietà dell'indirizzo sono elencate nell'oggetto indirizzo. |
customer | I dettagli del cliente, elencati nell'oggetto cliente. |
metafields | I metafield dell'ordine. |
Oggetto cliente
L'oggetto order.customer contiene i dettagli del cliente.
| Proprietà | Descrizione |
|---|---|
display_name | Il nome visualizzato del cliente. |
first_name | Il nome del cliente. |
last_name | Il cognome del cliente. |
| L'indirizzo email del cliente. | |
phone | Il numero di telefono del cliente. |
default_address | L'indirizzo predefinito del cliente. |
metafields | I metafield del cliente. |
Oggetto voce dell'ordine
Ogni articolo in order.line_items contiene le seguenti proprietà.
| Proprietà | Descrizione |
|---|---|
name | Il nome del prodotto o della voce. |
variant_title | La variante, ad esempio Large/Blu. |
sku | Lo SKU. |
vendor | Il venditore. |
quantity | La quantità. |
price |
Il prezzo unitario. Formattalo con il filtro money.
|
total_price |
Il totale della voce. Formattalo con il filtro money.
|
discounted_total_price |
Il totale della voce dopo gli sconti. Formattalo con il filtro money.
|
discounted_unit_price |
Il prezzo unitario dopo gli sconti. Formattalo con il filtro money.
|
discounts | Gli sconti applicati alla voce. |
selling_plan_name | Il nome dell'abbonamento o del piano di vendita, se presente. |
staff_member_description | Il membro dello staff attribuito alla voce. |
custom_attributes | Le proprietà della voce, accessibili tramite chiave. |
product_metafields | I metafield del prodotto, accessibili tramite chiave. |
variant_metafields | I metafield della variante, accessibili tramite chiave. |
Oggetto transazione
Ogni pagamento in order.transactions contiene le seguenti proprietà. Il credito in negozio speso per l'ordine è indicato come un pagamento denominato Credito in negozio. Il saldo del credito in negozio rimanente del cliente non è disponibile come variabile.
| Proprietà | Descrizione |
|---|---|
name | Il nome del pagamento, ad esempio Visa, contante o credito in negozio. |
payment_type | Il codice del tipo di pagamento. |
amount |
L'importo. Formattalo con il filtro money.
|
kind | Il tipo di transazione. |
status | Lo stato della transazione. |
credit_card_number | Il numero di carta mascherato, se applicabile. |
created_at | Il timestamp della transazione. |
additional_details | Ulteriori righe con i dettagli di pagamento. |
Oggetto negozio
L'oggetto shop contiene i dettagli del negozio.
| Proprietà | Descrizione |
|---|---|
name | Il nome del negozio. |
domain | Il dominio del negozio. |
currency | La valuta del negozio. |
id | L'ID del negozio. |
Oggetto sede
L'oggetto location contiene i dettagli della sede di vendita al dettaglio.
| Proprietà | Descrizione |
|---|---|
name | Il nome della sede. |
address1 | La prima riga dell'indirizzo. |
address2 | La seconda riga dell'indirizzo. |
city | La città. |
province | La provincia o lo stato. |
province_code | Il codice della provincia o dello stato. |
zip | Il CAP o codice postale. |
country | Il paese. |
phone | Il numero di telefono. |
metafields | I metafield della sede. |
Oggetto indirizzo
Un indirizzo, ad esempio order.shipping_address o order.customer.default_address, contiene le seguenti proprietà.
| Proprietà | Descrizione |
|---|---|
company | Il nome dell'azienda. |
name | Il nome del destinatario. |
address1 | La prima riga dell'indirizzo. |
address2 | La seconda riga dell'indirizzo. |
city | La città. |
province | La provincia o lo stato. |
province_code | Il codice della provincia o dello stato. |
zip | Il CAP o codice postale. |
country | Il paese. |
country_code | Il codice del paese. |
phone | Il numero di telefono. |
Oggetto sconto
Ogni sconto in order.discounts o item.discounts contiene le seguenti proprietà.
| Proprietà | Descrizione |
|---|---|
description | La descrizione dello sconto. |
amount | L'importo dello sconto. Formattalo con il filtro money. |
percentage | La percentuale di sconto. |
Oggetto riga dell'imposta
Ogni riga dell'imposta in order.tax_lines contiene le seguenti proprietà.
| Proprietà | Descrizione |
|---|---|
title | Il nome dell'imposta. |
rate | L'aliquota fiscale in formato decimale. |
rate_percentage | L'aliquota fiscale in percentuale. |
price | L'importo dell'imposta. Formattalo con il filtro money. |
taxable_amount | L'importo soggetto a imposta. Formattalo con il filtro money. |
Oggetto buono regalo
Ogni buono regalo in purchased_gift_cards contiene le seguenti proprietà.
| Proprietà | Descrizione |
|---|---|
code | Il codice del buono regalo. |
masked_code | Il codice mascherato del buono regalo. |
balance | Il saldo del buono regalo. Formatta con il filtro money. |
created_at | Il timestamp del buono regalo. |
qr_code_content | Il contenuto da codificare in un codice QR. |
Metafield e proprietà
I metafield e le proprietà delle voci si presentano in due forme.
I metafield e le proprietà delle voci hanno una chiave. Accedi direttamente a un valore tramite la sua chiave:
{{ item.product_metafields.care_instructions }}
{{ item.custom_attributes.engraving }}I metafield degli ordini e dei clienti sono elenchi. Itera su di essi:
{% for m in order.metafields %}
{{ m.namespace }}.{{ m.key }}: {{ m.value }}
{% endfor %}Le chiavi vengono normalizzate in snake_case. È possibile accedere a una chiave come Care Instructions o careInstructions sotto forma di care_instructions. Fai sempre riferimento ai valori con chiave usando lettere minuscole e trattini bassi.
La disponibilità dei metafield degli ordini e dei clienti dipende dall'esistenza di tali metafield nel record.
Filtri Liquid
Puoi utilizzare i filtri per formattare le informazioni nel tuo blocco Liquid personalizzato. Per applicare un filtro, aggiungi un carattere pipe (|) e poi il filtro all'interno dell'output Liquid, ad esempio {{ order.total_price | money }}.
Funzionano anche i filtri Liquid standard. Per saperne di più sui filtri Liquid, consulta la guida di riferimento dei filtri.
| Filtro | Esempio | Descrizione |
|---|---|---|
money | {{ order.total_price | money }} | Formatta un importo nella valuta della ricevuta. |
date | {{ order.created_at | date: '%B %e, %Y' }} | Formatta una data o un'ora. |
percent | {{ tax_line.rate | percent }} | Formatta un decimale come percentuale, ad esempio 0,2 come 20%. |
t | {{ 'receipt.total' | t }} | Restituisce un'etichetta tradotta. |
barcode | {{ order.barcode_content | barcode }} | Genera un codice a barre. |
qrcode | {{ order.qr_code_content | qrcode }} | Genera un codice QR. |
Esempi di blocchi Liquid personalizzati
I seguenti esempi aggiungono contenuti che non sono presenti in un modello di ricevuta stampata predefinito.
Per aggiungere la nota sull'ordine (se presente), usa il seguente codice Liquid:
{% if order.note %}<p>Note: {{ order.note }}</p>{% endif %}Per aggiungere lo SKU accanto a ogni articolo, usa il seguente codice Liquid:
{% for item in order.line_items %}
<p>{{ item.name }} — {{ item.sku }} ×{{ item.quantity }}</p>
{% endfor %}Per aggiungere una proprietà della voce, come un'incisione, usa il seguente codice Liquid:
{% for item in order.line_items %}
{% if item.custom_attributes.engraving %}
<p>{{ item.name }} — Engraving: {{ item.custom_attributes.engraving }}</p>
{% endif %}
{% endfor %}Per aggiungere un metafield del prodotto, come le istruzioni per la cura, usa il seguente codice Liquid:
{% for item in order.line_items %}
{% if item.product_metafields.care_instructions %}
<p>{{ item.name }}: {{ item.product_metafields.care_instructions }}</p>
{% endif %}
{% endfor %}Per aggiungere un metafield del cliente, usa il seguente codice Liquid:
{% for m in order.customer.metafields %}
{% if m.key == 'loyalty_tier' %}<p>Loyalty tier: {{ m.value }}</p>{% endif %}
{% endfor %}Per aggiungere un codice QR che rimanda all'ordine, usa il seguente codice Liquid:
{{ order.qr_code_content | qrcode }}