प्रिंट की गई रसीदों के लिए कस्टम Liquid ब्लॉक
आप किसी प्रिंट की गई रसीद के हैडर या फूटर में अपनी खुद की सामग्री जोड़ने के लिए कस्टम Liquid ब्लॉक का उपयोग कर सकते हैं, जैसे कि ऑर्डर की जानकारी, ग्राहक की जानकारी, प्रोडक्ट की विशेषताएं, मेटाफ़ील्ड्स और बारकोड।
कस्टम Liquid ब्लॉक, पूरे हो चुके ऑनलाइन और 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का उपयोग करें। - पैसे (Money) की वैल्यू सामान्य नंबर होते हैं। उन्हें
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
आप अपनी सामग्री को स्ट्रक्चर करने के लिए कस्टम Liquid ब्लॉक में बेसिक HTML का उपयोग कर सकते हैं, जैसे कि <p>, <br>, <strong>, <em>, हेडिंग, लिस्ट और लिंक। आपकी सामग्री रसीद के मौजूदा फ़ॉन्ट और साइज़ का उपयोग करती है।
रसीद का रूप बदलने के लिए आप CSS का उपयोग नहीं कर सकते। <style> ब्लॉक और style एट्रिब्यूट सपोर्टेड नहीं हैं, ताकि कोई कस्टम Liquid ब्लॉक रसीद पर कहीं और सामग्री को फिर से स्टाइल न कर सके या छिपा न सके। <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 |
क्यूआर कोड में एन्कोड की जाने वाली सामग्री। qrcode फ़िल्टर के साथ उपयोग करें।
|
line_items | खरीदे गए आइटम। हर आइटम की प्रॉपर्टी ऑर्डर लाइन आइटम ऑब्जेक्ट में लिस्ट की गई हैं। |
transactions | पेमेंट। हर पेमेंट की प्रॉपर्टी ट्रांज़ैक्शन ऑब्जेक्ट में लिस्ट की गई हैं। |
discounts | ऑर्डर-लेवल की छूट। हर छूट की प्रॉपर्टी डिस्काउंट ऑब्जेक्ट में लिस्ट की गई हैं। |
tax_lines | टैक्स लाइन। हर टैक्स लाइन की प्रॉपर्टी टैक्स लाइन ऑब्जेक्ट में लिस्ट की गई हैं। |
refunds | ऑर्डर पर रिफ़ंड। |
shipping_address | शिपिंग पता। पते की प्रॉपर्टी address object में लिस्ट की गई हैं। |
customer | ग्राहक की जानकारी, जो customer object में दी गई है। |
metafields | ऑर्डर मेटाफ़ील्ड्स। |
ग्राहक ऑब्जेक्ट
order.customer ऑब्जेक्ट में ग्राहक की जानकारी होती है।
| प्रॉपर्टी | विवरण |
|---|---|
display_name | ग्राहक का डिस्प्ले नाम। |
first_name | ग्राहक का पहला नाम। |
last_name | ग्राहक का अंतिम नाम। |
| ग्राहक का ईमेल पता। | |
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 | कुंजी (key) द्वारा एक्सेस की जाने वाली लाइन आइटम प्रॉपर्टी। |
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 | स्टोर की आईडी। |
लोकेशन ऑब्जेक्ट
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 | क्यूआर कोड में एन्कोड की जाने वाली सामग्री. |
मेटाफ़ील्ड्स और प्रॉपर्टीज़
मेटाफ़ील्ड्स और लाइन आइटम प्रॉपर्टीज़ दो रूपों में आती हैं।
लाइन आइटम मेटाफ़ील्ड्स और प्रॉपर्टीज़ कीड (keyed) होती हैं। किसी वैल्यू को सीधे उसकी की (key) के ज़रिए एक्सेस करें:
{{ item.product_metafields.care_instructions }}
{{ item.custom_attributes.engraving }}ऑर्डर और ग्राहक मेटाफ़ील्ड्स सूचियां होती हैं। उन पर लूप करें:
{% for m in order.metafields %}
{{ m.namespace }}.{{ m.key }}: {{ m.value }}
{% endfor %}कीज़ (keys) को snake_case में नॉर्मलाइज़ किया जाता है। Care Instructions या careInstructions जैसी की (key) को care_instructions के रूप में एक्सेस किया जाता है। हमेशा कीड (keyed) वैल्यू को अंडरस्कोर के साथ लोअरकेस में संदर्भित करें।
ऑर्डर और ग्राहक मेटाफ़ील्ड्स की उपलब्धता, रिकॉर्ड पर उन मेटाफ़ील्ड्स के मौजूद होने पर निर्भर करती है।
Liquid फ़िल्टर
आप अपने कस्टम Liquid ब्लॉक में जानकारी को फ़ॉर्मेट करने के लिए फ़िल्टर का उपयोग कर सकते हैं। फ़िल्टर लागू करने के लिए, पाइप वर्ण | जोड़ें और फिर Liquid आउटपुट के अंदर फ़िल्टर लगाएं, जैसे कि {{ order.total_price | money }}।
मानक 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 }}