Referenca za Shopify Scripts API
Skripte su napisane pomoću Ruby API-ja koji vam pruža veliku kontrolu i fleksibilnost.
Postoje različiti tipovi skripti. Tip se dodeljuje skripti prilikom kreiranja u aplikaciji Script Editor, na osnovu šablona skripte koji izaberete za početak:
Skripte za stavke
Skripte za stavke utiču na stavke u korpi, mogu da menjaju cene i odobravaju popuste. Ove skripte se izvršavaju kada se napravi promena u korpi.
Skripte za stavke koje daju popust na pretplatu primenjuju se samo na prvo plaćanje pretplate. Skripta ne odobrava popust na naredna plaćanja.
Neke metode mogu da se koriste samo u skriptama za stavke.
Skripte za isporuku
Skripte za isporuku ostvaruju interakciju sa isporukom, i mogu da promene načine isporuke i odobre popuste na cene dostave. Ove skripte se izvršavaju kada naplata dođe do stranice sa opcijama isporuke.
Skripte za isporuku koje daju popust na cenu dostave pretplate primenjuju se samo na prvo plaćanje pretplate. Skripta ne odobrava popust na naredna plaćanja.
<p>Some methods <a href="#shipping-methods">can only be used in shipping scripts</a>.</p>Skripte za plaćanje
Skripte za plaćanje ostvaruju interakciju sa plaćanjima, i mogu da preimenuju, sakriju i promene redosled mrežnih prolaza za plaćanje. Skripte za plaćanje ne ostvaruju interakciju sa mrežnim prolazima za plaćanje koji se prikazuju pre ekrana za naplatu, kao što je Apple Pay. Ove skripte se izvršavaju kada naplata dođe do stranice za plaćanje.
Neke metode mogu da se koriste samo u skriptama za plaćanje.
Na ovoj stranici
Opšte metode
Sledeće metode mogu da se koriste u bilo kom tipu skripte:
Unos
| Metoda | Tip povratne vrednosti | Opis |
|---|---|---|
| .cart | Cart | Vraća promenljivi objekat korpe. |
| .locale | string | Vraća lokalitet kupca. Na primer, en, fr ili pt-BR. |
Cart
Objekat korpe je dostupan samo u internet prodavnici. Neke napuštene naplate imaju pristup objektu korpe. Međutim, ako je naplata zatvorena, a kupac zatim poseti napuštenu naplatu, on se preusmerava na unapred popunjenu naplatu i objekat korpe više ne postoji. To je zato što je izlog zaobiđen imejlom o napuštenoj kasi.
| Metoda | Tip povratne vrednosti | Opis |
|---|---|---|
| .customer | Customer | Vraća vlasnika korpe (ako postoji). |
| .shipping_address | ShippingAddress | Vraća adresu za dostavu vlasnika korpe (ako postoji). |
| .discount_code | razlikuje se |
Vraća:
|
CartDiscount::FixedAmount
| Metoda | Tip povratne vrednosti | Opis |
|---|---|---|
| .code | String | Vraća kôd za popust koji se koristi za primenu popusta. |
| .amount | Money | Vraća novčani iznos popusta. |
| .reject({ message: String }) | nil | Odbija kôd za popust primenjen na korpu. Obavezna je message. |
| .rejected? | Bulova vrednost | Vraća informaciju o tome da li je kôd za popust odbijen. |
CartDiscount::Percentage
| Metoda | Tip povratne vrednosti | Opis |
|---|---|---|
| .code | String | Vraća kôd za popust koji se koristi za primenu popusta. |
| .percentage | Decimalni broj | Vraća procentualni iznos popusta. |
| .reject({ message: String }) | nil | Odbija kôd za popust primenjen na korpu. Obavezna je message. |
| .rejected? | Bulova vrednost | Vraća informaciju o tome da li je kôd za popust odbijen. |
CartDiscount::Shipping
| Metoda | Tip povratne vrednosti | Opis |
|---|---|---|
| .code | String | Vraća kôd za popust koji se koristi za primenu popusta. |
| .reject({ message: String }) | nil | Odbija kôd za popust primenjen na korpu. Obavezna je message. |
| .rejected? | Bulova vrednost | Vraća informaciju o tome da li je kôd za popust odbijen. |
Customer
| Metoda | Tip povratne vrednosti | Opis |
|---|---|---|
| .id | Ceo broj | Vraća ID broj kupca. |
| String | Vraća imejl adresu kupca. | |
| .tags | List<Tag> | Vraća listu stringova koji predstavljaju sve oznake postavljene za kupca. |
| .orders_count | Ceo broj | Vraća ukupan broj porudžbina koje je kupac izvršio. |
| .total_spent | Money | Vraća ukupan iznos koji je kupac potrošio na sve porudžbine. |
| .accepts_marketing? | Bulova vrednost | Vraća informaciju o tome da li kupac prihvata marketing. |
LineItem
| Metoda | Tip povratne vrednosti | Opis |
|---|---|---|
| .grams | grami | Vraća ukupnu težinu stavke. |
| .line_price | Money | Cena stavke. |
| .discounted? | Bulova vrednost | Vraća informaciju o tome da li je cena stavke snižena pomoću skripte ili ručno primenjenog popusta. Korišćenje kodova za popust ne utiče na vraćenu vrednost. |
| .properties | hash | Vraća svojstva koja su navedena za ove stavke. |
| .variant | Variant | Vraća specifičnu varijantu proizvoda koju predstavlja stavka. |
| .quantity | Ceo broj | Vraća količinu ove stavke. |
| .selling_plan_id | Ceo broj | Vraća ID plana prodaje za stavku. Ova metoda je korisna kada prodavnica prodaje pretplate i želite da skripta detektuje kada se varijanta proizvoda prodaje kao pretplata. |
List
| Metoda | Tip povratne vrednosti | Opis |
|---|---|---|
| .new | List | Kreira novi objekat koji predstavlja listu. |
| .[] | Element ili nil |
Vraća element na navedenom indeksu. |
| .& | List |
Vraća novu listu koja sadrži zajedničke elemente za dve liste, bez duplikata. |
| .delete_if | List | Briše elemente pomoću opcionog bloka koda. Pogledajte dokumentaciju za Ruby metodu delete_if. |
| .empty? | Bulova vrednost |
Vraća |
| .first | Element ili nil |
Vraća prvi element ili |
| .index(*args, &block) | int ili nil |
Vraća indeks prvog elementa liste. Ako je blok naveden umesto argumenta, vraća indeks prvog elementa za koji je blok tačan. |
| .rindex(*args, &block) | int ili nil |
Vraća indeks poslednjeg elementa liste. Ako je blok naveden umesto argumenta, vraća indeks prvog elementa za koji je blok tačan. |
| .last | Element ili nil |
Vraća poslednji element ili |
| .length | int |
Vraća broj elemenata u listi. |
| .size | int |
Alijas za length. |
| .each(*args, &block) | List |
Poziva blok jednom za svaki element u listi, prosleđujući element bloku kao parametar. |
ShippingAddress
| Metoda | Tip povratne vrednosti | Opis |
|---|---|---|
| .name | string | Vraća ime osobe povezane s adresom za dostavu. |
| .address1 | string | Vraća deo adrese za dostavu koji se odnosi na ulicu. |
| .address2 | string | Vraća opciono dodatno polje dela adrese za dostavu koji se odnosi na ulicu. |
| .phone | string | Vraća broj telefona za adresu za dostavu. |
| .city | string | Vraća grad za adresu za dostavu. |
| .zip | string | Vraća ZIP kod adrese za dostavu. |
| .province | string | Vraća pokrajinu/državu adrese za dostavu. |
| .province_code | string | Vraća skraćenu vrednost pokrajine/države adrese za dostavu. |
| .country_code | string | Vraća skraćenu vrednost zemlje adrese za dostavu. |
Money
| Metoda | Tip povratne vrednosti | Opis |
|---|---|---|
| .derived_from_presentment(customer_cents:X) | Money | Konvertuje iznos (u centima) iz lokalne valute kupca (valuta prikaza) u valutu vaše prodavnice. Ovaj metod prihvata parametar customer_cents, koji prihvata broj u centima. Na primer, Money.derived_from_presentment(customer_cents: 500). |
| .new | Money | Kreira novi objekat koji predstavlja cenu. |
| .zero | Money |
Kreira novi objekat čija je cena nula. |
| + | Money | Sabira dva objekta Money. |
| - | Money | Oduzima jedan objekat Money od drugog. |
| * | Money | Množi objekat Money brojem. |
Primeri objekta Money
Money.new(cents: 1000)Kreira objekat Money koji predstavlja 1000 centi, odnosno 10 $.
Money.new(cents: 100) * 50Kreira objekat Money koji predstavlja 1 $, a zatim množi taj iznos sa 50. Vraća objekat Money koji predstavlja 50 $.
Varijanta
| Metoda | Tip povratne vrednosti | Opis |
|---|---|---|
| .id | Ceo broj | Vraća ID broj varijante. |
| .price | Money | Vraća jediničnu cenu varijante. |
| .product | Product | Vraća povezani proizvod varijante. |
| .skus | List<String> | Vraća jedinice zaliha (SKU) varijante, koje se često koriste za praćenje zaliha. |
| .title | String | Vraća naslov varijante. |
Proizvod
| Metoda | Tip povratne vrednosti | Opis |
|---|---|---|
| .id | Ceo broj | Vraća ID broj proizvoda. |
| .gift_card? | Bulova vrednost | Vraća informaciju o tome da li je proizvod poklon kartica. |
| .tags | List<Tag> | Vraća listu stringova koji predstavljaju oznake postavljene za ovaj proizvod. |
| .product_type | String | Kategorizacija kojom proizvod može biti označen, a obično se koristi za filtriranje i pretraživanje. |
| .vendor | String | Vraća dobavljača ovog proizvoda. |
Kernel
Kernel je Ruby modul koji je uključen u svaku klasu. Zbog toga su njegovi metodi dostupni svakom objektu. Ovi metodi funkcionišu na isti način kao globalne funkcije u drugim jezicima.
| Metoda | Tip povratne vrednosti | Opis |
|---|---|---|
| .exit | nijedno | Završava izvršavanje trenutne skripte bez greške. Ako se ovo pokrene pre nego što se bilo šta dodeli objektu Output.cart, skripta nema efekta. Ovo je koristan način za izlaz iz skripti, na primer, ako kupac ne ispunjava uslove za pokretanje skripte. |
Primer modula Kernel
customer = Input.cart.customer
if customer && customer.email.end_with?("@mycompany.com")
# Employees are not eligible for this promotion.
exit
endMetodi za stavke
Sledeći metodi se mogu koristiti samo u skriptama za stavke:
Cart
| Metoda | Tip povratne vrednosti | Opis |
|---|---|---|
| .subtotal_price_was | Money | Vraća cenu međuzbira korpe pre primene bilo kakvih popusta. |
| .subtotal_price_changed? | Bulova vrednost | Vraća informaciju o tome da li je cena međuzbira promenjena. |
LineItem
| Metoda | Tip povratne vrednosti | Opis |
|---|---|---|
| .change_line_price(Money new_price, { message: String }) | Money | Menja cenu stavke na navedeni iznos. Parametar message je obavezan. Vrednost new_price mora biti manja od trenutne cene. |
| .original_line_price | Money | Vraća originalnu cenu stavke pre primene skripti i popusta. |
| .line_price_was | Money | Vraća cenu stavke pre promena koje je primenila trenutna skripta. |
| .line_price_changed? | Bulova vrednost | Vraća informaciju o tome da li je cena stavke promenjena. |
| .change_properties(hash new_properties, { message: String }) | hash | Postavlja nova svojstva za stavku. Originalni heš svojstava je sačuvan u properties_was, a heš svojstava koji je prosleđen metodu postaje nova svojstva za stavku. |
| .properties_was | hash | Vraća originalni heš svojstava stavke pre primene bilo kakvih promena. |
| .properties_changed? | Bulova vrednost | Vraća informaciju o tome da li su svojstva stavke promenjena. |
| .split({ take: Integer }) | LineItem | Deli stavku na dve stavke. take određuje koja količina se uklanja iz originalne stavke radi kreiranja nove stavke. |
Primer za .split
Ova skripta iz primera deli stavku pod nazivom original_line_item u dve stavke. Nova stavka ima količinu 1 (što je određeno sa take: 1). Skripta zatim primenjuje cenu sa popustom na novu stavku uz poruku „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
endVarijanta
| Metoda | Tip povratne vrednosti | Opis |
|---|---|---|
| .compare_at_price | Money | Vraća uporednu cenu varijante. Vraća nil ako varijanta nema uporednu cenu. |
Načini isporuke
Sledeće metode se mogu koristiti u skriptama za isporuku:
Unos
| Metoda | Tip povratne vrednosti | Opis |
|---|---|---|
| .shipping_rates | ShippingRateList | Vraća listu svih tarifa za dostavu. |
ShippingRateList
| Metoda | Tip povratne vrednosti | Opis |
|---|---|---|
| .delete_if | ShippingRateList | Briše tarife za dostavu pomoću opcionog bloka koda. Pogledajte dokumentaciju za metodu delete_if u jeziku Ruby. |
| .sort! | ShippingRateList | Sortira tarife za dostavu koristeći operator poređenja ili opcioni blok koda. Pogledajte dokumentaciju za metodu sort! u jeziku Ruby. |
| .sort_by! | ShippingRateList | Sortira tarife za dostavu pomoću opcionog bloka koda. Pogledajte dokumentaciju za metodu sort_by! u jeziku Ruby. |
ShippingRate
| Metoda | Tip povratne vrednosti | Opis |
|---|---|---|
| .code | String | Vraća kôd tarife za dostavu. |
| .markup | Money | Vraća maržu za tarifu za dostavu, ukoliko je primenljivo. |
| .name | String | Vraća naziv tarife za dostavu. Može se izmeniti korišćenjem metode change_name. |
| .price | Money | Vraća cenu tarife za dostavu. |
| .source | String | Vraća izvor (prevoznika) koji je povezan sa tarifom za dostavu, ako je relevantno. Ne može se izmeniti. |
| .change_name(String new_name) | String | Menja naziv tarife za dostavu (najviše 255 znakova). Izvor nije moguće izmeniti, izbrisati niti sakriti. |
| .apply_discount(Money discount, { message: String }) | Money | Primenjuje popust u navedenom fiksnom iznosu. Cena se ne može smanjiti ispod 0. Poruka je obavezna. |
| .phone_required? | Bulova vrednost | Vraća true ako je za dobijanje tarife za dostavu neophodan broj telefona, odnosno false ako broj telefona nije neophodan. |
Načini plaćanja
Sledeće metode se mogu koristiti u skriptama za plaćanje:
Unos
| Metoda | Tip povratne vrednosti | Opis |
|---|---|---|
| .payment_gateways | PaymentGatewaysList | Vraća listu svih mrežnih prolaza za plaćanje u prodavnici. |
PaymentGatewayList
| Metoda | Tip povratne vrednosti | Opis |
|---|---|---|
| .delete_if | PaymentGatewayList | Briše mrežne prolaze za plaćanje pomoću opcionog bloka koda. Pogledajte dokumentaciju za metodu delete_if u jeziku Ruby. |
| .sort! | PaymentGatewayList | Sortira mrežne prolaze za plaćanje koristeći operator poređenja ili opcioni blok koda. Pogledajte dokumentaciju za metodu sort! u jeziku Ruby. |
| .sort_by! | PaymentGatewayList | Sortira mrežne prolaze za plaćanje pomoću opcionog bloka koda. Pogledajte dokumentaciju za metodu sort_by! u jeziku Ruby. |
PaymentGateway
| Metoda | Tip povratne vrednosti | Opis |
|---|---|---|
| .name | String | Vraća naziv mrežnog prolaza za plaćanje. |
| .enabled_card_brands | List<String> |
Ako mrežni prolaz za plaćanje podržava kreditne kartice, vraća listu tipova kreditnih kartica koje prodavnica prihvata. Ako prolaz ne podržava kreditne kartice, vraća praznu listu. |
| .change_name(String new_name) | String | Menja naziv mrežnog prolaza za plaćanje. Nije moguće preimenovati mrežne prolaze za plaćanje sa logotipima. |
Primeri
U sledećem primeru skripte za stavke, kada kupac naruči proizvod koji nije poklon kartica, cena proizvoda se umanjuje za 9 USD. Takođe, prikazuje se ukupan iznos koji je kupac potrošio tokom svih poseta vašoj prodavnici:
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
Saznajte više
Saznajte više o sledećem: