Shopify Scripts API-ს ცნობარი
სკრიპტები იწერება Ruby API-ის გამოყენებით, რომელიც დიდ კონტროლსა და მოქნილობას გაძლევს.
არსებობს სხვადასხვა ტიპის სკრიპტი. სკრიპტის შექმნისას Script Editor აპში მას ენიჭება ტიპი იმის მიხედვით, თუ რომელი სკრიპტის შაბლონს აირჩევ დასაწყებად:
ხაზის ელემენტის სკრიპტები
ხაზის ელემენტის სკრიპტები ზემოქმედებს კალათაში არსებულ ხაზის ელემენტებზე და შეუძლია ფასების შეცვლა და ფასდაკლებების მინიჭება. ეს სკრიპტები ეშვება კალათაში ცვლილების შეტანისას.
ხაზის ელემენტის სკრიპტები, რომლებიც აკეთებს ფასდაკლებას გამოწერაზე, ვრცელდება მხოლოდ გამოწერის პირველ გადახდაზე. შემდგომ გადახდებზე სკრიპტის ფასდაკლება არ ვრცელდება.
ზოგიერთი მეთოდის გამოყენება შესაძლებელია მხოლოდ ხაზის ელემენტის სკრიპტებში.
მიწოდების სკრიპტები
მიწოდების სკრიპტები ურთიერთქმედებს მიწოდებასთან და შეუძლია შეცვალოს მიწოდების მეთოდები და მიანიჭოს ფასდაკლებები მიწოდების ტარიფებზე. ეს სკრიპტები ეშვება, როდესაც შეკვეთის გაფორმება მიწოდების ვარიანტების გვერდს აღწევს.
მიწოდების სკრიპტები, რომლებიც აკეთებს ფასდაკლებას გამოწერის მიწოდების ტარიფზე, ვრცელდება მხოლოდ გამოწერის პირველ გადახდაზე. შემდგომ გადახდებზე სკრიპტის ფასდაკლება არ ვრცელდება.
<p>Some methods <a href="#shipping-methods">can only be used in shipping scripts</a>.</p>გადახდის სკრიპტები
გადახდის სკრიპტები ურთიერთქმედებს გადახდებთან და შეუძლია გადახდის კარიბჭეების სახელის შეცვლა, დამალვა და გადალაგება. გაითვალისწინე, რომ გადახდის სკრიპტები არ ურთიერთქმედებს იმ გადახდის კარიბჭეებთან, რომლებიც ნაჩვენებია გადახდის ეკრანამდე, მაგალითად, Apple Pay-სთან. ეს სკრიპტები ეშვება, როდესაც შეკვეთის გაფორმება გადახდის გვერდს აღწევს.
ზოგიერთი მეთოდის გამოყენება შესაძლებელია მხოლოდ გადახდის სკრიპტებში.
ამ გვერდზე
ზოგადი მეთოდები
შემდეგი მეთოდების გამოყენება შესაძლებელია ნებისმიერი ტიპის სკრიპტში:
შეყვანა
| მეთოდი | დაბრუნების ტიპი | აღწერა |
|---|---|---|
| .cart | Cart | აბრუნებს კალათის ცვლად ობიექტს. |
| .locale | სტრიქონი | აბრუნებს მომხმარებლის ლოკალს. მაგალითად, en, fr ან pt-BR. |
Cart
კალათის ობიექტი ხელმისაწვდომია მხოლოდ ონლაინ მაღაზიაში. ზოგიერთ მიტოვებულ გადახდას აქვს წვდომა კალათის ობიექტზე. თუმცა, თუ შეკვეთის გაფორმება დაიხურა და შემდეგ მომხმარებელი ეწვევა მიტოვებულ გადახდას, ის გადაიყვანს მას წინასწარ შევსებულ შეკვეთის გაფორმების გვერდზე და კალათის ობიექტი აღარ იარსებებს. ეს გამოწვეულია იმით, რომ მიტოვებული გადახდის ელფოსტამ გვერდი აუარა ვიტრინას.
| მეთოდი | დაბრუნების ტიპი | აღწერა |
|---|---|---|
| .customer | Customer | აბრუნებს კალათის მფლობელს (ასეთის არსებობის შემთხვევაში). |
| .shipping_address | ShippingAddress | აბრუნებს კალათის მფლობელის მიწოდების მისამართს (ასეთის არსებობის შემთხვევაში). |
| .discount_code | ცვალებადია |
აბრუნებს:
|
CartDiscount::FixedAmount
| მეთოდი | დაბრუნების ტიპი | აღწერა |
|---|---|---|
| .code | სტრიქონი | აბრუნებს ფასდაკლების კოდს, რომელიც გამოიყენება ფასდაკლების დასაწესებლად. |
| .amount | Money | აბრუნებს ფასდაკლების ფულად ოდენობას. |
| .reject({ message: String }) | nil | უარყოფს კალათაში გამოყენებულ ფასდაკლების კოდს. სავალდებულოა message. |
| .rejected? | Boolean | აბრუნებს ინფორმაციას იმის შესახებ, უარყოფილია თუ არა ფასდაკლების კოდი. |
CartDiscount::Percentage
| მეთოდი | დაბრუნების ტიპი | აღწერა |
|---|---|---|
| .code | სტრიქონი | აბრუნებს ფასდაკლების კოდს, რომელიც გამოიყენება ფასდაკლების დასაწესებლად. |
| .percentage | Decimal | აბრუნებს ფასდაკლების პროცენტულ ოდენობას. |
| .reject({ message: String }) | nil | უარყოფს კალათაში გამოყენებულ ფასდაკლების კოდს. სავალდებულოა message. |
| .rejected? | Boolean | აბრუნებს ინფორმაციას იმის შესახებ, უარყოფილია თუ არა ფასდაკლების კოდი. |
CartDiscount::Shipping
| მეთოდი | დაბრუნების ტიპი | აღწერა |
|---|---|---|
| .code | სტრიქონი | აბრუნებს ფასდაკლების კოდს, რომელიც გამოიყენება ფასდაკლების დასაწესებლად. |
| .reject({ message: String }) | nil | უარყოფს კალათაში გამოყენებულ ფასდაკლების კოდს. სავალდებულოა message. |
| .rejected? | Boolean | აბრუნებს ინფორმაციას იმის შესახებ, უარყოფილია თუ არა ფასდაკლების კოდი. |
Customer
| მეთოდი | დაბრუნების ტიპი | აღწერა |
|---|---|---|
| .id | Integer | აბრუნებს მომხმარებლის ID ნომერს. |
| სტრიქონი | აბრუნებს მომხმარებლის ელფოსტის მისამართს. | |
| .tags | List<Tag> | აბრუნებს სტრიქონების სიას, რომლებიც წარმოადგენს მომხმარებლისთვის დაყენებულ ნებისმიერ თეგს. |
| .orders_count | Integer | აბრუნებს მომხმარებლის მიერ განთავსებული შეკვეთების საერთო რაოდენობას. |
| .total_spent | Money | აბრუნებს მომხმარებლის მიერ ყველა შეკვეთაზე დახარჯულ მთლიან თანხას. |
| .accepts_marketing? | Boolean | აბრუნებს ინფორმაციას იმის შესახებ, ეთანხმება თუ არა მომხმარებელი მარკეტინგს. |
LineItem
| მეთოდი | დაბრუნების ტიპი | აღწერა |
|---|---|---|
| .grams | grams | აბრუნებს ხაზის ელემენტის მთლიან წონას. |
| .line_price | Money | ხაზის ელემენტის ფასი. |
| .discounted? | Boolean | აბრუნებს ინფორმაციას იმის შესახებ, შემცირდა თუ არა ხაზის ელემენტის ფასი სკრიპტით ან ხელით გამოყენებული ფასდაკლებით. ფასდაკლების კოდების გამოყენება არ მოქმედებს დაბრუნებულ მნიშვნელობაზე. |
| .properties | hash | აბრუნებს ამ ხაზის ელემენტებისთვის მითითებულ თვისებებს. |
| .variant | Variant | აბრუნებს პროდუქტის კონკრეტულ ვარიანტს, რომელსაც წარმოადგენს ხაზის ელემენტი. |
| .quantity | Integer | აბრუნებს ამ ხაზის ელემენტის რაოდენობას. |
| .selling_plan_id | Integer | აბრუნებს გაყიდვის გეგმის ID-ს ხაზის ელემენტისთვის. ეს მეთოდი სასარგებლოა მაშინ, როდესაც მაღაზია ყიდის გამოწერებს და გსურს, რომ სკრიპტმა აღმოაჩინოს, როდის იყიდება პროდუქტის ვარიანტი გამოწერის სახით. |
List
| მეთოდი | დაბრუნების ტიპი | აღწერა |
|---|---|---|
| .new | List | ქმნის ახალ ობიექტს სიის წარმოსადგენად. |
| .[] | ელემენტი ან nil |
აბრუნებს ელემენტს მითითებულ ინდექსზე. |
| .& | List |
აბრუნებს ახალ სიას, რომელიც შეიცავს ორივე სიისთვის საერთო ელემენტებს დუბლიკატების გარეშე. |
| .delete_if | List | შლის ელემენტებს არასავალდებულო კოდის ბლოკის გამოყენებით. იხილე დოკუმენტაცია Ruby-ს მეთოდისთვის delete_if. |
| .empty? | Boolean |
აბრუნებს მნიშვნელობას |
| .first | ელემენტი ან nil |
აბრუნებს პირველ ელემენტს ან |
| .index(*args, &block) | int ან nil |
აბრუნებს სიის პირველი ელემენტის ინდექსს. თუ არგუმენტის ნაცვლად მოცემულია ბლოკი, აბრუნებს იმ პირველი ელემენტის ინდექსს, რომლისთვისაც ბლოკი არის true. |
| .rindex(*args, &block) | int ან nil |
აბრუნებს სიის ბოლო ელემენტის ინდექსს. თუ არგუმენტის ნაცვლად მოცემულია ბლოკი, აბრუნებს იმ პირველი ელემენტის ინდექსს, რომლისთვისაც ბლოკი არის true. |
| .last | ელემენტი ან nil |
აბრუნებს ბოლო ელემენტს ან |
| .length | int |
აბრუნებს სიაში არსებული ელემენტების რაოდენობას. |
| .size | int |
length-ის ალიასი. |
| .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)ქმნის Money ობიექტს, რომელიც წარმოადგენს 1000 ცენტს, ანუ $10-ს.
Money.new(cents: 100) * 50ქმნის Money ობიექტს, რომელიც წარმოადგენს $1-ს, შემდეგ ამრავლებს ამ თანხას 50-ზე. აბრუნებს Money ობიექტს, რომელიც წარმოადგენს $50-ს.
ვარიანტი
| მეთოდი | დაბრუნების ტიპი | აღწერა |
|---|---|---|
| .id | Integer | აბრუნებს ვარიანტის ID ნომერს. |
| .price | Money | აბრუნებს ვარიანტის ერთეულის ფასს. |
| .product | Product | აბრუნებს ვარიანტთან ასოცირებულ პროდუქტს. |
| .skus | List<String> | აბრუნებს ვარიანტის მარაგის აღრიცხვის ერთეულებს (SKU), რომლებიც ხშირად გამოიყენება მარაგის თვალყურის სადევნებლად. |
| .title | სტრიქონი | აბრუნებს ვარიანტის სათაურს. |
პროდუქტი
| მეთოდი | დაბრუნების ტიპი | აღწერა |
|---|---|---|
| .id | Integer | აბრუნებს პროდუქტის ID ნომერს. |
| .gift_card? | Boolean | აბრუნებს, არის თუ არა პროდუქტი სასაჩუქრე ბარათი. |
| .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ხაზის ელემენტის მეთოდები
შემდეგი მეთოდების გამოყენება შესაძლებელია მხოლოდ ხაზის ელემენტის სკრიპტებში:
Cart
| მეთოდი | დაბრუნების ტიპი | აღწერა |
|---|---|---|
| .subtotal_price_was | Money | აბრუნებს კალათის ქვეჯამის ფასს ფასდაკლებების გამოყენებამდე. |
| .subtotal_price_changed? | Boolean | აბრუნებს, შეიცვალა თუ არა ქვეჯამის ფასი. |
LineItem
| მეთოდი | დაბრუნების ტიპი | აღწერა |
|---|---|---|
| .change_line_price(Money new_price, { message: String }) | Money | ცვლის ხაზის ელემენტის ფასს მითითებული თანხით. message სავალდებულოა. new_price უნდა იყოს მიმდინარე ფასზე ნაკლები. |
| .original_line_price | Money | აბრუნებს ხაზის ელემენტის თავდაპირველ ფასს სკრიპტებისა და ფასდაკლებების გამოყენებამდე. |
| .line_price_was | Money | აბრუნებს ხაზის ელემენტის ფასს მიმდინარე სკრიპტის მიერ ცვლილებების განხორციელებამდე. |
| .line_price_changed? | Boolean | აბრუნებს, შეიცვალა თუ არა ხაზის ელემენტის ფასი. |
| .change_properties(hash new_properties, { message: String }) | hash | აყენებს ახალ თვისებებს ხაზის ელემენტისთვის. თვისებების ორიგინალი ჰეში ინახება properties_was-ში და თვისებების ჰეში, რომელიც გადაეცემა მეთოდს, ხდება ხაზის ელემენტის ახალი თვისებები. |
| .properties_was | hash | აბრუნებს ხაზის ელემენტის თვისებების ორიგინალ ჰეშს ნებისმიერი ცვლილების განხორციელებამდე. |
| .properties_changed? | Boolean | აბრუნებს, შეიცვალა თუ არა ხაზის ელემენტის თვისებები. |
| .split({ take: Integer }) | LineItem | ყოფს ერთ ხაზის ელემენტს ორ ხაზის ელემენტად. take მიუთითებს რა რაოდენობა უნდა მოიხსნას თავდაპირველი ხაზის ელემენტიდან ახალი ხაზის ელემენტის შესაქმნელად. |
.split-ის მაგალითი
სკრიპტის ეს მაგალითი original_line_item-ის სახელწოდების მქონე ხაზის ელემენტს ორ ხაზის ელემენტად ყოფს. ახალი ხაზის ელემენტის რაოდენობაა 1 (მითითებულია, როგორც take: 1). ამის შემდეგ, სკრიპტი ახალ ხაზის ელემენტს ფასდაკლებას უკეთებს და ართავს შეტყობინებას: „Third hat for 5 dollars“ (მესამე ქუდი 5 დოლარად).
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? | Boolean | აბრუნებს 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
შეიტყვეთ მეტი
შეიტყვეთ მეტი შემდეგის შესახებ: