บล็อก Liquid แบบกำหนดเองสำหรับใบเสร็จที่พิมพ์

คุณสามารถใช้บล็อก Liquid แบบกำหนดเองเพื่อเพิ่มเนื้อหาของคุณเองในส่วนหัวหรือส่วนท้ายของใบเสร็จที่พิมพ์ เช่น รายละเอียดคำสั่งซื้อ ข้อมูลลูกค้า คุณสมบัติของสินค้า เมตาฟิลด์ และบาร์โค้ด

บล็อก Liquid แบบกำหนดเองจะแสดงบนใบเสร็จที่พิมพ์สำหรับคำสั่งซื้อออนไลน์และคำสั่งซื้อ Point of Sale ที่เสร็จสมบูรณ์ โดยจะไม่แสดงสำหรับคำสั่งซื้อที่ใช้การชำระเงินออฟไลน์

คุณสามารถเพิ่มบล็อก Liquid แบบกำหนดเองจากตัวแก้ไขใบเสร็จแบบมองเห็นได้ในส่วนผู้ดูแล Shopify ค่าต่างๆ ที่คุณอ้างอิงจะถูกดึงมาจากข้อมูลของใบเสร็จเมื่อพิมพ์ใบเสร็จ ตัวอย่างเช่น โค้ด Liquid ต่อไปนี้จะเพิ่มหมายเหตุคำสั่งซื้อในใบเสร็จเมื่อมีหมายเหตุอยู่:

{% if order.note %}
  <p>Order note: {{ order.note }}</p>
{% endif %}

กฎไวยากรณ์ Liquid

โปรดตรวจสอบกฎไวยากรณ์ต่อไปนี้ก่อนที่คุณจะสร้างบล็อก Liquid แบบกำหนดเอง:

  • ชื่อตัวแปรใช้ตัวอักษรพิมพ์เล็กและเครื่องหมายขีดล่าง (underscore) ซึ่งเป็นรูปแบบที่เรียกว่า 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 KB

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
เนื้อหาที่จะเข้ารหัสในคิวอาร์โค้ด ใช้งานร่วมกับตัวกรอง 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 จะมีคุณสมบัติดังต่อไปนี้ เครดิตร้านค้าที่ใช้ในคำสั่งซื้อจะแสดงเป็นการชำระเงินในชื่อเครดิตร้านค้า ยอดคงเหลือของเครดิตร้านค้าของลูกค้าไม่สามารถใช้เป็นตัวแปรได้

คำอธิบายของอ็อบเจ็กต์ธุรกรรม
คุณสมบัติคำอธิบาย
name
ชื่อการชำระเงิน เช่น Visa, เงินสด หรือเครดิตร้านค้า
payment_type
รหัสประเภทการชำระเงิน
amount
จำนวนเงิน จัดรูปแบบด้วยตัวกรอง money
kind
ชนิดของธุรกรรม
status
สถานะของธุรกรรม
credit_card_number
หมายเลขบัตรที่ถูกปิดบังไว้ (หากมี)
created_at
ประทับเวลาของธุรกรรม
additional_details
รายการรายละเอียดการชำระเงินเพิ่มเติม

อ็อบเจ็กต์ร้านค้า

อ็อบเจ็กต์ shop จะมีรายละเอียดของร้านค้า

คำอธิบายของอ็อบเจ็กต์ร้านค้า
คุณสมบัติคำอธิบาย
name
ชื่อร้านค้า
domain
โดเมนของร้านค้า
currency
สกุลเงินของร้านค้า
id
ID ของร้านค้า

อ็อบเจ็กต์ตำแหน่งที่ตั้ง

อ็อบเจ็กต์ location จะมีรายละเอียดตำแหน่งที่ตั้งของร้านค้าปลีก

คำอธิบายของอ็อบเจ็กต์ตำแหน่งที่ตั้ง
คุณสมบัติคำอธิบาย
name
ชื่อตำแหน่งที่ตั้ง
address1
ที่อยู่บรรทัดแรก
address2
ที่อยู่บรรทัดที่สอง
city
เมือง
province
รัฐหรือจังหวัด
province_code
รหัสรัฐหรือรหัสจังหวัด
zip
รหัส ZIP หรือรหัสไปรษณีย์
country
ประเทศ
phone
หมายเลขโทรศัพท์
metafields
เมตาฟิลด์ตำแหน่งที่ตั้ง

อ็อบเจ็กต์ที่อยู่

ที่อยู่ เช่น order.shipping_address หรือ order.customer.default_addressจะมีคุณสมบัติดังต่อไปนี้

คำอธิบายของอ็อบเจ็กต์ที่อยู่
คุณสมบัติคำอธิบาย
company
ชื่อบริษัท
name
ชื่อผู้รับ
address1
ที่อยู่บรรทัดแรก
address2
ที่อยู่บรรทัดที่สอง
city
เมือง
province
รัฐหรือจังหวัด
province_code
รหัสรัฐหรือรหัสจังหวัด
zip
รหัส 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
เนื้อหาที่จะเข้ารหัสในคิวอาร์โค้ด

เมตาฟิลด์และคุณสมบัติ

เมตาฟิลด์และคุณสมบัติสินค้าเฉพาะรายการมี 2 รูปแบบ

เมตาฟิลด์และคุณสมบัติของสินค้าเฉพาะรายการจะมีการกำหนดคีย์ เข้าถึงค่าได้โดยตรงจากคีย์ ดังนี้

{{ 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 }}
แสดงคิวอาร์โค้ด

ตัวอย่างบล็อก 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 %}

หากต้องการเพิ่มคิวอาร์โค้ดที่ลิงก์ไปยังคำสั่งซื้อ ให้ใช้ Liquid ต่อไปนี้

{{ order.qr_code_content | qrcode }}