Shopify स्क्रिप्ट API का रेफ़रेंस
स्क्रिप्ट, Ruby API का इस्तेमाल करके लिखी जाती हैं, जो आपको बहुत ज़्यादा नियंत्रण और लचीलापन देती है।
अलग-अलग तरह के स्क्रिप्ट होते हैं। जब आप Script Editor ऐप में स्क्रिप्ट बनाते हैं, तो उसे एक प्रकार असाइन किया जाता है। यह इस बात पर निर्भर करता है कि आप शुरू करने के लिए कौन-सा स्क्रिप्ट टेम्पलेट चुनते हैं:
लाइन आइटम स्क्रिप्ट
लाइन आइटम स्क्रिप्ट, कार्ट में मौजूद लाइन आइटम पर असर डालते हैं और कीमतें बदल सकते हैं और छूट दे सकते हैं। ये स्क्रिप्ट तब चलाए जाते हैं, जब कार्ट में कोई बदलाव किया जाता है।
लाइन आइटम स्क्रिप्ट जो किसी सब्सक्रिप्शन पर छूट देते हैं, वे सिर्फ़ सब्सक्रिप्शन के पहले पेमेंट पर लागू होते हैं। बाद के पेमेंट पर स्क्रिप्ट द्वारा छूट नहीं दी जाती है।
कुछ तरीकों का इस्तेमाल सिर्फ़ लाइन आइटम स्क्रिप्ट में किया जा सकता है।
शिपिंग स्क्रिप्ट
शिपिंग स्क्रिप्ट, शिपिंग के साथ इंटरैक्ट करते हैं और शिपिंग के तरीकों को बदल सकते हैं और शिपिंग दरों पर छूट दे सकते हैं। ये स्क्रिप्ट तब चलाए जाते हैं, जब चेकआउट शिपिंग विकल्प पेज पर पहुंचता है।
सब्सक्रिप्शन की शिपिंग दर पर छूट देने वाले शिपिंग स्क्रिप्ट, सिर्फ़ सब्सक्रिप्शन के पहले पेमेंट पर लागू होते हैं। बाद के पेमेंट पर स्क्रिप्ट से छूट नहीं दी जाती।
<p>Some methods <a href="#shipping-methods">can only be used in shipping scripts</a>.</p>पेमेंट स्क्रिप्ट
पेमेंट स्क्रिप्ट, पेमेंट के साथ इंटरैक्ट करते हैं और पेमेंट गेटवे का नाम बदल सकते हैं, उन्हें छिपा सकते हैं और फिर से ऑर्डर कर सकते हैं। ध्यान दें कि पेमेंट स्क्रिप्ट, चेकआउट स्क्रीन से पहले दिखाए गए पेमेंट गेटवे के साथ इंटरैक्ट नहीं करते हैं, जैसे कि Apple Pay। ये स्क्रिप्ट तब चलाए जाते हैं, जब चेकआउट पेमेंट पेज पर पहुंचता है।
कुछ तरीकों का इस्तेमाल सिर्फ़ पेमेंट स्क्रिप्ट में किया जा सकता है।
इस पेज पर
सामान्य तरीके
नीचे दिए गए तरीकों का इस्तेमाल किसी भी तरह के स्क्रिप्ट में किया जा सकता है:
इनपुट
| तरीका | रिटर्न का प्रकार | विवरण |
|---|---|---|
| .cart | कार्ट | यह एक म्युटेबल कार्ट ऑब्जेक्ट रिटर्न करता है। |
| .locale | स्ट्रिंग | ग्राहक की स्थानीय भाषा रिटर्न करता है। उदाहरण के लिए, en, fr, या pt-BR। |
कार्ट
कार्ट ऑब्जेक्ट सिर्फ़ ऑनलाइन स्टोर पर उपलब्ध है। कुछ अधूरी खरीद प्रक्रियाओं में कार्ट ऑब्जेक्ट का एक्सेस होता है। हालांकि, अगर कोई चेकआउट बंद कर दिया गया है और फिर कोई ग्राहक अधूरी खरीद प्रक्रिया पर जाता है, तो यह उन्हें पहले से भरे हुए चेकआउट पर भेजता है और कार्ट ऑब्जेक्ट अब मौजूद नहीं रहता है। ऐसा इसलिए है, क्योंकि स्टोरफ़्रंट को अधूरी खरीद प्रक्रिया के ईमेल द्वारा बायपास कर दिया गया है।
| तरीका | रिटर्न का प्रकार | विवरण |
|---|---|---|
| .customer | ग्राहक | कार्ट के मालिक को रिटर्न करता है (अगर कोई हो)। |
| .shipping_address | ShippingAddress | कार्ट के मालिक का शिपिंग पता रिटर्न करता है (अगर कोई हो)। |
| .discount_code | विभिन्न |
रिटर्न करता है:
अगर कार्ट पर छूट लागू की गई है, तो |
CartDiscount::FixedAmount
| तरीका | रिटर्न का प्रकार | विवरण |
|---|---|---|
| .code | स्ट्रिंग | छूट लागू करने के लिए इस्तेमाल किया गया डिस्काउंट कोड रिटर्न करता है। |
| .amount | Money | छूट की राशि रिटर्न करता है। |
| .reject({ message: String }) | nil | कार्ट पर लागू किए गए डिस्काउंट कोड को अस्वीकार करता है। एक message ज़रूरी है। |
| .rejected? | बूलियन | यह रिटर्न करता है कि डिस्काउंट कोड को अस्वीकार किया गया था या नहीं। |
CartDiscount::Percentage
| तरीका | रिटर्न का प्रकार | विवरण |
|---|---|---|
| .code | स्ट्रिंग | छूट लागू करने के लिए इस्तेमाल किया गया डिस्काउंट कोड रिटर्न करता है। |
| .percentage | दशमलव | छूट की प्रतिशत राशि देता है. |
| .reject({ message: String }) | nil | कार्ट पर लागू किए गए डिस्काउंट कोड को अस्वीकार करता है। एक message ज़रूरी है। |
| .rejected? | बूलियन | यह रिटर्न करता है कि डिस्काउंट कोड को अस्वीकार किया गया था या नहीं। |
CartDiscount::Shipping
| तरीका | रिटर्न का प्रकार | विवरण |
|---|---|---|
| .code | स्ट्रिंग | छूट लागू करने के लिए इस्तेमाल किया गया डिस्काउंट कोड रिटर्न करता है। |
| .reject({ message: String }) | nil | कार्ट पर लागू किए गए डिस्काउंट कोड को अस्वीकार करता है। एक message ज़रूरी है। |
| .rejected? | बूलियन | यह रिटर्न करता है कि डिस्काउंट कोड को अस्वीकार किया गया था या नहीं। |
ग्राहक
| तरीका | रिटर्न का प्रकार | विवरण |
|---|---|---|
| .id | Integer | ग्राहक का आईडी नंबर देता है. |
| स्ट्रिंग | ग्राहक का ईमेल पता देता है. | |
| .tags | List<Tag> | ग्राहक के लिए सेट किए गए किसी भी टैग को दर्शाने वाले स्ट्रिंग की सूची देता है. |
| .orders_count | Integer | एक ग्राहक द्वारा दिए गए ऑर्डर की कुल संख्या देता है. |
| .total_spent | Money | वह कुल राशि देता है जो ग्राहक ने सभी ऑर्डर पर खर्च की है. |
| .accepts_marketing? | बूलियन | यह बताता है कि ग्राहक मार्केटिंग स्वीकार करता है या नहीं. |
लाइन आइटम
| तरीका | रिटर्न का प्रकार | विवरण |
|---|---|---|
| .grams | grams | लाइन आइटम का कुल वज़न देता है. |
| .line_price | Money | लाइन आइटम की कीमत. |
| .discounted? | बूलियन | यह बताता है कि लाइन आइटम की कीमत पर स्क्रिप्ट या मैन्युअल रूप से लागू छूट दी गई है या नहीं। डिस्काउंट कोड का उपयोग, रिटर्न मान को प्रभावित नहीं करता है। |
| .properties | hash | इस लाइन आइटम के लिए निर्दिष्ट की गई प्रॉपर्टी देता है. |
| .variant | Variant | लाइन आइटम द्वारा दर्शाया गया विशिष्ट उत्पाद प्रकार देता है. |
| .quantity | Integer | इस लाइन आइटम की मात्रा देता है. |
| .selling_plan_id | Integer | लाइन आइटम के लिए बिक्री करने के प्लान की आईडी देता है। यह तरीका तब उपयोगी होता है, जब स्टोर सब्सक्रिप्शन बेचता है और आप चाहते हैं कि स्क्रिप्ट यह पता लगाए कि कोई उत्पाद प्रकार सब्सक्रिप्शन के रूप में बेचा जाता है या नहीं। |
सूची
| तरीका | रिटर्न का प्रकार | विवरण |
|---|---|---|
| .new | List | एक सूची को दर्शाने के लिए एक नया ऑब्जेक्ट बनाता है. |
| .[] | एलिमेंट या nil |
निर्दिष्ट इंडेक्स पर एलिमेंट देता है. |
| .& | List |
एक नई सूची देता है जिसमें दोनों सूचियों के कॉमन एलिमेंट होते हैं और कोई डुप्लीकेट नहीं होता. |
| .delete_if | List | एक वैकल्पिक कोड ब्लॉक का उपयोग करके एलिमेंट हटाएं. रूबी के delete_if तरीके के लिए दस्तावेज़ देखें. |
| .empty? | बूलियन |
अगर सूची में कोई एलिमेंट नहीं है, तो |
| .first | एलिमेंट या nil |
पहला एलिमेंट देता है या अगर सूची खाली है, तो |
| .index(*args, &block) | int या nil |
सूची के पहले एलिमेंट का इंडेक्स देता है। अगर तर्क के बजाय एक ब्लॉक दिया जाता है, तो यह उस पहले एलिमेंट का इंडेक्स देता है जिसके लिए ब्लॉक सही है। |
| .rindex(*args, &block) | int या nil |
सूची के अंतिम एलिमेंट का इंडेक्स देता है। अगर तर्क के बजाय एक ब्लॉक दिया जाता है, तो यह उस पहले एलिमेंट का इंडेक्स देता है जिसके लिए ब्लॉक सही है। |
| .last | एलिमेंट या nil |
अंतिम एलिमेंट देता है या अगर सूची खाली है, तो |
| .length | int |
सूची में एलिमेंट की संख्या देता है. |
| .size | int |
length के लिए उपनाम. |
| .each(*args, &block) | List |
सूची में हर एलिमेंट के लिए एक बार ब्लॉक को कॉल करता है, एलिमेंट को ब्लॉक में एक पैरामीटर के रूप में पास करता है. |
शिपिंग पता
| तरीका | रिटर्न का प्रकार | विवरण |
|---|---|---|
| .name | स्ट्रिंग | शिपिंग पते से जुड़े व्यक्ति का नाम देता है. |
| .address1 | स्ट्रिंग | शिपिंग पते का गली के पते वाला हिस्सा देता है. |
| .address2 | स्ट्रिंग | शिपिंग पते के गली के पते वाले हिस्से का वैकल्पिक अतिरिक्त फ़ील्ड देता है. |
| .phone | स्ट्रिंग | शिपिंग पते का फ़ोन नंबर देता है. |
| .city | स्ट्रिंग | शिपिंग पते का शहर देता है. |
| .zip | स्ट्रिंग | शिपिंग पते का ZIP कोड देता है. |
| .province | स्ट्रिंग | शिपिंग पते का प्रांत/राज्य देता है. |
| .province_code | स्ट्रिंग | शिपिंग पते के प्रांत/राज्य का संक्षिप्त मान देता है. |
| .country_code | स्ट्रिंग | शिपिंग पते के देश का संक्षिप्त मान देता है. |
Money
| तरीका | रिटर्न का प्रकार | विवरण |
|---|---|---|
| .derived_from_presentment(customer_cents:X) | Money | ग्राहक की स्थानीय (ग्राहक को दिखने वाली) मुद्रा से आपके स्टोर की मुद्रा में एक राशि (सेंट में) को रूपांतरित करता है. यह मेथड, customer_cents पैरामीटर को स्वीकार करता है, जो सेंट में एक संख्या स्वीकार करता है. उदाहरण के लिए, Money.derived_from_presentment(customer_cents: 500). |
| .new | Money | कीमत दर्शाने के लिए एक नया ऑब्जेक्ट बनाता है. |
| .zero | Money |
शून्य कीमत वाला एक नया ऑब्जेक्ट बनाता है. |
| + | Money | दो Money ऑब्जेक्ट जोड़ता है. |
| - | Money | एक Money ऑब्जेक्ट से दूसरे को घटाता है. |
| * | Money | एक Money ऑब्जेक्ट को एक संख्या से गुणा करता है. |
Money के उदाहरण
Money.new(cents: 1000)1000 सेंट या $10 दर्शाने वाला एक Money ऑब्जेक्ट बनाता है.
Money.new(cents: 100) * 50$1 दर्शाने वाला एक Money ऑब्जेक्ट बनाता है, फिर उस राशि को 50 से गुणा करता है. $50 दर्शाने वाला एक Money ऑब्जेक्ट वापस करता है.
प्रकार
| तरीका | रिटर्न का प्रकार | विवरण |
|---|---|---|
| .id | Integer | प्रकार का आईडी नंबर वापस करता है. |
| .price | Money | प्रकार का इकाई मूल्य वापस करता है. |
| .product | प्रोडक्ट | प्रकार का संबंधित प्रोडक्ट वापस करता है. |
| .skus | लिस्ट<स्ट्रिंग> | प्रकार के स्टॉक कीपिंग यूनिट (SKU) वापस करता है, जिनका उपयोग अक्सर इन्वेंटरी को ट्रैक करने के लिए किया जाता है. |
| .title | स्ट्रिंग | प्रकार का शीर्षक वापस करता है. |
प्रोडक्ट
| तरीका | रिटर्न का प्रकार | विवरण |
|---|---|---|
| .id | Integer | प्रोडक्ट का आईडी नंबर वापस करता है. |
| .gift_card? | बूलियन | यह बताता है कि प्रोडक्ट गिफ़्ट कार्ड है या नहीं. |
| .tags | List<Tag> | इस प्रोडक्ट के लिए सेट किए गए टैग को दर्शाने वाली स्ट्रिंग की एक सूची वापस करता है. |
| .product_type | स्ट्रिंग | एक वर्गीकरण जिसके साथ किसी प्रोडक्ट को टैग किया जा सकता है, जिसका उपयोग आमतौर पर फ़िल्टर करने और खोजने के लिए किया जाता है. |
| .vendor | स्ट्रिंग | इस प्रोडक्ट का वेंडर वापस करता है. |
Kernel
Kernel, एक Ruby मॉड्यूल है, जो हर क्लास में शामिल होता है. नतीजतन, इसके मेथड हर ऑब्जेक्ट के लिए उपलब्ध होते हैं. ये मेथड ठीक उसी तरह काम करते हैं, जैसे दूसरी भाषाओं में ग्लोबल फ़ंक्शन काम करते हैं.
| तरीका | रिटर्न का प्रकार | विवरण |
|---|---|---|
| .exit | कोई नहीं | मौजूदा स्क्रिप्ट का निष्पादन बिना किसी गड़बड़ी के समाप्त करता है. अगर इसे Output.cart को कुछ भी असाइन करने से पहले चलाया जाता है, तो स्क्रिप्ट का कोई असर नहीं होता है. यह स्क्रिप्ट से बाहर निकलने का एक उपयोगी तरीका है, उदाहरण के लिए, अगर ग्राहक स्क्रिप्ट चलाने के लिए अयोग्य है. |
Kernel का उदाहरण
customer = Input.cart.customer
if customer && customer.email.end_with?("@mycompany.com")
# Employees are not eligible for this promotion.
exit
endलाइन आइटम मेथड
निम्नलिखित मेथड केवल लाइन आइटम स्क्रिप्ट में उपयोग किए जा सकते हैं:
कार्ट
| तरीका | रिटर्न का प्रकार | विवरण |
|---|---|---|
| .subtotal_price_was | Money | किसी भी छूट को लागू करने से पहले कार्ट की सबटोटल कीमत वापस करता है. |
| .subtotal_price_changed? | बूलियन | यह बताता है कि सबटोटल कीमत बदली है या नहीं. |
लाइन आइटम
| तरीका | रिटर्न का प्रकार | विवरण |
|---|---|---|
| .change_line_price(Money new_price, { message: स्ट्रिंग }) | Money | लाइन आइटम की कीमत को निर्दिष्ट राशि में बदलता है. एक message ज़रूरी है. new_price मौजूदा कीमत से कम होनी चाहिए. |
| .original_line_price | Money | स्क्रिप्ट और छूट लागू होने से पहले लाइन आइटम की मूल कीमत वापस करता है. |
| .line_price_was | Money | मौजूदा स्क्रिप्ट द्वारा बदलाव लागू किए जाने से पहले लाइन आइटम की कीमत वापस करता है. |
| .line_price_changed? | बूलियन | यह बताता है कि लाइन आइटम की कीमत बदली है या नहीं. |
| .change_properties(hash new_properties, { message: स्ट्रिंग }) | hash | एक लाइन आइटम के लिए नई प्रॉपर्टी सेट करता है. मूल प्रॉपर्टी हैश को properties_was में स्टोर किया जाता है और मेथड को पास किया गया प्रॉपर्टी हैश, लाइन आइटम के लिए नई प्रॉपर्टी बन जाता है. |
| .properties_was | hash | कोई भी बदलाव लागू होने से पहले लाइन आइटम की मूल प्रॉपर्टी हैश वापस करता है. |
| .properties_changed? | बूलियन | यह बताता है कि लाइन आइटम के लिए प्रॉपर्टी बदली गई हैं या नहीं. |
| .split({ take: Integer }) | लाइन आइटम | एक लाइन आइटम को दो लाइन आइटम में विभाजित करता है. take यह निर्दिष्ट करता है कि नया लाइन आइटम बनाने के लिए मूल लाइन आइटम से कितनी मात्रा हटानी है. |
.split का उदाहरण
यह उदाहरण स्क्रिप्ट, original_line_item नाम के एक लाइन आइटम को दो लाइन आइटम में विभाजित करती है. नए लाइन आइटम की मात्रा 1 है (take: 1 द्वारा निर्दिष्ट). फिर स्क्रिप्ट "Third hat for 5 dollars" मैसेज के साथ नए लाइन आइटम पर छूट वाली कीमत लागू करती है.
if original_line_item.quantity >= 3
new_line_item = original_line_item.split(take: 1)
new_line_item.change_line_price(Money.new(cents: 500), message: "Third hat for 5 dollars")
cart.line_items << new_line_item
endप्रकार
| तरीका | रिटर्न का प्रकार | विवरण |
|---|---|---|
| .compare_at_price | Money | प्रकार का तुलना मूल्य वापस करता है. अगर प्रकार में कोई तुलना मूल्य नहीं है, तो nil वापस करता है. |
शिपिंग के तरीके
निम्नलिखित मेथड, शिपिंग स्क्रिप्ट में इस्तेमाल किए जा सकते हैं:
इनपुट
| तरीका | रिटर्न का प्रकार | विवरण |
|---|---|---|
| .shipping_rates | ShippingRateList | सभी शिपिंग दरों की एक सूची लौटाता है। |
ShippingRateList
| तरीका | रिटर्न का प्रकार | विवरण |
|---|---|---|
| .delete_if | ShippingRateList | वैकल्पिक कोड ब्लॉक का उपयोग करके शिपिंग दरें डिलीट करें। Ruby के delete_if मेथड के लिए डॉक्यूमेंटेशन देखें। |
| .sort! | ShippingRateList | तुलना ऑपरेटर या वैकल्पिक कोड ब्लॉक का उपयोग करके शिपिंग दरों को सॉर्ट करें। Ruby के sort! मेथड के लिए डॉक्यूमेंटेशन देखें। |
| .sort_by! | ShippingRateList | वैकल्पिक कोड ब्लॉक का उपयोग करके शिपिंग दरों को सॉर्ट करें। Ruby के sort_by! मेथड के लिए डॉक्यूमेंटेशन देखें। |
ShippingRate
| तरीका | रिटर्न का प्रकार | विवरण |
|---|---|---|
| .code | स्ट्रिंग | शिपिंग दर का कोड लौटाता है। |
| .markup | Money | अगर लागू हो, तो शिपिंग दर के लिए मार्कअप लौटाता है। |
| .name | स्ट्रिंग | शिपिंग दर का नाम लौटाता है। इसे change_name मेथड का उपयोग करके बदला जा सकता है। |
| .price | Money | शिपिंग दर की कीमत लौटाता है। |
| .source | स्ट्रिंग | अगर प्रासंगिक हो, तो शिपिंग दर से जुड़ा स्रोत (कैरियर) लौटाता है। इसे बदला नहीं जा सकता। |
| .change_name(String new_name) | स्ट्रिंग | शिपिंग दर का नाम (अधिकतम 255 कैरेक्टर) बदलता है। स्रोत को बदलना, डिलीट करना या छिपाना संभव नहीं है। |
| .apply_discount(Money discount, { message: String }) | Money | निर्दिष्ट निश्चित राशि की छूट लागू करता है। कीमत को 0 से कम नहीं किया जा सकता है। एक मैसेज ज़रूरी है। |
| .phone_required? | बूलियन | अगर शिपिंग दर पाने के लिए फ़ोन नंबर की ज़रूरत हो, तो true लौटाता है या अगर फ़ोन नंबर की ज़रूरत न हो, तो false लौटाता है। |
पेमेंट मेथड
निम्नलिखित मेथड का उपयोग पेमेंट स्क्रिप्ट में किया जा सकता है:
इनपुट
| तरीका | रिटर्न का प्रकार | विवरण |
|---|---|---|
| .payment_gateways | PaymentGatewaysList | स्टोर में सभी पेमेंट गेटवे की एक सूची लौटाता है। |
PaymentGatewayList
| तरीका | रिटर्न का प्रकार | विवरण |
|---|---|---|
| .delete_if | PaymentGatewayList | वैकल्पिक कोड ब्लॉक का उपयोग करके पेमेंट गेटवे डिलीट करें। Ruby के delete_if मेथड के लिए डॉक्यूमेंटेशन देखें। |
| .sort! | PaymentGatewayList | तुलना ऑपरेटर या वैकल्पिक कोड ब्लॉक का उपयोग करके पेमेंट गेटवे सॉर्ट करें। Ruby के sort! मेथड के लिए डॉक्यूमेंटेशन देखें। |
| .sort_by! | PaymentGatewayList | वैकल्पिक कोड ब्लॉक का उपयोग करके पेमेंट गेटवे सॉर्ट करें। Ruby के sort_by! मेथड के लिए डॉक्यूमेंटेशन देखें। |
PaymentGateway
| तरीका | रिटर्न का प्रकार | विवरण |
|---|---|---|
| .name | स्ट्रिंग | पेमेंट गेटवे का नाम लौटाता है। |
| .enabled_card_brands | लिस्ट<स्ट्रिंग> |
अगर पेमेंट गेटवे क्रेडिट कार्ड को सपोर्ट करता है, तो यह उन क्रेडिट कार्ड प्रकारों की सूची लौटाता है जिन्हें स्टोर स्वीकार करता है। अगर गेटवे क्रेडिट कार्ड को सपोर्ट नहीं करता है, तो यह एक खाली सूची लौटाता है। |
| .change_name(String new_name) | स्ट्रिंग | पेमेंट गेटवे का नाम बदलता है। लोगो वाले पेमेंट गेटवे का नाम नहीं बदला जा सकता। |
उदाहरण
निम्नलिखित लाइन आइटम स्क्रिप्ट उदाहरण में, जब कोई ग्राहक ऐसा प्रोडक्ट ऑर्डर करता है जो गिफ़्ट कार्ड नहीं है, तो प्रोडक्ट की कीमत $9 कम हो जाती है। साथ ही, ग्राहक ने आपके स्टोर पर सभी विज़िट के दौरान जितनी कुल राशि खर्च की है, वह दिखाई जाती है:
customer = Input.cart.customer
Input.cart.line_items.each do |line_item|
product = line_item.variant.product
next if product.gift_card?
line_item.change_line_price(line_item.line_price - Money.new(cents: 900), message: customer.total_spent)
end
Output.cart = Input.cart
ज़्यादा जानें
इनके बारे में ज़्यादा जानें: