Blocs Liquid personnalisés pour les reçus imprimés
Vous pouvez utiliser un bloc Liquid personnalisé pour ajouter votre propre contenu à l’en-tête ou au pied de page d’un reçu imprimé, tel que les détails de la commande, les informations sur le client, les propriétés du produit, les champs méta et les codes-barres.
Les blocs Liquid personnalisés s’affichent sur les reçus imprimés pour les commandes finalisées en ligne et sur POS. Ils ne s’affichent pas pour les commandes qui utilisent le paiement hors ligne.
Vous pouvez ajouter un bloc Liquid personnalisé à partir de l’éditeur visuel de reçus dans votre interface administrateur Shopify. Les valeurs que vous référencez sont extraites des données du reçu lors de son impression. Par exemple, le code Liquid suivant ajoute la note de commande au reçu si elle existe :
{% if order.note %}
<p>Order note: {{ order.note }}</p>
{% endif %}Sur cette page
Règles de syntaxe Liquid
Examinez les règles de syntaxe suivantes avant de créer un bloc Liquid personnalisé :
- Les noms de variables utilisent des lettres minuscules et des traits de soulignement, un format connu sous le nom de snake_case. Par exemple, utilisez
order.total_price,order.customer.display_nameetorder.line_items. - Les valeurs monétaires sont de simples nombres. Formatez-les avec le filtre
money, tel que{{ order.total_price | money }}. - Protégez les valeurs facultatives avec une instruction
ifafin de ne pas imprimer de ligne vide, comme{% if order.customer.email %}{{ order.customer.email }}{% endif %}. - Parcourez les listes avec une instruction
for, comme{% for item in order.line_items %} ... {% endfor %}. - Certaines balises Liquid ne sont pas prises en charge. Vous ne pouvez pas utiliser
assign,capture,include,render,raw,incrementoudecrement. Si votre bloc utilise une balise non prise en charge, votre reçu ne s’enregistrera pas et vous verrez une erreur. - Un bloc Liquid personnalisé peut contenir jusqu’à 50 Ko de code.
HTML et CSS
Vous pouvez utiliser du code HTML de base dans un bloc Liquid personnalisé pour structurer votre contenu, par exemple <p>, <br>, <strong>, <em>, des titres, des listes et des liens. Votre contenu utilise les polices et tailles existantes du reçu.
Vous ne pouvez pas utiliser de code CSS pour modifier l’apparence d’un reçu. Les blocs <style> et les attributs style ne sont pas pris en charge, de sorte qu’un bloc Liquid personnalisé ne peut pas modifier le style ni masquer du contenu ailleurs sur le reçu. Les balises <script>, les gestionnaires d’événements tels que onclick et les liens javascript: ne sont pas non plus pris en charge.
Si votre bloc contient du code HTML non pris en charge, votre reçu ne s’enregistrera pas et vous verrez une erreur. Supprimez le code HTML non pris en charge, puis enregistrez à nouveau.
Variables et objets
Un bloc Liquid personnalisé peut référencer les objets et variables suivants. Certaines valeurs ne figurent pas sur le reçu par défaut, un bloc Liquid personnalisé constitue donc un moyen de les ajouter.
Variables de niveau supérieur
Les variables de niveau supérieur suivantes sont disponibles dans un bloc Liquid personnalisé.
| Variable | Description |
|---|---|
order | La commande en cours d’impression. |
shop | La boutique. |
location | Le point de vente physique. |
settings | Les paramètres d’affichage du reçu, qui sont les options d’activation configurées dans l’éditeur. |
purchased_gift_cards | Les cartes-cadeaux achetées dans cette commande. |
staff_member_description | L’employé attribué, lorsque l’affichage des employés est activé. |
locale | Les paramètres régionaux du reçu, tels que en. |
is_pickup | Indique si la commande est une commande avec option de collecte. |
pickup_location | Le point de collecte, le cas échéant. |
Objet de commande
| Propriété | Description |
|---|---|
name | Le nom de la commande, tel que #1001. |
created_at |
L’horodatage de la commande. À utiliser avec le filtre date.
|
note | La note de commande. |
subtotal_price |
Le sous-total. À formater avec le filtre money.
|
total_price |
Le total. À formater avec le filtre money.
|
shipping_price |
Les frais d’expédition facturés. À formater avec le filtre money.
|
total_tip_received |
Le total du pourboire. À formater avec le filtre money.
|
balance_due |
Le montant restant à payer. À formater avec le filtre money.
|
change_due |
La monnaie rendue. À formater avec le filtre money.
|
taxes_included | Indique si la taxe est incluse dans les prix. |
receipt_number | Le numéro du reçu. |
barcode_content | Le contenu à encoder dans un code-barres. |
qr_code_content |
Le contenu à encoder dans un code QR. À utiliser avec le filtre qrcode.
|
line_items | Les articles achetés. Les propriétés de chaque article sont répertoriées dans l’objet d’article de la commande. |
transactions | Les paiements. Les propriétés de chaque paiement sont répertoriées dans l’objet de transaction. |
discounts | Les réductions appliquées à la commande. Les propriétés de chaque réduction sont répertoriées dans l’objet de réduction. |
tax_lines | Les lignes de taxes. Les propriétés de chaque ligne de taxes sont répertoriées dans l’objet de ligne de taxes. |
refunds | Les remboursements sur la commande. |
shipping_address | L’adresse de livraison. Les propriétés de l’adresse sont répertoriées dans l’objet adresse. |
customer | Les détails du client, répertoriés dans l’objet client. |
metafields | Les champs méta de la commande. |
Objet client
L’objet order.customer contient les détails du client.
| Propriété | Description |
|---|---|
display_name | Le nom d’affichage du client. |
first_name | Le prénom du client. |
last_name | Le nom de famille du client. |
| L’adresse e-mail du client. | |
phone | Le numéro de téléphone du client. |
default_address | L’adresse par défaut du client. |
metafields | Les champs méta du client. |
Objet d’article de la commande
Chaque article de order.line_items contient les propriétés suivantes.
| Propriété | Description |
|---|---|
name | Le nom du produit ou de la ligne. |
variant_title | La variante, par exemple Grand / Bleu. |
sku | Le SKU. |
vendor | Le fournisseur. |
quantity | La quantité. |
price |
Le prix unitaire. À formater avec le filtre money.
|
total_price |
Le total de la ligne. À formater avec le filtre money.
|
discounted_total_price |
Le total de la ligne après réductions. À formater avec le filtre money.
|
discounted_unit_price |
Le prix unitaire après réductions. À formater avec le filtre money.
|
discounts | Les réductions appliquées à la ligne. |
selling_plan_name | Le nom de l’abonnement ou du forfait de vente, le cas échéant. |
staff_member_description | L’employé attribué à la ligne. |
custom_attributes | Les propriétés de l’article de la commande, accessibles par clé. |
product_metafields | Les champs méta du produit, accessibles par clé. |
variant_metafields | Les champs méta de la variante, accessibles par clé. |
Objet transaction
Chaque paiement dans order.transactions contient les propriétés suivantes. Le crédit en magasin dépensé pour la commande est répertorié comme un paiement nommé Store credit (Crédit en magasin). Le solde de crédit en magasin restant du client n’est pas disponible sous forme de variable.
| Propriété | Description |
|---|---|
name | Le nom du paiement, tel que Visa, espèces ou crédit en magasin. |
payment_type | Le code de type de paiement. |
amount |
Le montant. À formater avec le filtre money.
|
kind | Le type de transaction. |
status | Le statut de la transaction. |
credit_card_number | Le numéro de carte masqué, le cas échéant. |
created_at | L’horodatage de la transaction. |
additional_details | Lignes de détails de paiement supplémentaires. |
Objet boutique
L’objet shop contient les détails de la boutique.
| Propriété | Description |
|---|---|
name | Le nom de la boutique. |
domain | Le domaine de la boutique. |
currency | La devise de la boutique. |
id | L’ID de la boutique. |
Objet emplacement
L’objet location contient les détails de l’emplacement de vente au détail.
| Propriété | Description |
|---|---|
name | Le nom de l’emplacement. |
address1 | La première ligne d’adresse. |
address2 | La deuxième ligne d’adresse. |
city | La ville. |
province | La province ou l'État. |
province_code | Le code de la province ou de l'État. |
zip | Le code postal. |
country | Le pays. |
phone | Le numéro de téléphone. |
metafields | Les champs méta de l’emplacement. |
Objet adresse
Une adresse, telle que order.shipping_address ou order.customer.default_address, contient les propriétés suivantes.
| Propriété | Description |
|---|---|
company | Le nom de l’entreprise. |
name | Le nom du destinataire. |
address1 | La première ligne d’adresse. |
address2 | La deuxième ligne d’adresse. |
city | La ville. |
province | La province ou l'État. |
province_code | Le code de la province ou de l'État. |
zip | Le code postal. |
country | Le pays. |
country_code | Le code du pays. |
phone | Le numéro de téléphone. |
Objet réduction
Chaque réduction dans order.discounts ou item.discounts contient les propriétés suivantes.
| Propriété | Description |
|---|---|
description | La description de la réduction. |
amount | Le montant de la réduction. À formater avec le filtre money. |
percentage | Le pourcentage de réduction. |
Objet ligne de taxe
Chaque ligne de taxe dans order.tax_lines contient les propriétés suivantes.
| Propriété | Description |
|---|---|
title | Le titre de la taxe. |
rate | Le taux de taxation sous forme décimale. |
rate_percentage | Le taux de taxation en pourcentage. |
price | Le montant de la taxe. À formater avec le filtre money. |
taxable_amount | Le montant imposable. À formater avec le filtre money. |
Objet carte-cadeau
Chaque carte-cadeau dans purchased_gift_cards contient les propriétés suivantes.
| Propriété | Description |
|---|---|
code | Le code de la carte-cadeau. |
masked_code | Le code masqué de la carte-cadeau. |
balance | Le solde de la carte-cadeau. Formatez-le avec le filtre money. |
created_at | L’horodatage de la carte-cadeau. |
qr_code_content | Le contenu à encoder dans un code QR. |
Champs méta et propriétés
Les champs méta et les propriétés d’articles se présentent sous deux formes.
Les champs méta et les propriétés d’articles sont associés à des clés. Accédez à une valeur directement par sa clé :
{{ item.product_metafields.care_instructions }}
{{ item.custom_attributes.engraving }}Les champs méta de commande et de client sont des listes. Parcourez-les à l’aide d’une boucle :
{% for m in order.metafields %}
{{ m.namespace }}.{{ m.key }}: {{ m.value }}
{% endfor %}Les clés sont normalisées au format snake_case. Une clé telle que Care Instructions ou careInstructions est accessible via care_instructions. Référencez toujours les valeurs associées à des clés en minuscules avec des traits de soulignement.
La disponibilité des champs méta de commande et de client dépend de la présence de ces champs méta dans l’enregistrement.
Filtres Liquid
Vous pouvez utiliser des filtres pour formater les informations de votre bloc Liquid personnalisé. Pour appliquer un filtre, ajoutez une barre verticale |, puis le filtre dans la balise de sortie Liquid, par exemple, {{ order.total_price | money }}.
Les filtres Liquid standard fonctionnent également. Pour en savoir plus sur les filtres Liquid, consultez la Référence des filtres.
| Filtre | Exemple | Description |
|---|---|---|
money | {{ order.total_price | money }} | Formate un montant dans la devise du reçu. |
date | {{ order.created_at | date: '%B %e, %Y' }} | Formate une date ou une heure. |
percent | {{ tax_line.rate | percent }} | Formate une décimale sous forme de pourcentage, par exemple 0,2 devient 20 %. |
t | {{ 'receipt.total' | t }} | Renvoie un libellé traduit. |
barcode | {{ order.barcode_content | barcode }} | Génère un code-barres. |
qrcode | {{ order.qr_code_content | qrcode }} | Génère un code QR. |
Exemples de blocs Liquid personnalisés
Les exemples suivants ajoutent du contenu qui ne figure pas sur un modèle de reçu imprimé par défaut.
Pour ajouter la note de commande si elle existe, utilisez le code Liquid suivant :
{% if order.note %}<p>Note: {{ order.note }}</p>{% endif %}Pour ajouter le SKU à côté de chaque article, utilisez le code Liquid suivant :
{% for item in order.line_items %}
<p>{{ item.name }} — {{ item.sku }} ×{{ item.quantity }}</p>
{% endfor %}Pour ajouter une propriété d’article, comme une gravure, utilisez le code Liquid suivant :
{% for item in order.line_items %}
{% if item.custom_attributes.engraving %}
<p>{{ item.name }} — Engraving: {{ item.custom_attributes.engraving }}</p>
{% endif %}
{% endfor %}Pour ajouter un champ méta de produit, tel que des instructions d’entretien, utilisez le code Liquid suivant :
{% for item in order.line_items %}
{% if item.product_metafields.care_instructions %}
<p>{{ item.name }}: {{ item.product_metafields.care_instructions }}</p>
{% endif %}
{% endfor %}Pour ajouter un champ méta de client, utilisez le code Liquid suivant :
{% for m in order.customer.metafields %}
{% if m.key == 'loyalty_tier' %}<p>Loyalty tier: {{ m.value }}</p>{% endif %}
{% endfor %}Pour ajouter un code QR renvoyant à la commande, utilisez le code Liquid suivant :
{{ order.qr_code_content | qrcode }}