인쇄된 영수증용 사용자 지정 Liquid 블록
사용자 지정 Liquid 블록을 사용하면 주문 세부 정보, 고객 정보, 제품 속성, 메타 필드, 바코드 등 나만의 콘텐츠를 인쇄된 영수증의 머리글이나 바닥글에 추가할 수 있습니다.
사용자 지정 Liquid 블록은 완료된 온라인 및 POS(Point of Sale) 주문의 인쇄된 영수증에서 렌더링됩니다. 오프라인 체크아웃을 사용하는 주문의 경우에는 렌더링되지 않습니다.
Shopify 관리자의 영수증 시각적 편집기에서 사용자 지정 Liquid 블록을 추가할 수 있습니다. 참조하는 값은 영수증이 인쇄될 때 영수증 데이터에서 가져옵니다. 예를 들어 다음 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를 사용합니다. - 금액 값은 일반 숫자입니다.
{{ order.total_price | money }}와 같이money필터로 형식을 지정합니다. - 빈 줄이 인쇄되지 않도록
{% if order.customer.email %}{{ order.customer.email }}{% endif %}와 같이if문으로 선택적 값을 보호합니다. {% for item in order.line_items %} ... {% endfor %}와 같이for문으로 목록을 반복합니다.- 일부 Liquid 태그는 지원되지 않습니다.
assign,capture,include,render,raw,increment,decrement는 사용할 수 없습니다. 블록에서 지원되지 않는 태그를 사용하면 영수증이 저장되지 않고 오류가 표시됩니다. - 사용자 지정 Liquid 블록은 최대 50KB의 코드를 포함할 수 있습니다.
HTML 및 CSS
사용자 지정 Liquid 블록에 기본 HTML을 사용하여 <p>, <br>, <strong>, <em>, 제목, 목록 및 링크 등의 콘텐츠를 구성할 수 있습니다. 콘텐츠는 영수증의 기존 글꼴 및 크기를 사용합니다.
CSS를 사용하여 영수증 모양을 변경할 수 없습니다. 사용자 지정 Liquid 블록이 영수증의 다른 부분에 있는 콘텐츠의 스타일을 다시 지정하거나 숨길 수 없도록 <style> 블록 및 style 특성은 지원되지 않습니다. <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 | Large/파란색과 같은 이형 상품입니다. |
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 객체
shop 객체에는 스토어 세부 정보가 포함되어 있습니다.
| 속성 | 설명 |
|---|---|
name | 스토어 이름입니다. |
domain | 스토어 도메인입니다. |
currency | 스토어 통화입니다. |
id | 스토어 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 블록 정보의 형식을 지정할 수 있습니다. 필터를 적용하려면 파이프 문자 |를 추가한 다음 {{ 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 }}