인쇄된 영수증용 사용자 지정 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_nameorder.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 블록에서 사용할 수 있는 최상위 변수는 다음과 같습니다.

사용자 지정 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
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 객체에는 스토어 세부 정보가 포함되어 있습니다.

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 필터에 대해 자세히 알아보려면 필터 참조를 확인하십시오.

사용자 지정 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 }}