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.

Splošne metode

Naslednje metode lahko uporabite v kateri koli vrsti skripte:

Vnos

Metode za vnos v skriptah
MetodaVrsta vrnjene vrednostiOpis
.cartKošaricaVrne spremenljiv objekt košarice.
.localenizVrne 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.

Metode skript, ki uporabljajo objekt košarice
MetodaVrsta vrnjene vrednostiOpis
.customerStrankaVrne lastnika košarice (če obstaja).
.shipping_addressNaslov za dostavoVrne naslov za dostavo lastnika košarice (če obstaja).
.discount_coderazlično Vrne:

Objekt discount_code je prisoten, če je bil v košarici uporabljen popust. To ne pomeni nujno, da se cena košarice spremeni. Na primer, če popust velja za košarice nad 50 USD in skripta zniža ceno košarice pod 50 USD, je discount_code še vedno prisoten, vendar se cena košarice ne spremeni.

<p><a href="/manual/checkout-settings/script-editor/examples/vat-script">See an example of <code>discount_code</code></a>.</p>
  </td>
</tr>
<tr>
  <td scope="row">.line_items</td>
  <td><a href="#list">List</a>&lt;LineItem&gt;</td>
  <td>Returns a list containing the line items in the cart.</td>
</tr>
<tr>
  <td scope="row">.presentment_currency</td>
  <td><a href="#list">List</a>&lt;String&gt;</td>
  <td>Returns the customer's local (presentment) currency (in <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO 4217</a> format). For example, USD. </td>
</tr>
<tr>
  <td scope="row">.subtotal_price</td>
  <td><a href="#money">Money</a></td>
  <td>Returns the subtotal price of the cart after line item discounts are applied but before discount codes are applied.</td>
</tr>
<tr>
  <td scope="row">.total_weight</td>
  <td><a href="https://shopify.dev/api/liquid/objects/line_item#line_item-grams">grams</a></td>
  <td>Returns the total weight of all the line items in the cart.</td>
</tr>

CartDiscount::FixedAmount

Metode skript, ki uporabljajo objekt CartDiscount::FixedAmount
MetodaVrsta vrnjene vrednostiOpis
.codeNizVrne kodo za popust, s katero je bil uporabljen popust.
.amountZnesekVrne denarni znesek popusta.
.reject({ message: String })nilZavrne kodo za popust, ki je bila uporabljena v košarici. Polje message je obvezno.
.rejected?Boolova vrednostVrne podatek, ali je bila koda za popust zavrnjena.

CartDiscount::Percentage

Metode skript, ki uporabljajo objekt CartDiscount::Percentage
MetodaVrsta vrnjene vrednostiOpis
.codeNizVrne kodo za popust, s katero je bil uporabljen popust.
.percentageDecimalna vrednostVrne odstotek popusta.
.reject({ message: String })nilZavrne kodo za popust, ki je bila uporabljena v košarici. Polje message je obvezno.
.rejected?Boolova vrednostVrne podatek, ali je bila koda za popust zavrnjena.

CartDiscount::Shipping

Metode skript, ki uporabljajo objekt CartDiscount::Shipping
MetodaVrsta vrnjene vrednostiOpis
.codeNizVrne kodo za popust, s katero je bil uporabljen popust.
.reject({ message: String })nilZavrne kodo za popust, ki je bila uporabljena v košarici. Polje message je obvezno.
.rejected?Boolova vrednostVrne podatek, ali je bila koda za popust zavrnjena.

Stranka

Metode skript, ki uporabljajo objekt stranke
MetodaVrsta vrnjene vrednostiOpis
.idCelo številoVrne številko ID stranke.
.emailNizVrne e-poštni naslov stranke.
.tagsSeznam<Oznaka>Vrne seznam nizov, ki predstavljajo morebitne oznake, nastavljene za stranko.
.orders_countCelo številoVrne skupno število naročil, ki jih je oddala stranka.
.total_spentZnesekVrne skupni znesek, ki ga je stranka porabila za vsa naročila.
.accepts_marketing?Boolova vrednostVrne podatek o tem, ali stranka sprejema trženje.

LineItem

Metode skripta, ki uporabljajo predmet LineItem
MetodaVrsta vrnjene vrednostiOpis
.gramsgramsVrne skupno težo postavke.
.line_priceZnesekCena postavke.
.discounted?Boolova vrednostVrne 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.
.propertieszgoščevalna tabelaVrne lastnosti, ki so bile določene za to postavko.
.variantVariantVrne določeno različico izdelka, ki jo predstavlja postavka.
.quantityCelo številoVrne količino te postavke.
.selling_plan_idCelo številoVrne 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

Metode skripta, ki uporabljajo predmet List
MetodaVrsta vrnjene vrednostiOpis
.newListUstvari 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_ifListIzbriše elemente z uporabo izbirnega bloka kode. Glejte dokumentacijo za Rubyjevo metodo delete_if.
.empty?Boolova vrednost

Vrne true, če seznam ne vsebuje nobenih elementov.

.firstElement ali nil

Vrne prvi element ali nil, če je seznam prazen.

.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.

.lastElement ali nil

Vrne zadnji element ali nil, če je seznam prazen.

.lengthint

Vrne število elementov na seznamu.

.sizeint

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

Metode skripta, ki uporabljajo predmet ShippingAddress
MetodaVrsta vrnjene vrednostiOpis
.namenizVrne ime osebe, povezane z naslovom za dostavo.
.address1nizVrne ulico v naslovu za dostavo.
.address2nizVrne izbirno dodatno polje ulice v naslovu za dostavo.
.phonenizVrne telefonsko številko naslova za dostavo.
.citynizVrne mesto naslova za dostavo.
.zipnizVrne poštno številko naslova za dostavo.
.provincenizVrne regijo/zvezno državo naslova za dostavo.
.province_codenizVrne okrajšano vrednost regije/zvezne države naslova za dostavo.
.country_codenizVrne okrajšano vrednost države naslova za dostavo.

Money

Metode skripta, ki uporabljajo predmet Money
MetodaVrsta vrnjene vrednostiOpis
.derived_from_presentment(customer_cents:X)ZnesekPretvori 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).
.newZnesekUstvari nov predmet, ki predstavlja ceno.
.zeroZnesek

Ustvari nov predmet s ceno nič.

+ZnesekSešteje dva predmeta Money.
-ZnesekOdšteje en predmet Money od drugega.
*ZnesekPomnož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) * 50

Ustvari objekt Money, ki predstavlja 1 $, nato pa ta znesek pomnoži s 50. Vrne objekt Money, ki predstavlja 50 $.

Različica

Metode skriptov, ki uporabljajo objekt Variant
MetodaVrsta vrnjene vrednostiOpis
.idCelo številoVrne ID različice.
.priceZnesekVrne ceno na enoto različice.
.productIzdelekVrne povezani izdelek različice.
.skusSeznam<String>Vrne enote za skladiščenje (SKU) različice, ki se pogosto uporabljajo za sledenje inventarju.
.titleNizVrne naslov različice.

Izdelek

Metode skriptov, ki uporabljajo objekt Product
MetodaVrsta vrnjene vrednostiOpis
.idCelo številoVrne ID izdelka.
.gift_card?Boolova vrednostVrne, ali je izdelek darilna kartica.
.tagsSeznam<Oznaka>Vrne seznam nizov, ki predstavljajo oznake, nastavljene za ta izdelek.
.product_typeNizKategorizacija, s katero je mogoče označiti izdelek, in se pogosto uporablja za filtriranje in iskanje.
.vendorNizVrne 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.

Metode skriptov, ki uporabljajo objekt Kernel
MetodaVrsta vrnjene vrednostiOpis
.exitbrezKonč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
end

Metode za postavke

Naslednje metode so uporabne le v skriptih za postavke:

Košarica

Metode skriptov, ki uporabljajo objekt Cart v skriptih za postavke
MetodaVrsta vrnjene vrednostiOpis
.subtotal_price_wasZnesekVrne vmesni seštevek košarice pred uporabo popustov.
.subtotal_price_changed?Boolova vrednostVrne, ali se je vmesni seštevek spremenil.

LineItem

Metode skriptov, ki uporabljajo objekt LineItem v skriptih za postavke
MetodaVrsta vrnjene vrednostiOpis
.change_line_price(Money new_price, { message: String }) ZnesekSpremeni ceno postavke na določen znesek. Zahtevano je sporočilo (message). new_price mora biti nižja od trenutne cene.
.original_line_priceZnesekVrne prvotno ceno postavke pred uporabo skriptov in popustov.
.line_price_wasZnesekVrne ceno postavke pred spremembami, ki jih je uveljavil trenutni skript.
.line_price_changed?Boolova vrednostVrne, ali se je cena postavke spremenila.
.change_properties(hash new_properties, { message: String }) zgoščevalna tabelaNastavi 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_waszgoščevalna tabelaVrne prvotni hash z lastnostmi postavke pred uveljavitvijo sprememb.
.properties_changed?Boolova vrednostVrne, ali so bile spremenjene lastnosti za postavko.
.split({ take: Integer })LineItemRazdeli 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
end

Različica

Metode skriptov, ki uporabljajo objekt Variant v skriptih za postavke
MetodaVrsta vrnjene vrednostiOpis
.compare_at_priceZnesekVrne 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

Metode skriptov, ki uporabljajo objekt Input v skriptih za pošiljanje
MetodaVrsta vrnjene vrednostiOpis
.shipping_ratesShippingRateListVrne seznam vseh poštnin.

ShippingRateList

Metode skriptov, ki uporabljajo objekt ShippingRateList v skriptih za pošiljanje
MetodaVrsta vrnjene vrednostiOpis
.delete_ifShippingRateListIzbrišite poštnine z izbirnim blokom kode. Preberite dokumentacijo za metodo Ruby delete_if.
.sort!ShippingRateListRazvrstite poštnine z operatorjem primerjave ali z izbirnim blokom kode. Preberite dokumentacijo za metodo Ruby sort!.
.sort_by!ShippingRateListRazvrstite poštnine z izbirnim blokom kode. Preberite dokumentacijo za metodo Ruby sort_by!.

ShippingRate

Metode skriptov, ki uporabljajo objekt ShippingRate v skriptih za pošiljanje
MetodaVrsta vrnjene vrednostiOpis
.codeNizVrne kodo poštnine.
.markupZnesekVrne označevanje za poštnino, če je to primerno.
.nameNizVrne ime poštnine. Spremenite ga lahko z metodo change_name.
.priceZnesekVrne ceno poštnine.
.sourceNizVrne 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 })ZnesekUveljavi popust v določenem fiksnem znesku. Cene ni mogoče znižati pod 0. Zahtevano je sporočilo.
.phone_required?Boolova vrednostVrne 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

Metode skript z uporabo predmeta Input v plačilnih skriptah
MetodaVrsta vrnjene vrednostiOpis
.payment_gatewaysPaymentGatewaysListVrne seznam vseh plačilnih prehodov v trgovini.

PaymentGatewayList

Metode skript z uporabo predmeta PaymentGatewayList v plačilnih skriptah
MetodaVrsta vrnjene vrednostiOpis
.delete_ifPaymentGatewayListIzbrišite plačilne prehode z izbirnim blokom kode. Preberite dokumentacijo za Rubyjevo metodo delete_if.
.sort!PaymentGatewayListRazvrstite plačilne prehode z operatorjem primerjave ali izbirnim blokom kode. Preberite dokumentacijo za Rubyjevo metodo sort!.
.sort_by!PaymentGatewayListRazvrstite plačilne prehode z izbirnim blokom kode. Preberite dokumentacijo za Rubyjevo metodo sort_by!.

PaymentGateway

MetodaVrsta vrnjene vrednostiOpis
.nameNizVrne ime plačilnega prehoda.
.enabled_card_brandsSeznam<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)NizSpremeni 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: