Informacje dotyczące interfejsu API Shopify Scripts

Skrypty są pisane przy użyciu interfejsu API Ruby, który zapewnia dużą kontrolę i elastyczność.

Istnieją różne typy skryptów. Typ przypisuje się do skryptu podczas tworzenia skryptu w aplikacji Script Editor na podstawie wybranego szablonu skryptu:

Skrypty pozycji pojedynczych

Skrypty pozycji pojedynczych wpływają na pozycje w koszyku i mogą zmieniać ceny oraz przyznawać rabaty. Skrypty te są uruchamiane po dokonaniu zmiany w koszyku.

Skrypty pozycji pojedynczych obniżające opłatę subskrypcyjną mają zastosowanie tylko do pierwszej płatności za subskrypcję. Kolejne płatności za subskrypcję nie są obniżane przez skrypt.

Niektóre metodymogą być stosowane tylko w skryptach pozycji liniowych.

Skrypty wysyłki

Skrypty wysyłki współdziałają zwysyłkąi mogą zmieniać metody wysyłki oraz przyznawać rabaty na stawki wysyłki. Skrypty te są uruchamiane po przejściu na stronę opcji wysyłki podczas realizacji zakupu.

Skrypty pozycji obniżające stawkę wysyłki subskrypcji mają zastosowanie tylko do pierwszej płatności za subskrypcję. Kolejne płatności nie są obniżane przez skrypt.

Niektóre metodymogą być stosowane tylko w skryptach wysyłki.

Skrypty płatności

Skrypty płatności współdziałają zpłatnościamii mogą zmieniać nazwy, ukrywać i zmieniać kolejność bramek płatniczych Należy pamiętać, że skrypty płatności nie działają z bramkami płatniczymi wyświetlanymi przed ekranem realizacji zakupu, takimi jak Apple Pay. Takie skrypty są uruchamiane po przejściu na stronę płatności podczas realizacji zakupu.

Niektóre metodymogą być stosowane tylko w skryptach płatności.

Metody ogólne

Poniższe metody można stosować w każdym typie skryptu:

Dane wejściowe

Metody skryptu wykorzystujące dane wejściowe
Metoda Typ zwrotu Opis
.cart Koszyk Zwraca modyfikowalny obiekt Koszyk.
.locale ciąg znaków Zwraca ustawienia regionalne klienta. Na przykładen,frlubpt-BR.

Koszyk

Obiekt Koszyk jest dostępny tylko w sklepie online. Dostęp do obiektu Koszyk jest możliwy w przypadku niektórych przerwanych realizacji zakupu. Jeśli jednak strona realizacji zakupu została zamknięta, klient próbujący wyświetlić stronę przerwanej realizacji zakupu zostaje przekierowany na wstępnie wypełnioną stronę realizacji zakupu, a obiekt Koszyk już nie istnieje. Jest to spowodowane pominięciem witryny sklepu przez e-mail dotyczący przerwanej realizacji zakupu.

Metody skryptu wykorzystujące obiekt Koszyk
Metoda Typ zwrotu Opis
.customer Klient Zwraca właściciela koszyka (jeśli istnieje).
.shipping_address ShippingAddress Zwraca adres wysyłki właściciela koszyka (jeśli istnieje).
.discount_code różny Zwroty:

discount_codejest obecny, jeśli do koszyka zastosowano rabat. Nie musi to oznaczać zmiany ceny koszyka. Na przykład, jeśli rabat dotyczy koszyków o wartości powyżej 50 zł, a skrypt obniża cenę koszyka poniżej 50 zł,discount_codeistnieje nadal, ale cena koszyka się nie zmienia.

Zobacz przykładdiscount_code.

.line_items List Zwraca listę zawierającą pozycje pojedyncze w koszyku.
.presentment_currency List Zwraca walutę lokalną (wyświetlaną) klienta (w formacieISO 4217). Na przykład USD.
.subtotal_price Pieniądze Zwraca sumę częściową ceny koszyka po zastosowaniu rabatów dla pozycji pojedynczych, ale przed zastosowaniem kodów rabatowych.
.total_weight gramy Zwraca całkowitą wagę wszystkich pozycji pojedynczych w koszyku.

CartDiscount::FixedAmount

Metody skryptu wykorzystujące obiekt CartDiscount::FixedAmount
Metoda Typ zwrotu Opis
.code Ciąg znaków Zwraca kod rabatowy użyty do zastosowania rabatu.
.amount Pieniądze Zwraca kwotę rabatu.
.reject({ message: String }) Zero Odrzuca kod rabatowy zastosowany do koszyka. Wymagana jest wiadomośćmessage.
.rejected? Wartość logiczna Wskazuje, czy kod rabatowy został odrzucony.

CartDiscount::Percentage

Metody skryptu wykorzystujące obiekt CartDiscount::Percentage
Metoda Typ zwrotu Opis
.code Ciąg znaków Zwraca kod rabatowy użyty do zastosowania rabatu.
.percentage Ułamek dziesiętny Zwraca kwotę procentową rabatu.
.reject({ message: String }) Zero Odrzuca kod rabatowy zastosowany do koszyka. Wymagana jest wiadomośćmessage.
.rejected? Wartość logiczna Wskazuje, czy kod rabatowy został odrzucony.

CartDiscount::Shipping

Metody skryptu wykorzystujące obiekt CartDiscount::Shipping
Metoda Typ zwrotu Opis
.code Ciąg znaków Zwraca kod rabatowy użyty do zastosowania rabatu.
.reject({ message: String }) Zero Odrzuca kod rabatowy zastosowany do koszyka. Wymagana jest wiadomośćmessage.
.rejected? Wartość logiczna Wskazuje, czy kod rabatowy został odrzucony.

Klient

Metody skryptu wykorzystujące obiekt Klient
Metoda Typ zwrotu Opis
.id Liczba całkowita Zwraca numer identyfikacyjny klienta.
.email Ciąg znaków Zwraca adres e-mail klienta.
.tags List Zwraca listę ciągów znaków reprezentujących wszystkie tagi ustawione dla klienta.
.orders_count Liczba całkowita Zwraca całkowitą liczbę zamówień złożonych przez klienta.
.total_spent Pieniądze Zwraca całkowitą kwotę wydaną przez klienta na wszystkie zamówienia.
.accepts_marketing? Wartość logiczna Określa, czy klient wyraża zgodę na marketing.

LineItem

gramy Zwraca całkowitą wagę pozycji pojedynczej.
Metody skryptu wykorzystujące obiekt LineItem
Metoda Typ zwrotu Opis
.grams
.line_price Pieniądze Cena pozycji pojedynczej
.discounted? Wartość logiczna Zwraca informację, czy cena pozycji została obniżona przez skrypt czy ręcznie zastosowany rabat. Użycie kodów rabatowych nie wpływa na zwracaną wartość.
.properties hash Zwraca właściwości, które zostały określone dla tej pozycji pojedynczej
.variant Wariant Zwraca określony wariant produktu reprezentowany przez pozycję pojedynczą.
.quantity Liczba całkowita Zwraca ilość tej pozycji pojedynczej.
.selling_plan_id Liczba całkowita Zwraca identyfikator planu sprzedaży dla pozycji. Ta metoda jest przydatna, gdy sklep sprzedaje subskrypcje i chcesz, aby skrypt wykrył, kiedy wariant produktu jestsprzedawany w ramach subskrypcji.

Lista

Metody skryptu wykorzystujące obiekt Lista
Metoda Typ zwrotu Opis
.new Lista Tworzy nowy obiekt do reprezentowania listy.
.[] Element lub brak

Zwraca element pod określonym indeksem.

.& Lista

Zwraca nową listę zawierającą elementy wspólne dla dwóch list, bez duplikatów.

.delete_if Lista Usuwanie elementów za pomocą opcjonalnego bloku kodu. Zapoznaj się z dokumentacjąmetody języka Rubydelete_if.
.empty? Wartość logiczna

Zwraca wartośćtrue, jeśli lista nie zawiera żadnych elementów.

.first Element lub brak

Zwraca pierwszy element lubnil李,我ślista jest pusta。

.index(*args, &block) int lub nil

Zwraca indeks pierwszego elementu listy. Jeśli zamiast argumentu zostanie podany blok, zwraca indeks pierwszego elementu, dla którego blok ma wartość PRAWDA.

.rindex(*args, &block) int lub nil

Zwraca indeks ostatniego elementu listy. Jeśli zamiast argumentu zostanie podany blok, zwraca indeks pierwszego elementu, dla którego blok ma wartość PRAWDA.

.last Element lub brak

Zwraca ostatni element lubnil李,我ślista jest pusta。

.length int

Zwraca liczbę elementów na liście.

.size int

Alias dla długości.

.each(*args, &block) Lista

Wywołuje blok jednorazowo dla każdego elementu na liście, przekazując element jako parametr do bloku.

ShippingAddress

Metody skryptu wykorzystujące obiekt ShippingAddress
Metoda Typ zwrotu Opis
.name ciąg znaków Zwraca nazwisko osoby powiązanej z adresem wysyłki.
.address1 ciąg znaków Zwraca część adresu ulicy z adresu wysyłki.
.address2 ciąg znaków Zwraca opcjonalne dodatkowe pole części adresu ulicy z adresu wysyłki.
.phone ciąg znaków Zwraca numer telefonu z adresu wysyłki.
.city ciąg znaków Zwraca miasto z adresu wysyłki.
.zip ciąg znaków Zwraca kod pocztowy z adresu wysyłki.
.province ciąg znaków Zwraca województwo/prowincję/stan z adresu wysyłki.
.province_code ciąg znaków Zwraca skróconą wartość województwa/prowincji/stanu z adresu wysyłki.
.country_code ciąg znaków Zwraca skróconą wartość kraju z adresu wysyłki.

Pieniądze

Metody skryptu wykorzystujące obiekt Pieniądze
Metoda Typ zwrotu Opis
.derived_from_presentment(customer_cents:X) Pieniądze Konwertuje kwotę (w centach) z lokalnej (wyświetlanej) waluty klienta na walutę sklepu. W tej metodzie przyjmowany jest parametrcustomer_cents, który przyjmuje liczbę w centach. Na przykładMoney.derived_from_presentment(customer_cents: 500).
.new Pieniądze Tworzy nowy obiekt reprezentujący cenę.
.zero Pieniądze

Tworzy nowy obiekt z ceną wynoszącą zero.

+ Pieniądze Dodaje dwa obiektyPieniądze.
- Pieniądze Odejmuje jeden obiektPieniądzeod innego.
* Pieniądze Mnoży obiektPieniądzeprzez liczbę.

Przykłady obiektów Money

Money.new(cents:1000)

Tworzy obiektMoneyreprezentujący 1000 centów lub 10 USD.

Money.new(cents:100)*50

Tworzy obiektMoneyreprezentujący 1 USD, a następnie mnoży tę kwotę przez 50. Zwraca obiektMoneyreprezentujący 50 USD.

Wariant

Metody skryptu wykorzystujące obiekt Wariant
Metoda Typ zwrotu Opis
.id Liczba całkowita Zwraca numer identyfikacyjny wariantu.
.price Pieniądze Zwraca cenę jednostkową wariantu.
.product Produkt Zwraca powiązany produkt wariantu.
.skus List Zwraca jednostki magazynowania (SKU) wariantu, które są często używane do śledzenia zapasów.
.title Ciąg znaków Zwraca tytuł wariantu.

Produkt

Metody skryptu wykorzystujące obiekt Produkt
Metoda Typ zwrotu Opis
.id Liczba całkowita Zwraca numer identyfikacyjny produktu.
.gift_card? Wartość logiczna Wskazuje, czy produkt jest kartą prezentową.
.tags List Zwraca listę ciągów znaków reprezentujących tagi ustawione dla tego produktu.
.product_type Ciąg znaków Kategoryzacja, za pomocą której produkt można oznaczyć produkt, używana często do filtrowania i wyszukiwania.
.vendor Ciąg znaków Zwraca dostawcę tego produktu.

Kernel

Kernelto moduł Ruby, który jest zawarty w każdej klasie. W rezultacie jego metody są dostępne dla każdego obiektu. Metody te działają w taki sam sposób, jak funkcje globalne w innych językach.

Metody skryptu wykorzystujące obiekt Kernel
Metoda Typ zwrotu Opis
.exit none Kończy wykonywanie bieżącego skryptu bez błędów. W przypadku uruchomienia zanim cokolwiek zostanie przypisane doOutput.cart, skrypt nie przyniesie żadnego efektu. Jest to przydatna metoda wyjścia ze skryptów, jeśli klient nie jest uprawniony do uruchomienia skryptu.

Przykład obiektu Kernel

customer=Input.cart.customerifcustomer&&customer.email.end_with?("@mycompany.com")# Employees are not eligible for this promotion.exitend

Metody pozycji pojedynczych

Poniższe metody są używane tylko wskryptach pozycji pojedynczych:

Koszyk

Metody skryptu wykorzystujące obiekt Koszyk w skryptach pozycji pojedynczych
Metoda Typ zwrotu Opis
.subtotal_price_was Pieniądze Zwraca sumę częściową koszyka przed zastosowaniem rabatów.
.subtotal_price_changed? Wartość logiczna Określa, czy zmieniła się cena cząstkowa.

LineItem

Metody skryptu wykorzystujące obiekt LineItem w skryptach pozycji pojedynczych
Metoda Typ zwrotu Opis
.change_line_price(Pieniądzenew_price, { message:String}) Pieniądze Zmienia cenę pozycji pojedynczej na określoną kwotę. Wymagana jest wiadomośćmessage. Nowa cenanew_pricemusi być niższa od bieżącej.
.original_line_price Pieniądze Zwraca oryginalną cenę pozycji pojedynczej przed zastosowaniem skryptów i rabatów.
.line_price_was Pieniądze Zwraca cenę pozycji pojedynczej przed zastosowaniem zmian przez bieżący skrypt.
.line_price_changed? Wartość logiczna Określa, czy cena pozycji pojedynczej uległa zmianie.
.change_properties(hashnew_properties, { message:String}) hash Ustawia nowe właściwości pozycji pojedynczej. Skrót właściwości oryginalnych jest przechowywany wproperties_was, a skrót właściwości przekazany do metody staje się nowymi właściwościami pozycji pojedynczej.
.properties_was hash Zwraca skrót oryginalnych właściwości pozycji pojedynczej przed zastosowaniem zmian.
.properties_changed? Wartość logiczna Określa, czy właściwości pozycji pojedynczej uległy zmianie.
.split({ take:Integer}) LineItem Dzieli pozycję pojedynczą na dwie pozycje.takeokreśla, jaką ilość należy usunąć z oryginalnej pozycji pojedynczej, aby utworzyć nową pozycję.

Przykładowy .split

Ten przykładowy skrypt dzieli pozycję pojedynczą o nazwieoriginal_line_itemna dwie pozycje. Nowa pozycja pojedyncza ma ilość 1 (określoną przeztake: 1). Następnie skrypt stosuje obniżoną cenę do nowej pozycji pojedynczej z wiadomością: „Trzeci kapelusz za 5 dolarów”.

iforiginal_line_item.quantity>=3new_line_item=original_line_item.split(take:1)new_line_item.change_line_price(Money.new(cents:500),message:“第三5美元帽”)cart.line_items<<new_line_itemend

Wariant

Metody skryptu wykorzystujące obiekt Wariant w skryptach pozycji pojedynczych
Metoda Typ zwrotu Opis
.compare_at_price Pieniądze Zwraca cenę do porównania wariantu. Zwracanil, jeśli wariant nie ma ceny do porównania.

Metody wysyłki

Poniższe metody są używane wskryptach wysyłki:

Dane wejściowe

Metody skryptu wykorzystujące obiekt Dane wejściowe w skryptach wysyłki
Metoda Typ zwrotu Opis
.shipping_rates ShippingRateList Zwraca listę wszystkich stawek wysyłki.

ShippingRateList

Metody skryptu wykorzystujące obiekt ShippingRateList w skryptach wysyłki
Metoda Typ zwrotu Opis
.delete_if ShippingRateList Usuwanie stawek wysyłki za pomocą opcjonalnego bloku kodu. Zapoznaj się z dokumentacją metody języka Rubydelete_if.
.sort! ShippingRateList Sortowanie stawek wysyłki za pomocą operatora porównania lub opcjonalnego bloku kodu. Zapoznaj się z dokumentacją metody języka Rubysort!.
.sort_by! ShippingRateList Sortowanie stawek wysyłki za pomocą opcjonalnego bloku kodu. Zapoznaj się z dokumentacją metody języka Rubysort_by!.

ShippingRate

Metody skryptu wykorzystujące obiekt ShippingRate w skryptach wysyłki
Metoda Typ zwrotu Opis
.code Ciąg znaków Zwraca kod stawki wysyłki.
.markup Pieniądze Zwraca znacznik stawki wysyłki, jeśli taki występuje.
.name Ciąg znaków Zwraca nazwę stawki wysyłki. Można ją zmienić za pomocą metodychange_name.
.price Pieniądze Zwraca cenę stawki wysyłki.
.source Ciąg znaków Zwraca źródło (przewoźnika) powiązane ze stawką wysyłki (w odpowiednich przypadkach). Nie można go modyfikować.
.change_name(Stringnew_name) Ciąg znaków Zmienia nazwę (maksymalnie 255 znaków) stawki wysyłki. Źródła nie można zmienić, usunąć ani ukryć.
.apply_discount(Pieniądzediscount, { message: String }) Pieniądze Stosuje拉巴特w określonej stałej kwocie。希纳聂może zostać obniżona poniżej 0. Wymagana jest wiadomość.
.phone_required? Wartość logiczna Zwraca wartośćtrue, jeśli numer telefonu jest wymagany do uzyskania stawki wysyłki, lubfalse, jeśli numer telefonu nie jest wymagany.

Metody płatności

Poniższe metody są używane wskryptach płatności:

Dane wejściowe

Metody skryptu wykorzystujące obiekt Dane wejściowe w skryptach płatności
Metoda Typ zwrotu Opis
.payment_gateways PaymentGatewaysList Zwraca listę wszystkich bramek płatniczych w sklepie.

PaymentGatewayList

Metody skryptu wykorzystujące obiekt PaymentGatewayList w skryptach płatności
Metoda Typ zwrotu Opis
.delete_if PaymentGatewayList Usuwanie bramek płatniczych pomocą opcjonalnego bloku kodu. Zapoznaj się z dokumentacją metody języka Rubydelete_if.
.sort! PaymentGatewayList Sortowanie bramek płatniczych za pomocą operatora porównania lub opcjonalnego bloku kodu. Zapoznaj się z dokumentacją metody języka Rubysort!.
.sort_by! PaymentGatewayList Sortowanie bramek płatniczych za pomocą opcjonalnego bloku kodu. Zapoznaj się z dokumentacją metody języka Rubysort_by!.

PaymentGateway

Metoda Typ zwrotu Opis
.name Ciąg znaków Zwraca nazwę bramki płatniczej.
.enabled_card_brands List

我李śbramka płatnicza观察ługuje karty kredytowe,zwraca listę typów kart kredytowych akceptowanych w sklepie. Jeśli bramka nie obsługuje kart kredytowych, zwraca pustą listę.

.change_name(Stringnew_name) Ciąg znaków Zmienia nazwę bramki płatniczej. Nie można zmienić nazwy bramek płatniczych z logo.

Przykłady

W poniższym przykładzie skryptu pozycji pojedynczej, gdy klient zamawia produkt, który nie jest kartą prezentową, cena produktu jest obniżana o 9 USD. Wyświetlana jest także łączna kwota wydana przez klienta podczas wszystkich wizyt w Twoim sklepie:

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

Dowiedz się więcej

Dowiedz się więcej o:

Gotowy(-a) do rozpoczęcia sprzedaży za pomocą Shopify?

Wypróbuj za darmo