Shopifyn komentosarja-API -viite

Komentosarjat on kirjoitettu Ruby-API -kielellä, mikä lisää hallittavuutta ja joustavuutta huomattavasti.

Komentosarjatyyppejä on erilaisia. Kun luot komentosarjan Script Editor -sovelluksessa, komentosarjalle määritetään tyyppi sen perusteella, minkä komentosarjamallin valitset:

Rivikohdan komentosarjat

Rivikohdan komentosarjat vaikuttavat ostoskorissa oleviin riveihin ja voivat muuttaa hintoja sekä myöntää alennuksia. Nämä komentosarjat suoritetaan, kun koriin tehdään muutos.

Rivikohdan komentosarjoja, jotka alentavat tilauksen hintaa, sovelletaan vain tilauksen ensimmäiseen maksuun. Komentosarja ei alenna myöhempiä maksuja.

Joitakin menetelmiä voidaan käyttää vain rivikohdan komentosarjoissa.

Toimituskomentosarjat

Toimituskomentosarjat ovat vuorovaikutuksessa toimituksen kanssa, ja ne voivat muuttaa toimitustapoja sekä myöntää alennuksia toimitushinnoista. Nämä komentosarjat suoritetaan, kun kassalla päädytään toimitusvaihtoehtojen sivulle.

Toimituskomentosarjoja, jotka alentavat tilauksen toimitusmaksua, sovelletaan vain tilauksen ensimmäiseen maksuun. Komentosarja ei alenna myöhempiä maksuja.

Joitakin menetelmiä voidaan käyttää vain toimituskomentosarjoissa.

Maksukomentosarjat

Maksukomentosarjat toimivat yhdessä maksujenkanssa, ja niillä voidaan nimetä uudelleen maksuportaaleja, piilottaa niitä ja järjestää niitä uudelleen. Huomaa, että maksukomentosarjat eivät toimi vuorovaikutuksessa ennen kassan näyttöä näytettävien maksuportaalien kuten Apple payn kanssa. Nämä komentosarjat suoritetaan, kun kassalla päädytään maksusivulle.

Joitakin menetelmiä voidaan käyttää vain maksukomentosarjoissa.

Yleiset menetelmät

Seuraavat menetelmät ovat käytettävissä missä tahansa komentosarjassa:

Syöttää

Komentosarjan syötetavat
TapaPalautustyyppiKuvaus
.cartOstoskoriPalauttaa muutettavan ostoskorin kohteen.
.localemerkkijonoPalauttaa asiakkaan sijainnin. Esimerkiksi en fr tai pt-BR.

Ostoskori

Ostoskorin kohde on käytettävissä vain verkkokaupassa. Joissakin hylätyissä ostoskoreissa on pääsy ostoskorin kohteeseen. Jos maksu on kuitenkin suljettu ja asiakas vierailee hylätyssä ostoskorissa, hänet lähetetään esitäytettyyn maksuvaiheeseen eikä ostoskorin kohdetta enää ole. Tämä johtuu siitä, että myyntipaikka on ohitettu sähköpostilla hylätystä ostoskorista.

Komentosarjamenetelmät, joissa käytetään ostoskorin kohdetta
TapaPalautustyyppiKuvaus
.customerAsiakasPalauttaa ostoskorin omistajan (jos sellainen on).
.shipping_addressToimitusosoitePalauttaa ostoskorin omistajan (jos sellainen on) toimitusosoitteen.
.discount_codeVaihtelee Palautukset:

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

Katso esimerkki: discount_code.

.line_items Luettelo <LineItem>Palauttaa luettelon, joka sisältää ostoskorissa olevat rivikohdat.
.presentment_currency Luettelo<String>Palauttaa asiakkaan paikallisen (esitys-) valuutan (ISO 4217 -muodossa). Esimerkiksi USD.
.subtotal_priceRahaPalauttaa ostoskorin välisumman hinnan, kun rivikohdan alennukset on sovellettu, mutta ennen kuin alennuskoodeja sovelletaan.
.total_weightgrammatPalauttaa kaikkien ostoskorissa olevien rivikohtien kokonaispainon.

CartDiscount::FixedAmount

Komentosarjamenetelmät, joissa käytetään CartDiscount::FixedAmount -kohdetta
TapaPalautustyyppiKuvaus
.codeMerkkijonoPalauttaa alennuskoodin, jolla alennusta sovelletaan.
.amountRahaPalauttaa alennuksen rahasumman.
.reject({ message: String })NilHylkää ostoskoriin sovellettavan alennuskoodin. message vaaditaan.
.rejected?TotuusarvoPalauttaa, josko alennuskoodi on hylätty.

CartDiscount::Percentage

Komentosarjamenetelmät, joissa käytetään CartDiscount::Percentage -kohdetta
TapaPalautustyyppiKuvaus
.codeMerkkijonoPalauttaa alennuskoodin, jolla alennusta sovelletaan.
.prosentuaalinen summaDesimaaliPalauttaa alennuksen prosenttimäärän.
.reject({ message: String })NilHylkää ostoskoriin sovellettavan alennuskoodin. message vaaditaan.
.rejected?TotuusarvoPalauttaa, josko alennuskoodi on hylätty.

CartDiscount:: Shipping

Komentosarjamenetelmät, joissa käytetään CartDiscount:: Shipping-objektia
TapaPalautustyyppiKuvaus
.codeMerkkijonoPalauttaa alennuskoodin, jolla alennusta sovelletaan.
.reject({ message: String })NilHylkää ostoskoriin sovellettavan alennuskoodin. message vaaditaan.
.rejected?TotuusarvoPalauttaa, josko alennuskoodi on hylätty.

Asiakas

Komentosarjamenetelmät Asiakasobjektin avulla
TapaPalautustyyppiKuvaus
.idKokonaislukuPalauttaa asiakkaan tunnusnumeron.
.emailMerkkijonoPalauttaa asiakkaan sähköpostiosoitteen.
.tags Luettelo <Tag>Palauttaa luettelon merkkijonoista, jotka edustavat kaikkia asiakkaan tunnisteita.
.orders_countKokonaislukuPalauttaa asiakkaan tekemän tilauksen kokonaismäärän.
.total_spentRahaPalauttaa kokonaissumman, jonka asiakas on käyttänyt kaikille tilauksille.
Marketing?TotuusarvoPalauttaa, hyväksyykö asiakas markkinoinnin.

LineItem

<tdgrammat
Komentosarjamenetelmät, joissa käytetään LineItem-objektia
TapaPalautustyyppiKuvaus
.gramsPalauttaa rivikohdan kokonaispainon.
.line_priceRahaRivikohdan hinta.
tujen?TotuusarvoTämä palauttaa tiedon, onko rivikohdan hintaa alennettu komentosarjalla vai manuaalisesti käytetyllä alennuksella. Alennuskoodien käyttäminen ei vaikuta palautusarvoon.
.propertiesHashPalauttaa tämän rivin nimikkeille määritetyt ominaisuudet.
.variantVersioPalauttaa tuoteversion, jota rivikohta edustaa.
.quantityKokonaislukuPalauttaa tämän rivikohdan määrän.
.selling_plan_idKokonaislukuPalauttaa rivikohdan myyntisopimuksen tunnuksen. Tämä menetelmä on hyödyllinen, kun kauppa myy tuotetilauksia ja haluat, että komentosarja havaitsee, kun tuoteversio myydään tilauksena.

Luettelo

Komentosarjamenetelmät Luetteloobjektin avulla
TapaPalautustyyppiKuvaus
.newLuetteloLuo uuden objektin, joka edustaa luetteloa.
.[]Elementti tai nolla

Palauttaa määritetyn indeksin elementin.

. &Luettelo

Palauttaa uuden luettelon, joka sisältää kahta luetteloa varten samat elementit, joissa ei ole kaksoiskappaleita.

.delete_ifLuetteloPoista elementtejä käyttämällä valinnaista koodilohkoa. Katso Rubyn delete_if-menetelmän asiakirjat.
jä?Totuusarvo

Palauttaa true , jos luettelossa ei ole elementtejä.

.firstElementti tai nolla

Palauttaa ensimmäisen elementin tai nil Jos luettelo on tyhjä.

.index (* args, & lohko)INT tai Nil

Palauttaa luettelon ensimmäisen elementin indeksin. Jos argumentin sijasta annetaan lohko, funktio palauttaa sen ensimmäisen elementin indeksin, jonka lohko on tosi.

.rindex(*args, &block)INT tai Nil

Palauttaa luettelon viimeisen elementin indeksin. Jos argumentin sijasta annetaan lohko, funktio palauttaa sen ensimmäisen elementin indeksin, jonka lohko on tosi.

.lastElementti tai nolla

Palauttaa viimeisen elementin tai nil Jos luettelo on tyhjä.

.lengthInt.

Palauttaa luettelon elementtien määrän.

.sizeInt.

Pituuden alias.

.each(*args, &block)Luettelo

Kutista kunkin luettelon elementin jälkeen lohkon, joka välittää elementin lohkon parametrina.

Toimitusosoite

Komentosarjamenetelmät käyttämällä ShippingAddress-objektia
TapaPalautustyyppiKuvaus
.namemerkkijonoPalauttaa toimitusosoitteeseen liitetyn henkilön nimen.
.address1merkkijonoPalauttaa toimitusosoitteen kadunosoitteen osan.
.address2merkkijonoPalauttaa toimitusosoitteen kadunosoiteosan valinnaisen lisäkentän.
.phonemerkkijonoPalauttaa toimitusosoitteen puhelinnumeron.
.citymerkkijonoPalauttaa toimitusosoitteen kaupungin.
.zipmerkkijonoPalauttaa Toimitusosoitteen postinumero.
.provincemerkkijonoPalauttaa toimitusosoitteen maakunta/osavaltion.
.province_codemerkkijonoPalauttaa toimitusosoitteen maakunta/osavaltion lyhenidun arvon.
.country_codemerkkijonoPalauttaa toimitusosoitteen maan lyhenidun arvon.

Raha

Komentosarjamenetelmät käyttämällä Rahankohdetta
TapaPalautustyyppiKuvaus
. derived_from_presentment (customer_cents:X)RahaMuuntaa summan (senttiä) asiakkaan paikallisesta (esitys-) valuutasta kaupan valuuttaan. Tämä menetelmä hyväksyy customer_cents parametrin, joka hyväksyy luvun senttejä. Esimerkiksi Money.derived_from_presentment(customer_cents: 500) .
.newRahaLuo uuden objektin, joka edustaa hintaa.
.zeroRaha

Luo uuden objektin, jonka hinta on nolla.

+RahaLisää kaksi Money objektia.
-RahaVähentää yhden Money objektin toisesta sovelluksesta.
*RahaKertaa Money objektin numerolla.

Esimerkkejä rahankäytöstä

Money.new(cents: 1000)

Luo Money object, joka edustaa 1000 senttiä tai $10.

Money.new(cents: 100) * 50

Luo Money object, joka edustaa $1, ja sitten kertoo, että summa on 50. Palauttaa Money object, joka edustaa $50.

Versio

Komentosarjamenetelmät, joissa käytetään versioobjektia
TapaPalautustyyppiKuvaus
.idKokonaislukuPalauttaa version tunnusnumeron.
.priceRahaPalauttaa version yksikköhinnan.
.productTuotePalauttaa tuoteversion liittyvän tuotteen.
.SKUs Luettelo<String>Palauttaa tuoteversion SKU-koodit, joita käytetään usein varaston seurannassa.
.titleMerkkijonoPalauttaa version nimen.

Tuote

Komentosarjamenetelmät tuoteobjektin avulla
TapaPalautustyyppiKuvaus
.idKokonaislukuPalauttaa tuotteen tunnusnumeron.
.gift_card?TotuusarvoPalauttaa, onko tuote lahjakortti.
.tags Luettelo <Tag>Palauttaa luettelon merkkijonoista, jotka edustavat tälle tuotteelle asetettuja tunnisteita.
.product_typeMerkkijonoLuokittelus, johon tuote voidaan merkitä, ja sitä käytetään yleisesti suodatus-ja hakutuloksissa.
.myyjäMerkkijonoPalauttaa tämän tuotteen myyjän.

Ytimen

Kernel on Ruby-moduuli, joka sisältyy jokaiseen luokkaan. Tämän takia sen metodit ovat saatavilla jokaiseen kohteeseen. Ne käyttäytyvät samoin kuin globaalit funktiot muissa kielissä.

Komentosarjamenetelmät, joissa käytetään ydinobjektia
TapaPalautustyyppiKuvaus
.exitMikäänLopettaa senhetkisen komentosarjan suorituksen ilman virhettä. Jos tämä suoritetaan ennen kuin jotain on määritetty Output.cart , komentojonolla ei ole vaikutusta. Tämä on hyödyllinen tapa poistua komentosarjasta, esimerkiksi jos asiakas ei ole oikeutettu suorittamaan komentosarjaa.

Ytimen esimerkki

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

Rivikohtaiset menetelmät

Seuraavat menetelmät ovat käytettävissä vain Rivikohtien komentosarjoissa:

Ostoskori

Komentosarjaobjekti käyttämällä rivikohdan komentosarjoja Ostoskorisesoluissa
TapaPalautustyyppiKuvaus
.subtotal_price_wasRahaPalauttaa kaupan välisumman, ennen kuin alennuksia on sovellettu.
.subtotal_price_changed?TotuusarvoPalauttaa, onko välisumhinta muuttunut.

LineItem-objekti

Komentosarjamenetelmät, joissa käytetään Linekohde-objektia Rivikohtien komentosarjoissa
TapaPalautustyyppiKuvaus
.change_line_price(Money new_price, { message: String }) RahaMuuta rivikohdan hintaa määritettyyn summaan. A message on pakollinen. on new_price oltava alhaisempi kuin nykyisellä hinnalla.
.original_line_priceRahaPalauttaa rivikohdan alkuperäisen hinnan, ennen kuin komentosarjat ja alennukset otettiin käyttöön.
.line_price_wasRahaPalauttaa rivikohdan hinnan, ennen kuin senhetkinen komentosarja on käyttänyt muutoksia.
.line_price_changed?TotuusarvoPalauttaa, onko rivikohan hinta muuttunut.
.change_properties(hash new_properties, { message: String }) HashAsettaa rivikohtaa varten uusia ominaisuuksia. Alkuperäisten ominaisuuksien hajautus tallennetaan properties_was kohteeseen, ja menetelmään siirrellä ominaisuuksien hajautus muuttuu rivikohdan uusiksi ominaisuuiksi.
.properties_wasHashPalauttaa rivikohdan alkuperäisten ominaisuuksien hajautuksen ennen muutosten soveltamista.
.properties_changed?TotuusarvoPalauttaa, onko rivikohan ominaisuuksia muutettu.
.split({ take: Integer })LineItem-objektiJaot rivikohdan kahteen rivikohtaan. takemäärittää, mitä määrä poistetaan alkuperäisestä rivikohdasta uuden rivikohdan luomiseksi.

.split-esimerkki

Tämä esimerkkijono jakaa rivikohdan nimeltä original_line_item into kahteen rivikohtaan. Uuden rivikohdan määrä on 1 (take: 1) määrittämällä. Komentosarja käyttää sitten alennettua hintaa uudelle rivikohtaan, jossa on viesti "kolmas hattu 5 dollariin".

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

Komentosarjamenetelmät, joissa käytetään versiokohdetta Rivikohtien komentosarjoissa
TapaPalautustyyppiKuvaus
.compare_at_priceRahaPalauttaa version vertailuhinnan. Palautettu arvo on nolla, jos versiolla ei ole vertailuhintaa.

Toimitustavat

Seuraavat menetelmät ovat käytettävissä toimituskomentosarjoissa:

Syöttää

Komentojonotavat Syöttöobjektin käyttäminen lähetyskomentosarjoissa
TapaPalautustyyppiKuvaus
.shipping_ratesShippingRateListPalauttaa luettelon kaikista toimitushinnoista.

ShippingRateList

Komentosarjamenetelmät, joissa käytetään ShippingRateList-objektia lähetyskomentosarjoissa
TapaPalautustyyppiKuvaus
.delete_ifShippingRateListPoista toimitusmaksut käyttämällä valinnaista koodilohkoa. Katso Ruby delete_if -menetelmändokumentaatio.
lajitella!ShippingRateListLajittele toimituskulut vertailuoperaattorin käyttämällä tai käytä valinnaista koodilohkoa. Katso Ruby sort! -menetelmändokumentaatio.
.sort_by!ShippingRateListLajittele toimitusmaksut käyttämällä valinnaista koodilohkoa. Katso Ruby sort_by! -menetelmändokumentaatio.

ShippingRate

Komentosarjamenetelmät, jotka käyttävät Lähetyskomentosarjat ShippingRate-objektia
TapaPalautustyyppiKuvaus
.codeMerkkijonoPalauttaa toimitusmaksun koodin.
.markupRahaPalauttaa toimitusmaksun marginaalin, jos mahdollista.
.nameMerkkijonoPalauttaa toimituskulun nimen. Voidaan muokata käyttämällä change_name-toimintoa.
.priceRahaPalauttaa toimitusmaksun hinnan.
.lähdeMerkkijonoPalauttaa toimitushintaan liittyvän lähteen (kuljetuspalvelun), jos sellainen on. Sitä ei voi muokata.
.change_name(String new_name)Merkkijono Muuttaa toimituskulujen nimeä (enintään 255 merkkiä). Lähteen muuttaminen, poistaminen tai piilottaminen ei ole mahdollista.
.apply_discount(Money discount, { message: String })RahaOttaa käyttöön määritetyn kiinteän summan alennuksen. Hinnan hintaa ei voi vähentää alle 0. Viesti on pakollinen.
.phone_required?TotuusarvoPalauttaa true , jos puhelinnumero on pakollinen toimitusmaksun saadakseen tai false Jos puhelinnumeroa ei tarvita.

Maksutavat

Seuraavat menetelmät ovat käytettävissä maksukomentosarjoissa:

Syöttää

Komentojonomenetelmät Syöttöobjektin käyttäminen maksukomentosarjoissa
TapaPalautustyyppiKuvaus
.payment_gatewaysPaymentGatewaysListPalauttaa luettelon kaikista kaupan maksuportaaleja.

PaymentGatewayList

Script Methods-maksukomentosarja-objektin käyttäminen maksukomentosarjoissa
TapaPalautustyyppiKuvaus
.delete_ifPaymentGatewayListPoista maksuportaaleja käyttämällä valinnaista koodilohkoa. Katso Ruby delete_if -menetelmändokumentaatio.
lajitella!PaymentGatewayListLajittele maksuportaaleja vertailuoperaattoria käyttäen tai käytä valinnaista koodilohkoa. Katso Ruby sort! -menetelmändokumentaatio.
.sort_by!PaymentGatewayListVoit lajitella maksuportaaleja käyttämällä valinnaista koodilohkoa. Katso Ruby sort_by! -menetelmändokumentaatio.

Maksuportaalia

TapaPalautustyyppiKuvaus
.nameMerkkijonoPalauttaa maksuportaalin nimen.
.enabled_card_brands Luettelo<String>

Jos maksuportaalissa tuetaan luottokortteja, se palauttaa luettelon luottokortyypeistä, jotka kauppa hyväksyy. Jos maksuportaali ei tue luottokortteja, funktio palauttaa tyhjän luettelon.

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

Esimerkkejä

Kun asiakas tilaa seuraavasta komentorivikomentosarjasta esimerkin, joka ei ole lahjakortti, tuotteen hintaa alennetaan $9 mennessä. Näkyvillä on myös kokonaissumma, jonka asiakas on käyttänyt kaikkien kauppasi käyntien aikana:

Asiakas = syötteet. Asiakassyöte line_items. Jokainen do | Line | Tuote = Line seuraava, jos tuote gift_card? Line _ change_line_price (Line line_price-raha. uusi (sentti-900), viesti: asiakas. total_spent) Lopeta lähtö. cart = syöttö.

Lisätietoja

Lisätietoja aiheesta:

Etkö löydä hakemaasi vastausta? Autamme mielellämme.