Персонализирани 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 блок.

Описание на променливите от най-високо ниво, достъпни за персонализиран 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
Фамилното име на клиента.
email
Имейл адресът на клиента.
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, вижте Справка за филтрите.

Описание на филтрите, достъпни за персонализиран блок в 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 }}