Blok Liquid kustom untuk tanda terima cetak

Anda dapat menggunakan blok Liquid kustom untuk menambahkan konten Anda sendiri ke header atau footer dari tanda terima cetak, seperti detail pesanan, informasi pelanggan, properti produk, bidang meta, dan barkod.

Blok Liquid kustom dirender pada tanda terima cetak untuk pesanan online dan Point of Sale yang telah selesai. Blok tidak dirender untuk pesanan yang menggunakan checkout offline.

Anda dapat menambahkan blok Liquid kustom dari editor visual tanda terima di admin Shopify Anda. Nilai yang Anda referensikan ditarik dari data tanda terima saat tanda terima dicetak. Contohnya, kode Liquid berikut menambahkan catatan pesanan ke tanda terima apabila ada catatan:

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

Aturan sintaksis Liquid

Tinjau aturan sintaksis berikut sebelum Anda membuat blok Liquid kustom:

  • Nama variabel menggunakan huruf kecil dan garis bawah, format yang dikenal dengan snake_case. Contohnya, gunakan order.total_price, order.customer.display_name, dan order.line_items.
  • Nilai uang adalah angka biasa. Format nilai tersebut menggunakan filter money, seperti {{ order.total_price | money }}.
  • Lindungi nilai opsional dengan pernyataan if agar Anda tidak mencetak baris kosong, seperti {% if order.customer.email %}{{ order.customer.email }}{% endif %}.
  • Ulangi daftar menggunakan pernyataan for, seperti {% for item in order.line_items %} ... {% endfor %}.
  • Beberapa tag Liquid tidak didukung. Anda tidak dapat menggunakan assign, capture, include, render, raw, increment, atau decrement. Jika blok Anda menggunakan tag yang tidak didukung, tanda terima tidak akan disimpan dan Anda akan melihat kesalahan.
  • Blok Liquid kustom dapat berisi kode hingga sebesar 50 KB.

HTML dan CSS

Anda dapat menggunakan HTML dasar di blok Liquid kustom untuk menyusun struktur konten Anda, seperti <p>, <br>, <strong>, <em>, tajuk, daftar, dan tautan. Konten Anda menggunakan font dan ukuran yang ada pada tanda terima.

Anda tidak dapat menggunakan CSS untuk mengubah tampilan tanda terima. Blok <style> dan atribut style tidak didukung, sehingga blok Liquid kustom tidak dapat mengubah gaya atau menyembunyikan konten di bagian lain pada tanda terima. Tag <script>, penanganan aktivitas (event handler) seperti onclick, dan tautan javascript: juga tidak didukung.

Jika blok Anda memuat HTML yang tidak didukung, tanda terima tidak akan disimpan dan Anda akan melihat kesalahan. Hapus HTML yang tidak didukung tersebut, lalu simpan kembali.

Variabel dan objek

Blok Liquid kustom dapat mereferensikan objek dan variabel berikut. Beberapa nilai tidak ada di tanda terima default, sehingga blok Liquid kustom merupakan salah satu cara untuk menambahkannya.

Variabel tingkat atas

Variabel tingkat atas berikut tersedia di blok Liquid kustom.

Deskripsi variabel tingkat atas yang tersedia untuk blok Liquid kustom
VariabelDeskripsi
order
Pesanan yang sedang dicetak.
shop
Toko.
location
Lokasi retail.
settings
Pengaturan tampilan tanda terima, yang merupakan tombol pengalih yang dikonfigurasi di dalam editor.
purchased_gift_cards
Kartu hadiah yang dibeli pada pesanan ini.
staff_member_description
Anggota staf yang diatribusikan, saat tampilan staf diaktifkan.
locale
Lokal tanda terima, seperti en.
is_pickup
Apakah pesanan merupakan pesanan penjemputan.
pickup_location
Lokasi penjemputan, bila ada.

Objek pesanan

Deskripsi objek pesanan
PropertiDeskripsi
name
Nama pesanan, seperti #1001.
created_at
Stempel waktu pesanan. Gunakan bersama filter date.
note
Catatan pesanan.
subtotal_price
Subtotal. Format menggunakan filter money.
total_price
Total. Format menggunakan filter money.
shipping_price
Biaya pengiriman yang dikenakan. Format menggunakan filter money.
total_tip_received
Total tip. Format menggunakan filter money.
balance_due
Jumlah yang masih harus dibayar. Format menggunakan filter money.
change_due
Kembalian yang diberikan. Format menggunakan filter money.
taxes_included
Apakah pajak termasuk di dalam harga.
receipt_number
Nomor tanda terima.
barcode_content
Konten untuk dienkode dalam sebuah barkod.
qr_code_content
Konten untuk dienkode dalam sebuah kode QR. Gunakan bersama filter qrcode.
line_items
Item yang dibeli. Properti masing-masing item tercantum dalam objek item pesanan.
transactions
Pembayaran. Properti masing-masing pembayaran tercantum dalam objek transaksi.
discounts
Diskon tingkat pesanan. Properti masing-masing diskon tercantum dalam objek diskon.
tax_lines
Baris pajak. Properti masing-masing baris pajak tercantum dalam objek baris pajak.
refunds
Pengembalian dana pada pesanan.
shipping_address
Alamat pengiriman. Properti alamat tercantum dalam objek alamat.
customer
Detail pelanggan, yang tercantum dalam objek pelanggan.
metafields
Bidang meta pesanan.

Objek pelanggan

Objek order.customer berisi detail pelanggan.

Deskripsi objek pelanggan
PropertiDeskripsi
display_name
Nama tampilan pelanggan.
first_name
Nama depan pelanggan.
last_name
Nama belakang pelanggan.
email
Alamat email pelanggan.
phone
Nomor telepon pelanggan.
default_address
Alamat utama pelanggan.
metafields
Bidang meta pelanggan.

Objek item pesanan

Setiap item dalam order.line_items berisi properti berikut.

Deskripsi objek item pesanan
PropertiDeskripsi
name
Nama produk atau item pesanan.
variant_title
Varian, seperti Besar / Biru.
sku
SKU.
vendor
Vendor.
quantity
Kuantitas.
price
Harga satuan. Format dengan filter money.
total_price
Total item pesanan. Format dengan filter money.
discounted_total_price
Total item pesanan setelah diskon. Format dengan filter money.
discounted_unit_price
Harga per unit setelah diskon. Format dengan filter money.
discounts
Diskon yang diterapkan pada item pesanan.
selling_plan_name
Nama paket langganan atau rencana penjualan, jika ada.
staff_member_description
Anggota staf yang dikaitkan dengan item pesanan.
custom_attributes
Properti item pesanan, diakses menggunakan kunci.
product_metafields
Bidang meta produk, diakses menggunakan kunci.
variant_metafields
Bidang meta varian, diakses menggunakan kunci.

Objek transaksi

Setiap pembayaran dalam order.transactions berisi properti berikut. Kredit toko yang dibelanjakan untuk pesanan akan tercantum sebagai pembayaran yang dinamakan Kredit toko. Saldo kredit toko pelanggan yang tersisa tidak tersedia sebagai variabel.

Deskripsi objek transaksi
PropertiDeskripsi
name
Nama pembayaran, seperti Visa, uang tunai, atau kredit toko.
payment_type
Kode jenis pembayaran.
amount
Jumlah. Format dengan filter money.
kind
Jenis transaksi.
status
Status transaksi.
credit_card_number
Nomor kartu yang disamarkan, jika berlaku.
created_at
Stempel waktu transaksi.
additional_details
Baris detail pembayaran tambahan.

Objek toko

Objek shop berisi detail toko.

Deskripsi objek toko
PropertiDeskripsi
name
Nama toko.
domain
Domain toko.
currency
Mata uang toko.
id
ID toko.

Objek lokasi

Objek location berisi detail lokasi ritel.

Deskripsi objek lokasi
PropertiDeskripsi
name
Nama lokasi.
address1
Baris alamat pertama.
address2
Baris alamat kedua.
city
Kota.
province
Provinsi atau negara bagian.
province_code
Kode provinsi atau negara bagian.
zip
Kode pos.
country
Negara.
phone
Nomor telepon.
metafields
Bidang meta lokasi.

Objek alamat

Sebuah alamat, seperti order.shipping_address atau order.customer.default_address, berisi properti berikut.

Deskripsi objek alamat
PropertiDeskripsi
company
Nama perusahaan.
name
Nama penerima.
address1
Baris alamat pertama.
address2
Baris alamat kedua.
city
Kota.
province
Provinsi atau negara bagian.
province_code
Kode provinsi atau negara bagian.
zip
Kode pos.
country
Negara.
country_code
Kode negara.
phone
Nomor telepon.

Objek diskon

Setiap diskon dalam order.discounts atau item.discounts berisi properti berikut.

Deskripsi objek diskon
PropertiDeskripsi
description
Deskripsi diskon.
amount
Jumlah diskon. Format dengan filter money.
percentage
Persentase diskon.

Objek baris pajak

Setiap baris pajak dalam order.tax_lines berisi properti berikut.

Deskripsi objek baris pajak
PropertiDeskripsi
title
Judul pajak.
rate
Tarif pajak dalam bentuk desimal.
rate_percentage
Tarif pajak dalam bentuk persentase.
price
Jumlah pajak. Format dengan filter money.
taxable_amount
Jumlah yang dikenakan pajak. Format dengan filter money.

Objek kartu hadiah

Setiap kartu hadiah dalam purchased_gift_cards berisi properti berikut.

Deskripsi objek kartu hadiah
PropertiDeskripsi
code
Kode kartu hadiah.
masked_code
Kode kartu hadiah yang disamarkan.
balance
Saldo kartu hadiah. Format dengan filter money.
created_at
Stempel waktu kartu hadiah.
qr_code_content
Konten yang akan dienkode dalam kode QR.

Metafield dan properti

Metafield dan properti item pesanan tersedia dalam dua bentuk.

Metafield dan properti item pesanan menggunakan kunci. Akses nilai secara langsung berdasarkan kuncinya:

{{ item.product_metafields.care_instructions }}
{{ item.custom_attributes.engraving }}

Metafield pesanan dan pelanggan berupa daftar. Lakukan perulangan padanya:

{% for m in order.metafields %}
  {{ m.namespace }}.{{ m.key }}: {{ m.value }}
{% endfor %}

Kunci dinormalisasi ke snake_case. Kunci seperti Care Instructions atau careInstructions dapat diakses sebagai care_instructions. Selalu rujuk nilai yang menggunakan kunci dalam huruf kecil dengan garis bawah.

Ketersediaan metafield pesanan dan pelanggan bergantung pada keberadaan metafield tersebut dalam catatan.

Filter Liquid

Anda dapat menggunakan filter untuk memformat informasi di blok Liquid kustom Anda. Untuk menerapkan filter, tambahkan karakter pipa, |, lalu filter di dalam output Liquid, seperti {{ order.total_price | money }}.

Filter Liquid standar juga berfungsi. Untuk mempelajari lebih lanjut tentang filter Liquid, lihat Referensi filter.

Deskripsi filter yang tersedia untuk blok Liquid kustom
FilterContohDeskripsi
money
{{ order.total_price | money }}
Memformat jumlah dalam mata uang tanda terima.
date
{{ order.created_at | date: '%B %e, %Y' }}
Memformat tanggal atau waktu.
percent
{{ tax_line.rate | percent }}
Memformat desimal sebagai persentase, seperti 0,2 menjadi 20%.
t
{{ 'receipt.total' | t }}
Mengembalikan label yang diterjemahkan.
barcode
{{ order.barcode_content | barcode }}
Menampilkan barkod.
qrcode
{{ order.qr_code_content | qrcode }}
Menampilkan kode QR.

Contoh blok Liquid kustom

Contoh berikut menambahkan konten yang tidak ada di templat tanda terima cetak default.

Untuk menambahkan catatan pesanan jika ada, gunakan Liquid berikut:

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

Untuk menambahkan SKU di samping setiap item, gunakan Liquid berikut:

{% for item in order.line_items %}
  <p>{{ item.name }} — {{ item.sku }} ×{{ item.quantity }}</p>
{% endfor %}

Untuk menambahkan properti item pesanan, seperti ukiran, gunakan Liquid berikut:

{% for item in order.line_items %}
  {% if item.custom_attributes.engraving %}
    <p>{{ item.name }} — Engraving: {{ item.custom_attributes.engraving }}</p>
  {% endif %}
{% endfor %}

Untuk menambahkan metafield produk, seperti petunjuk perawatan, gunakan Liquid berikut:

{% for item in order.line_items %}
  {% if item.product_metafields.care_instructions %}
    <p>{{ item.name }}: {{ item.product_metafields.care_instructions }}</p>
  {% endif %}
{% endfor %}

Untuk menambahkan metafield pelanggan, gunakan Liquid berikut:

{% for m in order.customer.metafields %}
  {% if m.key == 'loyalty_tier' %}<p>Loyalty tier: {{ m.value }}</p>{% endif %}
{% endfor %}

Untuk menambahkan kode QR yang menautkan ke pesanan, gunakan Liquid berikut:

{{ order.qr_code_content | qrcode }}