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? | बुलियन | सवलत कोड नाकारला गेला होता की नाही हे परत करते. |
Customer
| पद्धत | रिटर्न प्रकार | वर्णन |
|---|---|---|
| .id | इंटिजर | ग्राहकाचा ID नंबर परत करते. |
| स्ट्रिंग | ग्राहकाचा ईमेल ॲड्रेस परत करते. | |
| .tags | List<Tag> | ग्राहकासाठी सेट केलेले कोणतेही टॅग दर्शवणाऱ्या स्ट्रिंगची सूची परत करते. |
| .orders_count | इंटिजर | ग्राहकाने दिलेल्या ऑर्डरची एकूण संख्या परत करते. |
| .total_spent | Money | ग्राहकाने सर्व ऑर्डरवर खर्च केलेली एकूण रक्कम परत करते. |
| .accepts_marketing? | बुलियन | ग्राहक मार्केटिंग स्वीकारतो की नाही हे परत करते. |
LineItem
| पद्धत | रिटर्न प्रकार | वर्णन |
|---|---|---|
| .grams | grams | लाइन आयटमचे एकूण वजन परत करते. |
| .line_price | Money | लाइन आयटमची किंमत. |
| .discounted? | बुलियन | लाइन आयटमच्या किमतीवर स्क्रिप्टने किंवा मॅन्युअली लागू केलेल्या सवलतीद्वारे सवलत दिली आहे की नाही हे परत करते. सवलत कोड वापरल्याचा रिटर्न व्हॅल्यूवर परिणाम होत नाही. |
| .properties | हॅश | या लाइन आयटमसाठी निर्दिष्ट केलेले गुणधर्म परत करते. |
| .variant | व्हेरिएंट | लाइन आयटमद्वारे दर्शवलेला विशिष्ट उत्पादन व्हेरिएंट परत करते. |
| .quantity | इंटिजर | या लाइन आयटमचे प्रमाण परत करते. |
| .selling_plan_id | इंटिजर | लाइन आयटमसाठी विक्री योजनेचा ID परत करते. जेव्हा स्टोअर सबस्क्रिप्शन विकते आणि एखाद्या उत्पादन व्हेरिएंटची सबस्क्रिप्शन म्हणून विक्री केली जाते, ते स्क्रिप्टने ओळखावे असे तुम्हाला वाटते, तेव्हा ही पद्धत उपयुक्त ठरते. |
List
| पद्धत | रिटर्न प्रकार | वर्णन |
|---|---|---|
| .new | List | सूची दर्शवण्यासाठी नवीन ऑब्जेक्ट तयार करते. |
| .[] | एलिमेंट किंवा nil |
निर्दिष्ट केलेल्या इंडेक्समधील एलिमेंट परत करते. |
| .& | List |
दोन सूचींमध्ये सामायिक असलेले आणि कोणतेही डुप्लिकेट नसलेले एलिमेंट असलेली नवीन सूची परत करते. |
| .delete_if | List | पर्यायी कोड ब्लॉक वापरून एलिमेंट हटवा. Ruby च्या delete_if पद्धतीसाठी दस्तऐवजीकरण पाहा. |
| .empty? | बुलियन |
जर सूचीमध्ये कोणतेही एलिमेंट नसतील, तर |
| .first | एलिमेंट किंवा nil |
पहिले एलिमेंट परत करते किंवा सूची रिकामी असल्यास |
| .index(*args, &block) | int किंवा nil |
सूचीच्या पहिल्या एलिमेंटचा इंडेक्स परत करते. आर्ग्युमेंटऐवजी ब्लॉक दिल्यास, ज्या पहिल्या एलिमेंटसाठी ब्लॉक true आहे त्याचा इंडेक्स परत करते. |
| .rindex(*args, &block) | int किंवा nil |
सूचीच्या शेवटच्या एलिमेंटचा इंडेक्स परत करते. आर्ग्युमेंटऐवजी ब्लॉक दिल्यास, ज्या पहिल्या एलिमेंटसाठी ब्लॉक true आहे त्याचा इंडेक्स परत करते. |
| .last | एलिमेंट किंवा nil |
शेवटचे एलिमेंट परत करते किंवा सूची रिकामी असल्यास |
| .length | int |
सूचीमधील एलिमेंटची संख्या परत करते. |
| .size | int |
length साठी पर्यायी नाव (Alias). |
| .each(*args, &block) | List |
सूचीमधील प्रत्येक एलिमेंटसाठी एकदा ब्लॉक कॉल करते, एलिमेंटला ब्लॉकसाठी पॅरामीटर म्हणून पास करते. |
ShippingAddress
| पद्धत | रिटर्न प्रकार | वर्णन |
|---|---|---|
| .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 ऑब्जेक्ट परत करते.
Variant
| पद्धत | रिटर्न प्रकार | वर्णन |
|---|---|---|
| .id | इंटिजर | व्हेरिएंटचा ID नंबर परत करते. |
| .price | Money | व्हेरिएंटची युनिट किंमत परत करते. |
| .product | Product | व्हेरिएंटशी संबंधित उत्पादन परत करते. |
| .skus | List<String> | व्हेरिएंटचे स्टॉक कीपिंग युनिट्स (SKUs) परत करते, जे सहसा इन्व्हेंटरी ट्रॅक करण्यासाठी वापरले जातात. |
| .title | स्ट्रिंग | व्हेरिएंटचे शीर्षक परत करते. |
Product
| पद्धत | रिटर्न प्रकार | वर्णन |
|---|---|---|
| .id | इंटिजर | उत्पादनाचा ID नंबर परत करते. |
| .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? | बुलियन | उप-एकूण किंमत बदलली आहे की नाही ते परत करते. |
LineItem
| पद्धत | रिटर्न प्रकार | वर्णन |
|---|---|---|
| .change_line_price(Money new_price, { message: String }) | Money | लाइन आयटमची किंमत निर्दिष्ट केलेल्या रकमेत बदला. message आवश्यक आहे. new_price सध्याच्या किंमतीपेक्षा कमी असणे आवश्यक आहे. |
| .original_line_price | Money | स्क्रिप्ट्स आणि सवलती लागू होण्यापूर्वी लाइन आयटमची मूळ किंमत परत करते. |
| .line_price_was | Money | सध्याच्या स्क्रिप्टद्वारे बदल लागू होण्यापूर्वी लाइन आयटमची किंमत परत करते. |
| .line_price_changed? | बुलियन | लाइन आयटमची किंमत बदलली आहे की नाही ते परत करते. |
| .change_properties(hash new_properties, { message: String }) | हॅश | लाइन आयटमसाठी नवीन प्रॉपर्टीज सेट करते. मूळ प्रॉपर्टीज हॅश properties_was मध्ये स्टोअर केले जाते आणि पद्धतीला पास केलेला प्रॉपर्टीज हॅश लाइन आयटमसाठी नवीन प्रॉपर्टीज बनतो. |
| .properties_was | हॅश | कोणतेही बदल लागू होण्यापूर्वी लाइन आयटमचा मूळ प्रॉपर्टीज हॅश परत करते. |
| .properties_changed? | बुलियन | लाइन आयटमसाठी प्रॉपर्टीज बदलल्या आहेत की नाही ते परत करते. |
| .split({ take: Integer }) | LineItem | एका लाइन आयटमला दोन लाइन आयटम्समध्ये विभाजित करते. नवीन लाइन आयटम तयार करण्यासाठी मूळ लाइन आयटममधून किती प्रमाण काढायचे ते 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
endVariant
| पद्धत | रिटर्न प्रकार | वर्णन |
|---|---|---|
| .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 | List<String> |
पेमेंट गेटवे क्रेडिट कार्डला सपोर्ट करत असल्यास, स्टोअर स्वीकारत असलेल्या क्रेडिट कार्ड प्रकारांची सूची मिळवून देते. जर गेटवे क्रेडिट कार्डला सपोर्ट करत नसेल, तर रिक्त सूची मिळवून देते. |
| .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
अधिक जाणून घ्या
याविषयी अधिक जाणून घ्या: