प्रिंट की गई रसीदों के लिए कस्टम 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 ब्लॉक में निम्नलिखित टॉप-लेवल वैरिएबल उपलब्ध हैं।

कस्टम 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
ग्राहक का अंतिम नाम।
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
कुंजी (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 ऑब्जेक्ट में स्टोर की जानकारी होती है।

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 फ़िल्टर के बारे में ज़्यादा जानने के लिए, फ़िल्टर का संदर्भ देखें।

कस्टम 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 }}