Referenca za API skripti Shopify Scripts
Skripte se pišu u API-ju temeljenom na Rubyju, koji vam pruža visoku razinu kontrole i fleksibilnosti.
Postoje različite vrste skripti. Skripti se dodjeljuje vrsta prilikom njezine izrade u aplikaciji Script Editor na temelju predloška skripte koji odaberete za početak:
Skripte za linije artikala
Skripte za linije artikala utječu na linije artikala u košarici te mogu promijeniti cijene i odobriti popuste. Te se skripte pokreću kada dođe do promjene u košarici.
Skripte za linije artikala koje odobravaju popust na pretplatu primjenjuju se samo na prvo plaćanje pretplate. Skripta ne snižava cijenu naknadnih plaćanja.
Neke se metode mogu upotrijebiti samo u skriptama za linije artikala.
Skripte za dostavu
Skripte za dostavu stupaju u interakciju s dostavom te mogu promijeniti metode dostave i odobriti popuste na cijene dostave. Te se skripte pokreću kada plaćanje dosegne stranicu s opcijama dostave.
Skripte za dostavu koje odobravaju popust na cijenu dostave za pretplatu primjenjuju se samo na prvo plaćanje pretplate. Skripta ne odobrava popust na naknadna 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 stupaju u interakciju s plaćanjima te mogu preimenovati, sakriti i promijeniti redoslijed pristupnika za plaćanje. Imajte na umu da skripte za plaćanje ne stupaju u interakciju s pristupnicima za plaćanje koji se prikazuju prije zaslona za plaćanje, kao što je Apple Pay. Te se skripte pokreću kada plaćanje dosegne stranicu za plaćanje.
Neke se metode mogu upotrijebiti samo u skriptama za plaćanje.
Na ovoj stranici
Opće metode
Sljedeće se metode mogu upotrebljavati u svim vrstama skripti:
Unos
| Metoda | Vrsta povrata | Opis |
|---|---|---|
| .cart | Cart | Vraća promjenjiv objekt košarice. |
| .locale | niz | Vraća regionalne parametre korisnika. Na primjer, en, fr ili pt-BR. |
Cart
Objekt košarice (cart) dostupan je samo u internetskoj trgovini. Neka nezavršena plaćanja imaju pristup objektu košarice. Međutim, ako se plaćanje zatvori, a korisnik zatim posjeti nezavršeno plaćanje, preusmjerava ga se na unaprijed popunjeno plaćanje i objekt košarice više ne postoji. Razlog je u tome što e-pošta o nezavršenom plaćanju zaobilazi internetsku trgovinu.
| Metoda | Vrsta povrata | Opis |
|---|---|---|
| .customer | Customer | Vraća vlasnika košarice (ako postoji). |
| .shipping_address | ShippingAddress | Vraća adresu za dostavu vlasnika košarice (ako postoji). |
| .discount_code | razlikuje se |
Vraća:
|
CartDiscount::FixedAmount
| Metoda | Vrsta povrata | Opis |
|---|---|---|
| .code | Niz | Vraća kod za popust koji se koristi za primjenu popusta. |
| .amount | Money | Vraća novčani iznos popusta. |
| .reject({ message: String }) | nil | Odbija kod za popust primijenjen na košaricu. Potreban je parametar message. |
| .rejected? | Booleova vrijednost | Vraća podatak o tome je li kod za popust odbijen. |
CartDiscount::Percentage
| Metoda | Vrsta povrata | Opis |
|---|---|---|
| .code | Niz | Vraća kod za popust koji se koristi za primjenu popusta. |
| .percentage | Decimalni broj | Vraća postotni iznos popusta. |
| .reject({ message: String }) | nil | Odbija kod za popust primijenjen na košaricu. Potreban je parametar message. |
| .rejected? | Booleova vrijednost | Vraća podatak o tome je li kod za popust odbijen. |
CartDiscount::Shipping
| Metoda | Vrsta povrata | Opis |
|---|---|---|
| .code | Niz | Vraća kod za popust koji se koristi za primjenu popusta. |
| .reject({ message: String }) | nil | Odbija kod za popust primijenjen na košaricu. Potreban je parametar message. |
| .rejected? | Booleova vrijednost | Vraća podatak o tome je li kod za popust odbijen. |
Customer
| Metoda | Vrsta povrata | Opis |
|---|---|---|
| .id | Cijeli broj | Vraća ID broj korisnika. |
| Niz | Vraća e-adresu korisnika. | |
| .tags | List<Tag> | Vraća popis nizova koji predstavljaju sve oznake postavljene za korisnika. |
| .orders_count | Cijeli broj | Vraća ukupan broj narudžbi koje je korisnik izvršio. |
| .total_spent | Money | Vraća ukupan iznos koji je korisnik potrošio na sve narudžbe. |
| .accepts_marketing? | Booleova vrijednost | Vraća podatak prihvaća li korisnik marketing. |
LineItem
| Metoda | Vrsta povrata | Opis |
|---|---|---|
| .grams | grams | Vraća ukupnu težinu linije artikla. |
| .line_price | Money | Cijena linije artikla. |
| .discounted? | Booleova vrijednost | Vraća podatak o tome je li cijena linije artikla snižena putem skripte ili ručno primijenjenog popusta. Upotreba kodova za popust ne utječe na povratnu vrijednost. |
| .properties | hash | Vraća svojstva koja su navedena za ovu liniju artikla. |
| .variant | Variant | Vraća određenu varijantu proizvoda koju predstavlja linija artikla. |
| .quantity | Cijeli broj | Vraća količinu ove linije artikla. |
| .selling_plan_id | Cijeli broj | Vraća ID plana prodaje za liniju artikla. Ova je metoda korisna kada se u trgovini prodaju pretplate i želite da skripta prepozna kada se varijanta proizvoda prodaje kao pretplata. |
List
| Metoda | Vrsta povrata | Opis |
|---|---|---|
| .new | List | Izrađuje novi objekt koji predstavlja popis. |
| .[] | Element ili nil |
Vraća element na navedenom indeksu. |
| .& | List |
Vraća novi popis koji sadrži elemente zajedničke za oba popisa, bez duplikata. |
| .delete_if | List | Izbrišite elemente pomoću neobaveznog bloka koda. Pogledajte dokumentaciju za metodu delete_if u jeziku Ruby. |
| .empty? | Booleova vrijednost |
Vraća |
| .first | Element ili nil |
Vraća prvi element ili |
| .index(*args, &block) | int ili nil |
Vraća indeks prvog elementa na popisu. Ako je umjesto argumenta zadan blok, vraća indeks prvog elementa za koji je blok istinit (true). |
| .rindex(*args, &block) | int ili nil |
Vraća indeks zadnjeg elementa na popisu. Ako je umjesto argumenta zadan blok, vraća indeks prvog elementa za koji je blok istinit (true). |
| .last | Element ili nil |
Vraća zadnji element ili |
| .length | int |
Vraća broj elemenata na popisu. |
| .size | int |
Alias za length. |
| .each(*args, &block) | List |
Poziva blok jednom za svaki element na popisu, prosljeđujući pritom element kao parametar bloku. |
ShippingAddress
| Metoda | Vrsta povrata | Opis |
|---|---|---|
| .name | niz | Vraća ime osobe povezane s adresom za dostavu. |
| .address1 | niz | Vraća dio adrese za dostavu s nazivom ulice. |
| .address2 | niz | Vraća neobavezno dodatno polje za dio adrese za dostavu s nazivom ulice. |
| .phone | niz | Vraća telefonski broj s adrese za dostavu. |
| .city | niz | Vraća grad s adrese za dostavu. |
| .zip | niz | Vraća poštanski broj s adrese za dostavu. |
| .province | niz | Vraća regiju/državu s adrese za dostavu. |
| .province_code | niz | Vraća skraćenu vrijednost regije/države s adrese za dostavu. |
| .country_code | niz | Vraća skraćenu vrijednost zemlje s adrese za dostavu. |
Money
| Metoda | Vrsta povrata | Opis |
|---|---|---|
| .derived_from_presentment(customer_cents:X) | Money | Konvertira iznos (u centima) iz lokalne valute (valute prikazane cijene) korisnika u valutu vaše trgovine. Ova metoda prihvaća parametar customer_cents, koji prima broj u centima. Na primjer, Money.derived_from_presentment(customer_cents: 500). |
| .new | Money | Izrađuje novi objekt koji predstavlja cijenu. |
| .zero | Money |
Izrađuje novi objekt s cijenom nula. |
| + | Money | Zbraja dva objekta tipa Money. |
| - | Money | Oduzima jedan objekt tipa Money od drugog. |
| * | Money | Množi objekt tipa Money brojem. |
Primjeri za objekt Money
Money.new(cents: 1000)Izrađuje objekt tipa Money koji predstavlja 1000 centi ili 10 $.
Money.new(cents: 100) * 50Izrađuje objekt Money koji predstavlja 1 USD, a zatim množi taj iznos s 50. Vraća objekt Money koji predstavlja 50 USD.
Varijanta
| Metoda | Vrsta povrata | Opis |
|---|---|---|
| .id | Cijeli broj | Vraća ID broj varijante. |
| .price | Money | Vraća jediničnu cijenu varijante. |
| .product | Proizvod | Vraća povezani proizvod varijante. |
| .skus | Popis<Niz> | Vraća brojeve artikla u skladištu (SKU-ove) varijante koji se često upotrebljavaju za praćenje zaliha. |
| .title | Niz | Vraća naslov varijante. |
Proizvod
| Metoda | Vrsta povrata | Opis |
|---|---|---|
| .id | Cijeli broj | Vraća ID broj proizvoda. |
| .gift_card? | Booleova vrijednost | Vraća podatak je li proizvod poklon kartica. |
| .tags | List<Tag> | Vraća popis nizova koji predstavljaju oznake postavljene za ovaj proizvod. |
| .product_type | Niz | Kategorizacija kojom se proizvod može označiti, a najčešće se upotrebljava za filtriranje i pretraživanje. |
| .vendor | Niz | Vraća prodavatelja ovog proizvoda. |
Kernel
Kernel je Ruby modul koji je uključen u svaku klasu. Zbog toga su njegove metode dostupne svakom objektu. Te metode djeluju na isti način kao što globalne funkcije djeluju u drugim jezicima.
| Metoda | Vrsta povrata | Opis |
|---|---|---|
| .exit | nema | Završava izvođenje trenutačne skripte bez pogreške. Ako se to pokrene prije nego što se bilo što dodijeli objektu Output.cart, skripta nema učinka. To je koristan način za izlaz iz skripti, primjerice ako korisnik ne ispunjava uvjete za pokretanje skripte. |
Primjer modula Kernel
customer = Input.cart.customer
if customer && customer.email.end_with?("@mycompany.com")
# Employees are not eligible for this promotion.
exit
endMetode linije artikla
Sljedeće se metode mogu upotrebljavati samo u skriptama linije artikla:
Cart
| Metoda | Vrsta povrata | Opis |
|---|---|---|
| .subtotal_price_was | Money | Vraća međuzbroj košarice prije primjene bilo kakvih popusta. |
| .subtotal_price_changed? | Booleova vrijednost | Vraća podatak je li se međuzbroj promijenio. |
LineItem
| Metoda | Vrsta povrata | Opis |
|---|---|---|
| .change_line_price(Money new_price, { message: String }) | Money | Mijenja cijenu linije artikla na navedeni iznos. Obavezna je poruka message. Vrijednost new_price mora biti manja od trenutačne cijene. |
| .original_line_price | Money | Vraća izvornu cijenu linije artikla prije primjene skripti i popusta. |
| .line_price_was | Money | Vraća cijenu linije artikla prije nego što je trenutačna skripta primijenila promjene. |
| .line_price_changed? | Booleova vrijednost | Vraća podatak je li se cijena linije artikla promijenila. |
| .change_properties(hash new_properties, { message: String }) | hash | Postavlja nova svojstva za liniju artikla. Izvorni hash svojstava pohranjuje se u properties_was, a hash svojstava koji se prosljeđuje metodi postaje novo svojstvo za liniju artikla. |
| .properties_was | hash | Vraća izvorni hash svojstava linije artikla prije primjene bilo kakvih promjena. |
| .properties_changed? | Booleova vrijednost | Vraća podatak jesu li se svojstva za liniju artikla promijenila. |
| .split({ take: Integer }) | LineItem | Dijeli liniju artikla na dvije linije artikla. Parametar take određuje koju količinu treba ukloniti iz izvorne linije artikla da bi se izradila nova linija artikla. |
Primjer metode .split
Ova ogledna skripta dijeli liniju artikla pod nazivom original_line_item na dvije linije artikla. Nova linija artikla ima količinu 1 (određeno pomoću take: 1). Skripta zatim primjenjuje sniženu cijenu na novu liniju artikla uz poruku „Treći šešir za 5 dolara”.
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 | Vrsta povrata | Opis |
|---|---|---|
| .compare_at_price | Money | Vraća prekriženu cijenu varijante. Vraća nil ako varijanta nema prekriženu cijenu. |
Metode dostave
Sljedeće se metode mogu upotrebljavati u skriptama za dostavu:
Unos
| Metoda | Vrsta povrata | Opis |
|---|---|---|
| .shipping_rates | ShippingRateList | Vraća popis svih cijena dostave. |
ShippingRateList
| Metoda | Vrsta povrata | Opis |
|---|---|---|
| .delete_if | ShippingRateList | Briše cijene dostave s pomoću neobaveznog bloka koda. Pogledajte dokumentaciju za metodu delete_if u jeziku Ruby. |
| .sort! | ShippingRateList | Sortira cijene dostave s pomoću operatora usporedbe ili neobaveznog bloka koda. Pogledajte dokumentaciju za metodu sort! u jeziku Ruby. |
| .sort_by! | ShippingRateList | Sortira cijene dostave s pomoću neobaveznog bloka koda. Pogledajte dokumentaciju za metodu sort_by! u jeziku Ruby. |
ShippingRate
| Metoda | Vrsta povrata | Opis |
|---|---|---|
| .code | Niz | Vraća kod cijene dostave. |
| .markup | Money | Vraća maržu za cijenu dostave, ako je primjenjivo. |
| .name | Niz | Vraća naziv cijene dostave. Može se izmijeniti upotrebom metode change_name. |
| .price | Money | Vraća iznos cijene dostave. |
| .source | Niz | Vraća izvor (prijevoznika) povezan s cijenom dostave, ako je relevantno. Ne može se mijenjati. |
| .change_name(String new_name) | Niz | Mijenja naziv (najviše 255 znakova) cijene dostave. Izvor nije moguće promijeniti, izbrisati ni sakriti. |
| .apply_discount(Money discount, { message: String }) | Money | Primjenjuje popust navedenog fiksnog iznosa. Cijena se ne može smanjiti na manje od 0. Poruka je obavezna. |
| .phone_required? | Booleova vrijednost | Vraća true ako je za cijenu dostave potreban broj telefona ili false ako broj telefona nije potreban. |
Načini plaćanja
Sljedeće metode mogu se upotrebljavati u skriptama za plaćanje:
Unos
| Metoda | Vrsta povrata | Opis |
|---|---|---|
| .payment_gateways | PaymentGatewaysList | Vraća popis svih pristupnika za plaćanje u trgovini. |
PaymentGatewayList
| Metoda | Vrsta povrata | Opis |
|---|---|---|
| .delete_if | PaymentGatewayList | Izbrišite pristupnike za plaćanje upotrebom neobaveznog bloka koda. Pogledajte dokumentaciju za Rubyjevu metodu delete_if. |
| .sort! | PaymentGatewayList | Razvrstajte pristupnike za plaćanje upotrebom operatora za usporedbu ili upotrebom neobaveznog bloka koda. Pogledajte dokumentaciju za Rubyjevu metodu sort!. |
| .sort_by! | PaymentGatewayList | Razvrstajte pristupnike za plaćanje upotrebom neobaveznog bloka koda. Pogledajte dokumentaciju za Rubyjevu metodu sort_by!. |
PaymentGateway
| Metoda | Vrsta povrata | Opis |
|---|---|---|
| .name | Niz | Vraća naziv pristupnika za plaćanje. |
| .enabled_card_brands | Popis<Niz> |
Ako pristupnik za plaćanje podržava kreditne kartice, vraća popis vrsta kreditnih kartica koje trgovina prihvaća. Ako pristupnik ne podržava kreditne kartice, vraća prazan popis. |
| .change_name(String new_name) | Niz | Mijenja naziv pristupnika za plaćanje. Pristupnike za plaćanje koji imaju logotip nije moguće preimenovati. |
Primjeri
U sljedećem primjeru skripte za liniju artikla, kada korisnik naruči proizvod koji nije poklon kartica, cijena proizvoda umanjuje se za 9 $. Također se prikazuje i ukupan iznos koji je korisnik potrošio tijekom svih posjeta vašoj trgovini:
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 sljedećem: