Shopify Scripts -API-viite

Komentosarjat kirjoitetaan Ruby-API:lla, joka antaa sinulle paljon hallintamahdollisuuksia ja joustavuutta.

Komentosarjoja on erilaisia. Komentosarjalle määritetään tyyppi, kun luot sen Script Editor -sovelluksessa. Tyyppi perustuu siihen, minkä komentosarjamallin valitset aloitukseksi:

Rivikohtien komentosarjat

Rivikohtien komentosarjat vaikuttavat ostoskorin rivikohtiin, ja niillä voi muuttaa hintoja ja myöntää alennuksia. Nämä komentosarjat suoritetaan, kun ostoskoriin tehdään muutos.

Toistuvan tilauksen hintaa alentavat rivikohtien komentosarjat koskevat vain tilauksen ensimmäistä maksua. Komentosarja ei alenna myöhempiä maksuja.

Joitakin metodeja voi käyttää vain rivikohtien komentosarjoissa.

Toimituksen komentosarjat

Toimituksen komentosarjat ovat vuorovaikutuksessa toimituksen kanssa, ja niillä voi muuttaa toimitustapoja ja myöntää alennuksia toimitushintoihin. Nämä komentosarjat suoritetaan, kun kassalla siirrytään toimitusvaihtoehtojen sivulle.

Toistuvan tilauksen toimitushintaa alentavat toimituksen komentosarjat koskevat vain tilauksen ensimmäistä maksua. Komentosarja ei alenna myöhempiä maksuja.

<p>Some methods <a href="#shipping-methods">can only be used in shipping scripts</a>.</p>

Maksujen komentosarjat

Maksujen komentosarjat ovat vuorovaikutuksessa maksujen kanssa, ja niillä voi nimetä uudelleen, piilottaa ja järjestää uudelleen maksuportaaleja. Huomaa, että maksujen komentosarjat eivät ole vuorovaikutuksessa maksuportaalien kanssa, jotka näytetään ennen kassanäyttöä, kuten Apple Pay. Nämä komentosarjat suoritetaan, kun kassalla siirrytään maksusivulle.

Joitakin metodeja voi käyttää vain maksujen komentosarjoissa.

Yleiset metodit

Seuraavia metodeja voi käyttää kaikentyyppisissä komentosarjoissa:

Syöte

Komentosarjan syötemetodit
MetodiPalautustyyppiKuvaus
.cartOstoskoriPalauttaa muokattavan ostoskori-objektin.
.localemerkkijonoPalauttaa asiakkaan alueen. Esimerkiksi en, fr tai pt-BR.

Ostoskori

Ostoskori-objekti on saatavilla vain verkkokaupassa. Joissakin hylätyissä kassavaiheissa on pääsy ostoskori-objektiin. Jos kassa on kuitenkin suljettu ja asiakas siirtyy hylättyyn kassavaiheeseen, hänet ohjataan esitäytettyyn kassaan, eikä ostoskori-objektia enää ole olemassa. Tämä johtuu siitä, että myyntipaikka on ohitettu hylätystä ostoskorista lähetetyn sähköpostin avulla.

Komentosarjan metodit, jotka käyttävät Ostoskori-objektia
MetodiPalautustyyppiKuvaus
.customerAsiakasPalauttaa ostoskorin omistajan (jos sellainen on).
.shipping_addressToimitusosoitePalauttaa ostoskorin omistajan toimitusosoitteen (jos sellainen on).
.discount_codevaihtelee Palauttaa:

discount_code on olemassa, jos ostoskoriin on sovellettu alennusta. Tämä ei välttämättä tarkoita, että ostoskorin hinta muuttuu. Jos esimerkiksi alennus koskee yli 50 dollarin ostoskoreja ja komentosarja laskee ostoskorin hinnan alle 50 dollariin, discount_code on edelleen olemassa, mutta ostoskorin hinta ei muutu.

<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

Komentosarjan metodit, jotka käyttävät CartDiscount::FixedAmount-objektia
MetodiPalautustyyppiKuvaus
.codeMerkkijonoPalauttaa alennuksen soveltamiseen käytetyn alennuskoodin.
.amountRahaPalauttaa alennuksen rahamäärän.
.reject({ message: Merkkijono })nilHylkää ostoskoriin sovelletun alennuskoodin. message on pakollinen.
.rejected?Boolen arvoPalauttaa tiedon siitä, onko alennuskoodi hylätty.

CartDiscount::Percentage

Komentosarjan metodit, jotka käyttävät CartDiscount::Percentage-objektia
MetodiPalautustyyppiKuvaus
.codeMerkkijonoPalauttaa alennuksen soveltamiseen käytetyn alennuskoodin.
.percentageDesimaalilukuPalauttaa alennuksen prosenttimäärän.
.reject({ message: Merkkijono })nilHylkää ostoskoriin sovelletun alennuskoodin. message on pakollinen.
.rejected?Boolen arvoPalauttaa tiedon siitä, onko alennuskoodi hylätty.

CartDiscount::Shipping

CartDiscount::Shipping-olion skriptimenetelmät
MetodiPalautustyyppiKuvaus
.codeMerkkijonoPalauttaa alennuksen soveltamiseen käytetyn alennuskoodin.
.reject({ message: Merkkijono })nilHylkää ostoskoriin sovelletun alennuskoodin. message on pakollinen.
.rejected?Boolen arvoPalauttaa tiedon siitä, onko alennuskoodi hylätty.

Asiakas

Asiakas-olion skriptimenetelmät
MetodiPalautustyyppiKuvaus
.idKokonaislukuPalauttaa asiakkaan tunnuksen.
.emailMerkkijonoPalauttaa asiakkaan sähköpostiosoitteen.
.tagsList<Tag>Palauttaa luettelon merkkijonoja, jotka vastaavat asiakkaalle asetettuja tunnisteita.
.orders_countKokonaislukuPalauttaa asiakkaan tekemien tilausten kokonaismäärän.
.total_spentRahaPalauttaa kokonaissumman, jonka asiakas on käyttänyt kaikkiin tilauksiin.
.accepts_marketing?Boolen arvoPalauttaa, hyväksyykö asiakas markkinoinnin.

Rivikohta

Rivikohta-olion skriptimenetelmät
MetodiPalautustyyppiKuvaus
.gramsgrammaaPalauttaa rivikohdan kokonaispainon.
.line_priceRahaRivikohdan hinta.
.discounted?Boolen arvoPalauttaa, onko rivikohdan hintaa alennettu skriptillä tai manuaalisesti lisätyllä alennuksella. Alennuskoodien käyttö ei vaikuta palautusarvoon.
.propertiesHajautustauluPalauttaa ominaisuudet, jotka tälle rivikohdalle on määritetty.
.variantVariantPalauttaa rivikohdan edustaman tuoteversion.
.quantityKokonaislukuPalauttaa tämän rivikohdan määrän.
.selling_plan_idKokonaislukuPalauttaa rivikohdan myyntimallin tunnuksen. Tämä menetelmä on hyödyllinen, kun kaupassa myydään toistuvia tilauksia ja haluat skriptin tunnistavan, milloin tuoteversio myydään toistuvana tilauksena.

Luettelo

Luettelo-olion skriptimenetelmät
MetodiPalautustyyppiKuvaus
.newListLuo uuden olion, joka edustaa luetteloa.
.[]Alkio tai nil

Palauttaa alkion määritetystä indeksistä.

.&List

Palauttaa uuden luettelon, joka sisältää molemmille luetteloille yhteiset alkiot ilman kaksoiskappaleita.

.delete_ifListPoistaa alkioita valinnaisen koodilohkon avulla. Katso lisätietoja Rubyn delete_if-menetelmän dokumentaatiosta.
.empty?Boolen arvo

Palauttaa arvon true, jos luettelo ei sisällä alkioita.

.firstAlkio tai nil

Palauttaa ensimmäisen alkion tai arvon nil, jos luettelo on tyhjä.

.index(*args, &block)kokonaisluku tai nil

Palauttaa luettelon ensimmäisen alkion indeksin. Jos argumentin sijaan annetaan lohko, palautetaan sen ensimmäisen alkion indeksi, jolle lohko on tosi.

.rindex(*args, &block)kokonaisluku tai nil

Palauttaa luettelon viimeisen alkion indeksin. Jos argumentin sijaan annetaan lohko, palautetaan sen ensimmäisen alkion indeksi, jolle lohko on tosi.

.lastAlkio tai nil

Palauttaa viimeisen alkion tai arvon nil, jos luettelo on tyhjä.

.lengthkokonaisluku

Palauttaa luettelon alkioiden määrän.

.sizekokonaisluku

Alias length-menetelmälle.

.each(*args, &block)List

Kutsuu lohkoa kerran jokaista luettelon alkiota kohti ja välittää alkion parametrina lohkolle.

Toimitusosoite

Toimitusosoite-olion skriptimenetelmät
MetodiPalautustyyppiKuvaus
.namemerkkijonoPalauttaa toimitusosoitteeseen liitetyn henkilön nimen.
.address1merkkijonoPalauttaa toimitusosoitteen katuosoiteosan.
.address2merkkijonoPalauttaa toimitusosoitteen katuosoitteen valinnaisen lisäkentän.
.phonemerkkijonoPalauttaa toimitusosoitteen puhelinnumeron.
.citymerkkijonoPalauttaa toimitusosoitteen kaupungin.
.zipmerkkijonoPalauttaa toimitusosoitteen postinumeron.
.provincemerkkijonoPalauttaa toimitusosoitteen maakunnan/osavaltion.
.province_codemerkkijonoPalauttaa toimitusosoitteen maakunnan/osavaltion lyhennetyn arvon.
.country_codemerkkijonoPalauttaa toimitusosoitteen maan lyhennetyn arvon.

Money

Money-olion skriptimenetelmät
MetodiPalautustyyppiKuvaus
.derived_from_presentment(customer_cents:X)RahaKonvertoi summan (sentteinä) asiakkaan paikallisesta (esitys)valuutasta kauppasi valuuttaan. Metodi hyväksyy customer_cents-parametrin, joka hyväksyy luvun sentteinä. Esimerkiksi Money.derived_from_presentment(customer_cents: 500).
.newRahaLuo uuden objektin, joka edustaa hintaa.
.zeroRaha

Luo uuden objektin, jonka hinta on nolla.

+RahaLaskee yhteen kaksi Money-objektia.
-RahaVähentää yhden Money-objektin toisesta.
*RahaKertoo Money-objektin luvulla.

Money-esimerkkejä

Money.new(cents: 1000)

Luo Money-objektin, joka vastaa 1 000 senttiä eli 10 $.

Money.new(cents: 100) * 50

Luo Money-objektin, joka vastaa 1 $:a, ja kertoo sitten kyseisen summan 50:llä. Palauttaa Money-objektin, joka vastaa 50 $:a.

Versio

Variant-objektia käyttävät skriptimetodit
MetodiPalautustyyppiKuvaus
.idKokonaislukuPalauttaa version tunnuksen.
.priceRahaPalauttaa version yksikköhinnan.
.productTuotePalauttaa versioon liittyvän tuotteen.
.skusLuettelo<merkkijono>Palauttaa version varastoyksiköt (SKU-koodit), joita käytetään usein varaston seurantaan.
.titleMerkkijonoPalauttaa version nimen.

Tuote

Product-objektia käyttävät skriptimetodit
MetodiPalautustyyppiKuvaus
.idKokonaislukuPalauttaa tuotteen tunnuksen.
.gift_card?Boolen arvoPalauttaa tiedon siitä, onko tuote lahjakortti.
.tagsList<Tag>Palauttaa merkkijonoluettelon, joka sisältää tälle tuotteelle asetetut tunnisteet.
.product_typeMerkkijonoTuotteeseen liitettävä luokittelu, jota käytetään yleisesti suodattamiseen ja hakemiseen.
.vendorMerkkijonoPalauttaa tämän tuotteen myyjän.

Kernel

Kernel on Ruby-moduuli, joka sisältyy jokaiseen luokkaan. Tämän seurauksena sen metodit ovat jokaisen objektin käytettävissä. Nämä metodit toimivat samalla tavalla kuin globaalit funktiot muissa kielissä.

Kernel-objektia käyttävät skriptimetodit
MetodiPalautustyyppiKuvaus
.exitei mitäänPäättää nykyisen skriptin suorituksen ilman virhettä. Jos tämä suoritetaan ennen kuin mitään on määritetty Output.cart-kohteeseen, skriptillä ei ole vaikutusta. Tämä on hyödyllinen tapa poistua skripteistä esimerkiksi silloin, jos asiakas ei ole oikeutettu suorittamaan skriptiä.

Kernel-esimerkki

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

Rivikohtien metodit

Seuraavat metodit ovat käytettävissä vain rivikohtaskripteissä:

Ostoskori

Cart-objektia käyttävät skriptimetodit rivikohtaskripteissä
MetodiPalautustyyppiKuvaus
.subtotal_price_wasRahaPalauttaa ostoskorin välisumman ennen alennusten lisäämistä.
.subtotal_price_changed?Boolen arvoPalauttaa tiedon siitä, onko välisumma muuttunut.

Rivikohta

LineItem-objektia käyttävät skriptimetodit rivikohtaskripteissä
MetodiPalautustyyppiKuvaus
.change_line_price(Money new_price, { message: merkkijono }) RahaMuuttaa rivikohdan hinnan määritettyyn summaan. message on pakollinen. new_price-arvon on oltava nykyistä hintaa alhaisempi.
.original_line_priceRahaPalauttaa rivikohdan alkuperäisen hinnan ennen skriptien ja alennusten soveltamista.
.line_price_wasRahaPalauttaa rivikohdan hinnan ennen kuin nykyinen skripti sovelsi muutoksia.
.line_price_changed?Boolen arvoPalauttaa tiedon siitä, onko rivikohdan hinta muuttunut.
.change_properties(hajautustaulu new_properties, { message: merkkijono }) HajautustauluAsettaa rivikohdalle uudet ominaisuudet. Alkuperäinen ominaisuuksien hajautustaulu tallennetaan properties_was-kohteeseen, ja metodille välitetystä ominaisuuksien hajautustaulusta tulee rivikohdan uudet ominaisuudet.
.properties_wasHajautustauluPalauttaa rivikohdan alkuperäisen ominaisuuksien hajautustaulun ennen muutosten soveltamista.
.properties_changed?Boolen arvoPalauttaa tiedon siitä, onko rivikohdan ominaisuuksia muutettu.
.split({ take: kokonaisluku })RivikohtaJakaa rivikohdan kahdeksi rivikohdaksi. take määrittää, mikä määrä poistetaan alkuperäisestä rivikohdasta uuden rivikohdan luomiseksi.

.split-esimerkki

Tämä esimerkkiskripti jakaa original_line_item-nimisen rivikohdan kahdeksi rivikohdaksi. Uuden rivikohdan määrä on 1 (määritettynä take: 1). Sitten skripti soveltaa uuteen rivikohtaan alennetun hinnan viestillä ”Kolmas hattu 5 dollarilla”.

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

Versio

Variant-objektia käyttävät skriptimetodit rivikohtaskripteissä
MetodiPalautustyyppiKuvaus
.compare_at_priceRahaPalauttaa version vertailuhinnan. Palauttaa nil, jos versiolla ei ole vertailuhintaa.

Toimitusmetodit

Seuraavat metodit ovat käytettävissä toimitusskripteissä:

Syöte

Input-objektia käyttävät skriptimetodit toimitusskripteissä
MetodiPalautustyyppiKuvaus
.shipping_ratesToimitusmaksuLuetteloPalauttaa luettelon kaikista toimitushinnoista.

ShippingRateList

ShippingRateList-objektin komentosarjamenetelmät toimituskomentosarjoissa
MetodiPalautustyyppiKuvaus
.delete_ifToimitusmaksuLuetteloPoista toimitushinnat valinnaisella koodilohkolla. Katso lisätietoja Rubyn delete_if-menetelmän dokumentaatiosta.
.sort!ToimitusmaksuLuetteloJärjestä toimitushinnat vertailuoperaattorilla tai valinnaisella koodilohkolla. Katso lisätietoja Rubyn sort!-menetelmän dokumentaatiosta.
.sort_by!ToimitusmaksuLuetteloJärjestä toimitushinnat valinnaisella koodilohkolla. Katso lisätietoja Rubyn sort_by!-menetelmän dokumentaatiosta.

ShippingRate

ShippingRate-objektin komentosarjamenetelmät toimituskomentosarjoissa
MetodiPalautustyyppiKuvaus
.codeMerkkijonoPalauttaa toimitushinnan koodin.
.markupRahaPalauttaa toimitushinnan marginaalin, jos sovellettavissa.
.nameMerkkijonoPalauttaa toimitushinnan nimen. Sitä voidaan muokata change_name-menetelmällä.
.priceRahaPalauttaa toimitushinnan.
.sourceMerkkijonoPalauttaa toimitushintaan liitetyn lähteen (kuljetuspalvelun), jos se on oleellista. Sitä ei voi muokata.
.change_name(String new_name)Merkkijono Muuttaa toimitushinnan nimen (enintään 255 merkkiä). Lähdettä ei voi muuttaa, poistaa tai piilottaa.
.apply_discount(Money discount, { message: String })RahaLisää määritetyn kiinteän summan suuruisen alennuksen. Hintaa ei voi laskea alle nollan. Viesti vaaditaan.
.phone_required?Boolen arvoPalauttaa arvon true, jos puhelinnumero vaaditaan toimitushinnan saamiseksi, tai arvon false, jos puhelinnumeroa ei vaadita.

Maksutavat

Seuraavia menetelmiä voi käyttää maksukomentosarjaoissa:

Syöte

Input-objektin komentosarjamenetelmät maksukomentosarjaoissa
MetodiPalautustyyppiKuvaus
.payment_gatewaysPaymentGatewaysListPalauttaa luettelon kaikista kaupan maksuportaaleista.

PaymentGatewayList

PaymentGatewayList-objektin komentosarjamenetelmät maksukomentosarjaoissa
MetodiPalautustyyppiKuvaus
.delete_ifPaymentGatewayListPoista maksuportaalit valinnaisella koodilohkolla. Katso lisätietoja Rubyn delete_if-menetelmän dokumentaatiosta.
.sort!PaymentGatewayListJärjestä maksuportaalit vertailuoperaattorilla tai valinnaisella koodilohkolla. Katso lisätietoja Rubyn sort!-menetelmän dokumentaatiosta.
.sort_by!PaymentGatewayListJärjestä maksuportaalit valinnaisella koodilohkolla. Katso lisätietoja Rubyn sort_by!-menetelmän dokumentaatiosta.

PaymentGateway

MetodiPalautustyyppiKuvaus
.nameMerkkijonoPalauttaa maksuportaalin nimen.
.enabled_card_brandsLuettelo<merkkijono>

Jos maksuportaali tukee luottokortteja, se palauttaa luettelon kaupan hyväksymistä luottokorttityypeistä. Jos portaali ei tue luottokortteja, se palauttaa tyhjän luettelon.

.change_name(String new_name)MerkkijonoMuuttaa maksuportaalin nimen. Logolla varustettuja maksuportaaleja ei voi nimetä uudelleen.

Esimerkit

Seuraavassa rivikohdan komentosarjaesimerkissä tuotteen hintaa alennetaan 9 dollarilla, kun asiakas tilaa muun tuotteen kuin lahjakortin. Esimerkissä näytetään myös asiakkaan kaikilla kaupassasi tekemillään käynneillä käyttämä kokonaissumma:

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

Lue lisää

Lue lisää seuraavista aiheista: