Персонализирани Liquid блокове за отпечатани разписки
Можете да използвате персонализиран Liquid блок, за да добавите собствено съдържание към заглавката или долния колонтитул на отпечатана разписка, като например подробности за поръчката, информация за клиента, свойства на продукта, метаполета и баркодове.
Персонализираните Liquid блокове се изобразяват в отпечатаните разписки за завършени онлайн поръчки и поръчки през Point of Sale. Те не се изобразяват за поръчки, при които се използва офлайн плащане.
Можете да добавите персонализиран Liquid блок от визуалния редактор на разписки в своя администраторски панел на Shopify. Стойностите, които посочвате, се извличат от данните на разписката, когато тя се отпечатва. Например следният Liquid код добавя бележка към поръчката в разписката, когато такава бележка съществува:
{% if order.note %}
<p>Order note: {{ order.note }}</p>
{% endif %}На тази страница
Правила за синтаксиса на Liquid
Прегледайте следните правила за синтаксиса, преди да създадете персонализиран Liquid блок:
- Имената на променливите използват малки букви и долни черти – формат, известен като snake_case. Например използвайте
order.total_price,order.customer.display_nameиorder.line_items. - Паричните стойности са обикновени числа. Форматирайте ги с филтъра
money, например{{ order.total_price | money }}. - Предпазвайте незадължителните стойности с оператора
if, за да не отпечатвате празен ред, например{% if order.customer.email %}{{ order.customer.email }}{% endif %}. - Използвайте цикъл за списъците с оператора
for, например{% for item in order.line_items %} ... {% endfor %}. - Някои Liquid тагове не се поддържат. Не можете да използвате
assign,capture,include,render,raw,incrementилиdecrement. Ако вашият блок използва неподдържан таг, разписката няма да се запази и ще видите грешка. - Персонализираният Liquid блок може да съдържа до 50 КВ код.
HTML и CSS
Можете да използвате основен HTML в персонализиран Liquid блок, за да структурирате съдържанието си, като например <p>, <br>, <strong>, <em>, заглавки, списъци и връзки. Вашето съдържание използва съществуващите шрифтове и размери на разписката.
Не можете да използвате CSS, за да промените външния вид на разписката. Блоковете <style> и атрибутите style не се поддържат, така че персонализираният Liquid блок да не може да променя стила или да скрива съдържание другаде в разписката. Таговете <script>, манипулаторите на събития като onclick и връзките javascript: също не се поддържат.
Ако вашият блок съдържа неподдържан HTML, разписката няма да се запази и ще видите грешка. Премахнете неподдържания HTML и след това запазете отново.
Променливи и обекти
Персонализираният Liquid блок може да посочва следните обекти и променливи. Някои стойности не са в разписката по подразбиране, така че персонализираният Liquid блок е един от начините да ги добавите.
Променливи от най-високо ниво
Следните променливи от най-високо ниво са налични в персонализиран Liquid блок.
| Променлива | Описание |
|---|---|
order | Поръчката, която се отпечатва. |
shop | Магазинът. |
location | Местоположението на магазина за търговия на дребно. |
settings | Настройките за показване на разписката, които са превключвателите, конфигурирани в редактора. |
purchased_gift_cards | Подаръчните карти, закупени с тази поръчка. |
staff_member_description | Присвоеният член на персонала, когато показването на персонала е включено. |
locale | Езикът и регионът на разписката, например en. |
is_pickup | Дали поръчката е за получаване. |
pickup_location | Местоположението за вземане, когато е приложимо. |
Обект на поръчката
| Свойство | Описание |
|---|---|
name | Името на поръчката, например #1001. |
created_at |
Клеймото за дата и час на поръчката. Използвайте с филтъра date.
|
note | Бележката към поръчката. |
subtotal_price |
Междинната сума. Форматирайте с филтъра money.
|
total_price |
Общата сума. Форматирайте с филтъра money.
|
shipping_price |
Таксуваната доставка. Форматирайте с филтъра money.
|
total_tip_received |
Общата сума на бакшиша. Форматирайте с филтъра money.
|
balance_due |
Дължимата сума. Форматирайте с филтъра money.
|
change_due |
Върнатото ресто. Форматирайте с филтъра money.
|
taxes_included | Дали данъкът е включен в цените. |
receipt_number | Номерът на разписката. |
barcode_content | Съдържанието, което да се кодира в баркод. |
qr_code_content |
Съдържанието, което да се кодира в QR код. Използвайте с филтъра qrcode.
|
line_items | Закупените артикули. Свойствата на всеки артикул са изброени в обекта на реда на поръчката. |
transactions | Плащанията. Свойствата на всяко плащане са изброени в обекта на трансакцията. |
discounts | Отстъпките на ниво поръчка. Свойствата на всяка отстъпка са изброени в обекта на отстъпката. |
tax_lines | Данъчните редове. Свойствата на всеки данъчен ред са изброени в обекта на данъчния ред. |
refunds | Възстановяванията на суми по поръчката. |
shipping_address | Адресът за доставка. Свойствата на адреса са посочени в обекта за адрес. |
customer | Подробностите за клиента, посочени в обекта за клиент. |
metafields | Метаполетата на поръчката. |
Обект за клиент
Обектът order.customer съдържа подробностите за клиента.
| Свойство | Описание |
|---|---|
display_name | Екранното име на клиента. |
first_name | Собственото име на клиента. |
last_name | Фамилното име на клиента. |
| Имейл адресът на клиента. | |
phone | Телефонният номер на клиента. |
default_address | Основният адрес на клиента. |
metafields | Метаполетата на клиента. |
Обект за ред на поръчка
Всеки артикул в order.line_items съдържа следните свойства.
| Свойство | Описание |
|---|---|
name | Името на продукта или реда. |
variant_title | Вариантът, като например голям / син. |
sku | Складовата единица на продукт (SKU). |
vendor | Доставчикът. |
quantity | Количеството. |
price |
Единичната цена. Форматира се с филтъра money.
|
total_price |
Общата сума на реда. Форматира се с филтъра money.
|
discounted_total_price |
Общата сума на реда след отстъпки. Форматира се с филтъра money.
|
discounted_unit_price |
Единичната цена след отстъпки. Форматира се с филтъра money.
|
discounts | Отстъпките, приложени към реда. |
selling_plan_name | Името на абонамента или плана за продажба, ако има такъв. |
staff_member_description | Служителят от персонала, причислен към реда. |
custom_attributes | Свойствата на реда, достъпни чрез ключ. |
product_metafields | Метаполетата на продукта, достъпни чрез ключ. |
variant_metafields | Метаполетата на варианта, достъпни чрез ключ. |
Обект за транзакция
Всяко плащане в order.transactions съдържа следните свойства. Изразходваният кредит в магазина за поръчката се посочва като плащане с име Store credit. Оставащото салдо по кредита в магазина на клиента не е налично като променлива.
| Свойство | Описание |
|---|---|
name | Името на плащането, като например Visa, пари в брой или кредит в магазина. |
payment_type | Кодът на типа плащане. |
amount |
Сумата. Форматира се с филтъра money.
|
kind | Видът на транзакцията. |
status | Състоянието на транзакцията. |
credit_card_number | Маскираният номер на картата, когато е приложимо. |
created_at | Клеймото за дата и час на транзакцията. |
additional_details | Допълнителни редове с подробности за плащането. |
Обект за магазин
Обектът shop съдържа подробностите за магазина.
| Свойство | Описание |
|---|---|
name | Името на магазина. |
domain | Домейнът на магазина. |
currency | Валутата на магазина. |
id | Идентификаторът на магазина. |
Обект за местоположение
Обектът location съдържа подробностите за местоположението на търговския обект.
| Свойство | Описание |
|---|---|
name | Името на местоположението. |
address1 | Първият ред на адреса. |
address2 | Вторият ред на адреса. |
city | Градът. |
province | Областта или щатът. |
province_code | Кодът на областта или щата. |
zip | Пощенският код. |
country | Държавата. |
phone | Телефонният номер. |
metafields | Метаполетата на местоположението. |
Обект за адрес
Адрес, като например order.shipping_address или order.customer.default_address, съдържа следните свойства.
| Свойство | Описание |
|---|---|
company | Името на компанията. |
name | Името на получателя. |
address1 | Първият ред на адреса. |
address2 | Вторият ред на адреса. |
city | Градът. |
province | Областта или щатът. |
province_code | Кодът на областта или щата. |
zip | Пощенският код. |
country | Държавата. |
country_code | Кодът на държавата. |
phone | Телефонният номер. |
Обект за отстъпка
Всяка отстъпка в order.discounts или item.discounts съдържа следните свойства.
| Свойство | Описание |
|---|---|
description | Описанието на отстъпката. |
amount | Сумата на отстъпката. Форматира се с филтъра money. |
percentage | Процентът на отстъпката. |
Обект за данъчен ред
Всеки данъчен ред в order.tax_lines съдържа следните свойства.
| Свойство | Описание |
|---|---|
title | Името на данъка. |
rate | Данъчната ставка като десетична дроб. |
rate_percentage | Данъчната ставка като процент. |
price | Сумата на данъка. Форматира се с филтъра money. |
taxable_amount | Сумата, подлежаща на облагане с данък. Форматира се с филтъра money. |
Обект за подаръчна карта
Всяка подаръчна карта в purchased_gift_cards съдържа следните свойства.
| Свойство | Описание |
|---|---|
code | Кодът на подаръчната карта. |
masked_code | Маскираният код на подаръчната карта. |
balance | Салдото на подаръчната карта. Форматиране чрез филтъра money. |
created_at | Клеймото за дата и час на подаръчната карта. |
qr_code_content | Съдържанието за кодиране в QR код. |
Метаполета и свойства
Метаполетата и свойствата на редовете са два вида.
Метаполетата и свойствата на редовете имат ключове. Достъп до дадена стойност директно чрез нейния ключ:
{{ item.product_metafields.care_instructions }}
{{ item.custom_attributes.engraving }}Метаполетата за поръчка и клиент са списъци. Преминаване през тях в цикъл:
{% for m in order.metafields %}
{{ m.namespace }}.{{ m.key }}: {{ m.value }}
{% endfor %}Ключовете се нормализират до snake_case. Достъпът до ключ като Care Instructions или careInstructions се осъществява като care_instructions. Винаги използвайте малки букви с долни черти за препратки към стойности с ключове.
Наличието на метаполета за поръчка и клиент зависи от това дали тези метаполета съществуват в записа.
Филтри в Liquid
Можете да използвате филтри, за да форматирате информацията във Вашия персонализиран блок в Liquid. За да приложите филтър, добавете знака вертикална черта | и след това филтъра вътре в изхода на Liquid, например {{ order.total_price | money }}.
Стандартните филтри в Liquid също работят. За да научите повече за филтрите в Liquid, вижте Справка за филтрите.
| Филтър | Пример | Описание |
|---|---|---|
money | {{ order.total_price | money }} | Форматира сума във валутата на разписката. |
date | {{ order.created_at | date: '%B %e, %Y' }} | Форматира дата или час. |
percent | {{ tax_line.rate | percent }} | Форматира десетично число като процент, например 0,2 като 20%. |
t | {{ 'receipt.total' | t }} | Връща преведен етикет. |
barcode | {{ order.barcode_content | barcode }} | Изобразява баркод. |
qrcode | {{ order.qr_code_content | qrcode }} | Изобразява QR код. |
Примери за персонализирани блокове в Liquid
Следните примери добавят съдържание, което не присъства в стандартния шаблон за отпечатана разписка.
За да добавите бележка към поръчката, когато има такава, използвайте следния Liquid:
{% if order.note %}<p>Note: {{ order.note }}</p>{% endif %}За да добавите SKU до всеки артикул, използвайте следния Liquid:
{% for item in order.line_items %}
<p>{{ item.name }} — {{ item.sku }} ×{{ item.quantity }}</p>
{% endfor %}За да добавите свойство на ред, като например гравюра, използвайте следния Liquid:
{% for item in order.line_items %}
{% if item.custom_attributes.engraving %}
<p>{{ item.name }} — Engraving: {{ item.custom_attributes.engraving }}</p>
{% endif %}
{% endfor %}За да добавите продуктово метаполе, като например инструкции за грижа, използвайте следния Liquid:
{% for item in order.line_items %}
{% if item.product_metafields.care_instructions %}
<p>{{ item.name }}: {{ item.product_metafields.care_instructions }}</p>
{% endif %}
{% endfor %}За да добавите клиентско метаполе, използвайте следния Liquid:
{% for m in order.customer.metafields %}
{% if m.key == 'loyalty_tier' %}<p>Loyalty tier: {{ m.value }}</p>{% endif %}
{% endfor %}За да добавите QR код, който води към поръчката, използвайте следния Liquid:
{{ order.qr_code_content | qrcode }}