Referenca za API za skripte Shopify
Skripte so napisane z vmesnikom API v jeziku Ruby, ki vam zagotavlja veliko mero nadzora in prilagodljivosti.
Obstajajo različne vrste skript. Skripti se vrsta dodeli ob ustvarjanju v aplikaciji Script Editor na podlagi predloge skripte, ki jo izberete za začetek:
Skripte postavk
Skripte za postavke vplivajo na postavke v košarici in lahko spremenijo cene ter podelijo popuste. Te skripte se izvedejo, ko pride do spremembe v košarici.
Skripte za postavke, ki znižajo ceno naročnine, veljajo samo za prvo plačilo naročnine. Skripta cene nadaljnjih plačil ne zniža.
Nekatere metode lahko uporabite samo v skriptah za postavke.
Skripte za dostavo
Skripte za dostavo so povezane z dostavo in lahko spremenijo načine pošiljanja ter podelijo popuste na poštnino. Te skripte se izvedejo, ko postopek na blagajni preide na stran z možnostmi pošiljanja.
Skripte za dostavo, ki znižajo poštnino naročnine, veljajo samo za prvo plačilo naročnine. Skripta nadaljnjih plačil ne zniža.
<p>Some methods <a href="#shipping-methods">can only be used in shipping scripts</a>.</p>Plačilne skripte
Plačilne skripte so povezane s plačili in lahko preimenujejo, skrijejo ali prerazporedijo plačilne prehode. Upoštevajte, da plačilne skripte niso povezane s plačilnimi prehodi, ki so prikazani pred zaslonom za plačilo, kot je Apple Pay. Te skripte se izvedejo, ko postopek na blagajni preide na stran za plačilo.
Nekatere metode lahko uporabite samo v plačilnih skriptah.
Na tej strani
Splošne metode
Naslednje metode lahko uporabite v kateri koli vrsti skripte:
Vnos
| Metoda | Vrsta vrnjene vrednosti | Opis |
|---|---|---|
| .cart | Košarica | Vrne spremenljiv objekt košarice. |
| .locale | niz | Vrne območne nastavitve stranke. Na primer en, fr ali pt-BR. |
Košarica
Objekt košarice je na voljo samo v spletni trgovini. Nekatere zapuščene blagajne imajo dostop do objekta košarice. Če pa je bila blagajna zaprta in nato stranka obišče zapuščeno blagajno, se jo preusmeri na vnaprej izpolnjeno blagajno in objekt košarice ne obstaja več. Do tega pride, ker e-pošta o zapuščeni blagajni zaobide domačo stran trgovine.
| Metoda | Vrsta vrnjene vrednosti | Opis |
|---|---|---|
| .customer | Stranka | Vrne lastnika košarice (če obstaja). |
| .shipping_address | Naslov za dostavo | Vrne naslov za dostavo lastnika košarice (če obstaja). |
| .discount_code | različno |
Vrne:
Objekt |
CartDiscount::FixedAmount
| Metoda | Vrsta vrnjene vrednosti | Opis |
|---|---|---|
| .code | Niz | Vrne kodo za popust, s katero je bil uporabljen popust. |
| .amount | Znesek | Vrne denarni znesek popusta. |
| .reject({ message: String }) | nil | Zavrne kodo za popust, ki je bila uporabljena v košarici. Polje message je obvezno. |
| .rejected? | Boolova vrednost | Vrne podatek, ali je bila koda za popust zavrnjena. |
CartDiscount::Percentage
| Metoda | Vrsta vrnjene vrednosti | Opis |
|---|---|---|
| .code | Niz | Vrne kodo za popust, s katero je bil uporabljen popust. |
| .percentage | Decimalna vrednost | Vrne odstotek popusta. |
| .reject({ message: String }) | nil | Zavrne kodo za popust, ki je bila uporabljena v košarici. Polje message je obvezno. |
| .rejected? | Boolova vrednost | Vrne podatek, ali je bila koda za popust zavrnjena. |
CartDiscount::Shipping
| Metoda | Vrsta vrnjene vrednosti | Opis |
|---|---|---|
| .code | Niz | Vrne kodo za popust, s katero je bil uporabljen popust. |
| .reject({ message: String }) | nil | Zavrne kodo za popust, ki je bila uporabljena v košarici. Polje message je obvezno. |
| .rejected? | Boolova vrednost | Vrne podatek, ali je bila koda za popust zavrnjena. |
Stranka
| Metoda | Vrsta vrnjene vrednosti | Opis |
|---|---|---|
| .id | Celo število | Vrne številko ID stranke. |
| Niz | Vrne e-poštni naslov stranke. | |
| .tags | Seznam<Oznaka> | Vrne seznam nizov, ki predstavljajo morebitne oznake, nastavljene za stranko. |
| .orders_count | Celo število | Vrne skupno število naročil, ki jih je oddala stranka. |
| .total_spent | Znesek | Vrne skupni znesek, ki ga je stranka porabila za vsa naročila. |
| .accepts_marketing? | Boolova vrednost | Vrne podatek o tem, ali stranka sprejema trženje. |
LineItem
| Metoda | Vrsta vrnjene vrednosti | Opis |
|---|---|---|
| .grams | grams | Vrne skupno težo postavke. |
| .line_price | Znesek | Cena postavke. |
| .discounted? | Boolova vrednost | Vrne podatek o tem, ali je bila cena postavke znižana s skriptom ali ročno uveljavljenim popustom. Uporaba kod za popust ne vpliva na vrnjeno vrednost. |
| .properties | zgoščevalna tabela | Vrne lastnosti, ki so bile določene za to postavko. |
| .variant | Variant | Vrne določeno različico izdelka, ki jo predstavlja postavka. |
| .quantity | Celo število | Vrne količino te postavke. |
| .selling_plan_id | Celo število | Vrne ID prodajnega načrta za postavko. Ta metoda je uporabna, ko trgovina prodaja naročnine in želite, da skript zazna, kdaj je različica izdelka prodana kot naročnina. |
List
| Metoda | Vrsta vrnjene vrednosti | Opis |
|---|---|---|
| .new | List | Ustvari nov predmet, ki predstavlja seznam. |
| .[] | Element ali nil |
Vrne element na določenem indeksu. |
| .& | List |
Vrne nov seznam, ki vsebuje skupne elemente obeh seznamov, brez dvojnikov. |
| .delete_if | List | Izbriše elemente z uporabo izbirnega bloka kode. Glejte dokumentacijo za Rubyjevo metodo delete_if. |
| .empty? | Boolova vrednost |
Vrne |
| .first | Element ali nil |
Vrne prvi element ali |
| .index(*args, &block) | int ali nil |
Vrne indeks prvega elementa na seznamu. Če je namesto argumenta podan blok, vrne indeks prvega elementa, za katerega je vrednost bloka resnična. |
| .rindex(*args, &block) | int ali nil |
Vrne indeks zadnjega elementa na seznamu. Če je namesto argumenta podan blok, vrne indeks prvega elementa, za katerega je vrednost bloka resnična. |
| .last | Element ali nil |
Vrne zadnji element ali |
| .length | int |
Vrne število elementov na seznamu. |
| .size | int |
Vzdevek za length. |
| .each(*args, &block) | List |
Blok pokliče enkrat za vsak element na seznamu in mu pri tem poda element kot parameter. |
ShippingAddress
| Metoda | Vrsta vrnjene vrednosti | Opis |
|---|---|---|
| .name | niz | Vrne ime osebe, povezane z naslovom za dostavo. |
| .address1 | niz | Vrne ulico v naslovu za dostavo. |
| .address2 | niz | Vrne izbirno dodatno polje ulice v naslovu za dostavo. |
| .phone | niz | Vrne telefonsko številko naslova za dostavo. |
| .city | niz | Vrne mesto naslova za dostavo. |
| .zip | niz | Vrne poštno številko naslova za dostavo. |
| .province | niz | Vrne regijo/zvezno državo naslova za dostavo. |
| .province_code | niz | Vrne okrajšano vrednost regije/zvezne države naslova za dostavo. |
| .country_code | niz | Vrne okrajšano vrednost države naslova za dostavo. |
Money
| Metoda | Vrsta vrnjene vrednosti | Opis |
|---|---|---|
| .derived_from_presentment(customer_cents:X) | Znesek | Pretvori znesek (v centih) iz lokalne valute stranke (valute prikaza) v valuto vaše trgovine. Ta metoda sprejme parameter customer_cents, ki sprejme število v centih. Na primer Money.derived_from_presentment(customer_cents: 500). |
| .new | Znesek | Ustvari nov predmet, ki predstavlja ceno. |
| .zero | Znesek |
Ustvari nov predmet s ceno nič. |
| + | Znesek | Sešteje dva predmeta Money. |
| - | Znesek | Odšteje en predmet Money od drugega. |
| * | Znesek | Pomnoži predmet Money s številom. |
Primeri za Money
Money.new(cents: 1000)Ustvari predmet Money, ki predstavlja 1000 centov oz. 10 $.
Money.new(cents: 100) * 50Ustvari objekt Money, ki predstavlja 1 $, nato pa ta znesek pomnoži s 50. Vrne objekt Money, ki predstavlja 50 $.
Različica
| Metoda | Vrsta vrnjene vrednosti | Opis |
|---|---|---|
| .id | Celo število | Vrne ID različice. |
| .price | Znesek | Vrne ceno na enoto različice. |
| .product | Izdelek | Vrne povezani izdelek različice. |
| .skus | Seznam<String> | Vrne enote za skladiščenje (SKU) različice, ki se pogosto uporabljajo za sledenje inventarju. |
| .title | Niz | Vrne naslov različice. |
Izdelek
| Metoda | Vrsta vrnjene vrednosti | Opis |
|---|---|---|
| .id | Celo število | Vrne ID izdelka. |
| .gift_card? | Boolova vrednost | Vrne, ali je izdelek darilna kartica. |
| .tags | Seznam<Oznaka> | Vrne seznam nizov, ki predstavljajo oznake, nastavljene za ta izdelek. |
| .product_type | Niz | Kategorizacija, s katero je mogoče označiti izdelek, in se pogosto uporablja za filtriranje in iskanje. |
| .vendor | Niz | Vrne prodajalca tega izdelka. |
Kernel
Kernel je modul Ruby, ki je vključen v vsak razred. Zato so njegove metode na voljo vsakemu objektu. Te metode delujejo na enak način kot globalne funkcije v drugih jezikih.
| Metoda | Vrsta vrnjene vrednosti | Opis |
|---|---|---|
| .exit | brez | Konča izvajanje trenutnega skripta brez napake. Če se to zažene, preden je kar koli dodeljeno v Output.cart, skript nima učinka. To je uporaben način za izhod iz skriptov, na primer če stranka ne izpolnjuje pogojev za izvajanje skripta. |
Primer za modul Kernel
customer = Input.cart.customer
if customer && customer.email.end_with?("@mycompany.com")
# Employees are not eligible for this promotion.
exit
endMetode za postavke
Naslednje metode so uporabne le v skriptih za postavke:
Košarica
| Metoda | Vrsta vrnjene vrednosti | Opis |
|---|---|---|
| .subtotal_price_was | Znesek | Vrne vmesni seštevek košarice pred uporabo popustov. |
| .subtotal_price_changed? | Boolova vrednost | Vrne, ali se je vmesni seštevek spremenil. |
LineItem
| Metoda | Vrsta vrnjene vrednosti | Opis |
|---|---|---|
| .change_line_price(Money new_price, { message: String }) | Znesek | Spremeni ceno postavke na določen znesek. Zahtevano je sporočilo (message). new_price mora biti nižja od trenutne cene. |
| .original_line_price | Znesek | Vrne prvotno ceno postavke pred uporabo skriptov in popustov. |
| .line_price_was | Znesek | Vrne ceno postavke pred spremembami, ki jih je uveljavil trenutni skript. |
| .line_price_changed? | Boolova vrednost | Vrne, ali se je cena postavke spremenila. |
| .change_properties(hash new_properties, { message: String }) | zgoščevalna tabela | Nastavi nove lastnosti za postavko. Prvotni hash z lastnostmi je shranjen v properties_was, hash z lastnostmi, ki je poslan metodi, pa postanejo nove lastnosti za postavko. |
| .properties_was | zgoščevalna tabela | Vrne prvotni hash z lastnostmi postavke pred uveljavitvijo sprememb. |
| .properties_changed? | Boolova vrednost | Vrne, ali so bile spremenjene lastnosti za postavko. |
| .split({ take: Integer }) | LineItem | Razdeli postavko na dve postavki. Vrednost take določa količino, ki jo je treba odstraniti iz prvotne postavke, da se ustvari nova. |
Primer za .split
Ta primer skripta razdeli postavko original_line_item na dve postavki. Nova postavka ima količino 1 (določeno s take: 1). Skript nato za novo postavko uveljavi ceno s popustom in s sporočilom »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
endRazličica
| Metoda | Vrsta vrnjene vrednosti | Opis |
|---|---|---|
| .compare_at_price | Znesek | Vrne primerjalno ceno različice. Vrne nil, če različica nima primerjalne cene. |
Načini pošiljanja
Naslednje metode so uporabne v skriptih za pošiljanje:
Vnos
| Metoda | Vrsta vrnjene vrednosti | Opis |
|---|---|---|
| .shipping_rates | ShippingRateList | Vrne seznam vseh poštnin. |
ShippingRateList
| Metoda | Vrsta vrnjene vrednosti | Opis |
|---|---|---|
| .delete_if | ShippingRateList | Izbrišite poštnine z izbirnim blokom kode. Preberite dokumentacijo za metodo Ruby delete_if. |
| .sort! | ShippingRateList | Razvrstite poštnine z operatorjem primerjave ali z izbirnim blokom kode. Preberite dokumentacijo za metodo Ruby sort!. |
| .sort_by! | ShippingRateList | Razvrstite poštnine z izbirnim blokom kode. Preberite dokumentacijo za metodo Ruby sort_by!. |
ShippingRate
| Metoda | Vrsta vrnjene vrednosti | Opis |
|---|---|---|
| .code | Niz | Vrne kodo poštnine. |
| .markup | Znesek | Vrne označevanje za poštnino, če je to primerno. |
| .name | Niz | Vrne ime poštnine. Spremenite ga lahko z metodo change_name. |
| .price | Znesek | Vrne ceno poštnine. |
| .source | Niz | Vrne vir (prevoznika), povezan s poštnino, če je na voljo. Tega ni mogoče spremeniti. |
| .change_name(Niz new_name) | Niz | Spremeni ime poštnine (največ 255 znakov). Vira ni mogoče spremeniti, izbrisati ali skriti. |
| .apply_discount(Money popust, { message: Niz }) | Znesek | Uveljavi popust v določenem fiksnem znesku. Cene ni mogoče znižati pod 0. Zahtevano je sporočilo. |
| .phone_required? | Boolova vrednost | Vrne true, če je za poštnino potrebna telefonska številka, ali false, če telefonska številka ni potrebna. |
Načini plačila
V plačilnih skriptah lahko uporabite naslednje metode:
Vnos
| Metoda | Vrsta vrnjene vrednosti | Opis |
|---|---|---|
| .payment_gateways | PaymentGatewaysList | Vrne seznam vseh plačilnih prehodov v trgovini. |
PaymentGatewayList
| Metoda | Vrsta vrnjene vrednosti | Opis |
|---|---|---|
| .delete_if | PaymentGatewayList | Izbrišite plačilne prehode z izbirnim blokom kode. Preberite dokumentacijo za Rubyjevo metodo delete_if. |
| .sort! | PaymentGatewayList | Razvrstite plačilne prehode z operatorjem primerjave ali izbirnim blokom kode. Preberite dokumentacijo za Rubyjevo metodo sort!. |
| .sort_by! | PaymentGatewayList | Razvrstite plačilne prehode z izbirnim blokom kode. Preberite dokumentacijo za Rubyjevo metodo sort_by!. |
PaymentGateway
| Metoda | Vrsta vrnjene vrednosti | Opis |
|---|---|---|
| .name | Niz | Vrne ime plačilnega prehoda. |
| .enabled_card_brands | Seznam<String> |
Če plačilni prehod podpira kreditne kartice, vrne seznam vrst kreditnih kartic, ki jih trgovina sprejema. Če prehod ne podpira kreditnih kartic, vrne prazen seznam. |
| .change_name(Niz new_name) | Niz | Spremeni ime plačilnega prehoda. Plačilnih prehodov z logotipi ni mogoče preimenovati. |
Primeri
V naslednjem primeru skripte za postavko se cena izdelka zniža za 9 USD, če stranka naroči izdelek, ki ni darilna kartica. Prikazan je tudi skupni znesek, ki ga je stranka porabila pri vseh obiskih vaše trgovine:
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
Več informacij
Več informacij o: