API-referanse for Shopify Scripts

Skript er skrevet med en Ruby API som gir deg en god del kontroll og fleksibilitet.

Det finnes ulike skripttyper. Et skript tildeles en type når du oppretter skriptet i Script Editor-appen, basert på hvilken skriptmal du velger å starte med:

Varelinjeskript

Varelinjeskript påvirker varelinjer i handlekurven og kan endre priser og gi rabatter. Disse skriptene kjøres når en endring gjøres i handlekurven.

Varelinjeskript som rabatterer et abonnement gjelder bare for den første betalingen av abonnementet. Påfølgende betalinger rabatteres ikke av skriptet.

Noen metoder kan bare brukes på varelinjeskript.

Fraktskript

Fraktskript samhandler med frakt, og kan endre fraktmetoder og legge til rabatter på fraktpriser. Disse skriptene kjører når betalingsprosessen kommer til siden med leveringsalternativer.

Fraktskript som rabatterer fraktsatsen for et abonnement gjelder bare for den første betalingen i et abonnement. Påfølgende betalinger rabatteres ikke av skriptet.

Noen metoder kan bare brukes i leveringsskript.

Betalingsskript

Betalingsskriptene samhandler med betalinger og kan gi nytt navn og skjule og endre rekkefølge på betalingsgatewayer. Merk at betalingsskript ikke samhandler med betalingsgatewayer som vises før betalingsskjermen, for eksempel Apple Pay. Disse skriptene kjøres når kunden kommer til betalingssiden.

Noen metoder kan bare brukes i betalingsskript.

Generelle metoder

Følgende metoder kan brukes i alle skripttyper:

Overtre

Inndatametoder for skript
Metode Returtype Beskrivelse
.cart Handlekurv Returnerer et foranderlig handlekurvobjekt.
.locale streng Returnerer kundens nasjonale innstilling. For eksempel, en, fr eller pt-BR .

Handlekurv

Handlekurvobjektet er kun tilgjengelig i nettbutikken. Noen forlatte kasser har tilgang til handlekurvobjektet. Men dersom en kasse har blitt lukket og en kunde deretter besøker den forlatte kassen, sender den kunden til den forhåndsutfylte kassen, og handlekurvobjektet finnes da ikke lenger. Dette er fordi utstillingsvinduet har blitt forbigått av e-posten for forlatt kasse.

Skriptmetoder med handlekurvobjektet
Metode Returtype Beskrivelse
.customer Kunde Returnerer eieren av handlekurven (hvis det er noen).
.shipping_address Leveringsadresse Returnerer leveringsadressen til eieren av handlekurven (hvis det er noen).
.discount_code varierer Returnerer:

discount_code er til stede hvis en rabatt har blitt brukt i handlekurven. Dette betyr ikke nødvendigvis at prisen på handlekurven endres. For eksempel: Dersom en rabatt gjelder for handlekurver med totalbeløp på over 50 dollar og et skript reduserer handlekurvprisen til under 50 dollar, vil discount_code fortsatt gjelde, men prisen på handlekurven endres ikke.

Se et eksempel på discount_code.

.line_items List<LineItem> Returnerer en liste som inneholder linjevarene i handlekurven.
.presentment_currency List<String> Returnerer kundens lokale (presentasjons-) valuta (i ISO 4217-format). For eksempel USD.
.subtotal_price Penger Returnerer delsummen for handlekurven etter at det legges til rabatter på varelinjer, men før det legges til rabattkoder.
.total_weight gram Returnerer den totale vekten til alle varelinjene i handlekurven.

CartDiscount::FixedAmount

Skriptmetoder med CartDiscount:: FixedAmount-objekt
Metode Returtype Beskrivelse
.code Streng Returnerer rabattkoden som brukes til å legge til rabatten.
.amount Penger Returnerer pengebeløpet til rabatten.
.reject({ message: String }) nil Avviser rabattkoden som er brukt i handlekurven. En melding er påkrevet.
.rejected? Boolsk Returnerer om rabattkoden ble avvist.

CartDiscount::Percentage

Skriptmetoder som bruker CartDiscount::Percentage-objekt
Metode Returtype Beskrivelse
.code Streng Returnerer rabattkoden som brukes til å legge til rabatten.
.percentage Desimal Returnerer prosentbeløpet av rabatten.
.reject({ message: String }) nil Avviser rabattkoden som er brukt i handlekurven. En melding er påkrevet.
.rejected? Boolsk Returnerer om rabattkoden ble avvist.

CartDiscount::Shipping

Skriptmetoder som bruker CartDiscount::Shipping-objektet
Metode Returtype Beskrivelse
.code Streng Returnerer rabattkoden som brukes til å legge til rabatten.
.reject({ message: String }) nil Avviser rabattkoden som er brukt i handlekurven. En melding er påkrevet.
.rejected? Boolsk Returnerer om rabattkoden ble avvist.

Kunde

Skriptmetoder som bruker kundeobjektet
Metode Returtype Beskrivelse
.id Heltall Returnerer kundens ID-nummer.
.email Streng Returnerer kundens e-postadresse.
.tags List<Tag> Returnerer en liste over strenger som representerer enhver tagg som er angitt for en kunde.
.orders_count Heltall Returnerer totalt antall bestillinger en kunde har lagt inn.
.total_spent Penger Returnerer det totale beløpet kunden har brukt på alle bestillinger.
.accepts_marketing? Boolsk Returnerer om kunden godtar markedsføring.

LineItem

<tdgrams
Skript metoder som bruker LineItem-objektet
Metode Returtype Beskrivelse
.grams Returnerer totalvekten til varelinjen.
.line_price Penger Prisen på linjevaren.
.discounted? Boolsk Returnerer hvorvidt prisen på en varelinje er rabattert av et skript eller av en manuell rabatt. Bruken av rabattkoder påvirker ikke returverdien.
.properties hash Returnerer egenskapene som ble angitt for denne varelinjen.
.variant Variant Returnerer den spesifikke produktvarianten som representeres av varelinjen.
.quantity Heltall Returnerer antallet for denne varelinjen.
.selling_plan_id Heltall Returnerer ID-en for salgsplanen til varelinjen. Denne metoden er nyttig når butikken selger abonnementer, og du ønsker at skriptet skal oppdage når en produktvariant selges som et abonnement.

Liste

Skriptmetoder som benytter listeobjekt
Metode Returtype Beskrivelse
.new Liste Oppretter et nytt objekt for å representere en liste.
.[] Element eller null

Returnerer elementet i den angitte indeksen.

.& Liste

Returnerer en ny liste som inneholder elementer som er felles for de to listene, uten duplikater.

.delete_if Liste Slett elementer med en valgfri kodeblokk. Se dokumentasjonen for Rubys delete_if-metode.
.empty? Boolsk

Returnerer true dersom listen ikke inneholder noen elementer.

.first Element eller null

Returnerer det første elementet eller nil dersom listen er tom.

.index(*args, &block) int eller nil

Returnerer indeksen for det første elementet i listen. Hvis en blokk er gitt i stedet for et argument, returneres indeksen for det første elementet som blokken er sann for.

.rindex(*args, &block) int eller nil

Returnerer indeksen til det siste elementet i listen. Hvis en blokk er gitt i stedet for et argument, returneres indeksen for det første elementet som blokken er sann for.

.last Element eller null

Returnerer det siste elementet eller nil dersom listen er tom.

.length int

Returnerer antall elementer i listen.

.size int

Alias for lengde.

.each(*args, &block) Liste

Kaller en blokk én gang for hvert element i listen, og sender elementet som en parameter til blokken.

Leveringsadresse

Skriptmetoder som benytter ShippingAddress-objektet
Metode Returtype Beskrivelse
.name streng Returnerer navnet til personen som er knyttet til leveringsadressen.
.address1 streng Returnerer gateadresse-seksjonen av leveringsadressen.
.address2 streng Returnerer det valgfrie tilleggsfeltet i gateadressedelen av leveringsadressen.
.phone streng Returnerer telefonnummeret til leveringsadressen.
.city streng Returnerer byen til leveringsadressen.
.zip streng Returnerer postnummeret til leveringsadressen.
.province streng Returnerer provins/stat til leveringsadressen.
.province_code streng Returnerer den forkortede verdien av provins/stat til leveringsadressen.
.country_code streng Returnerer den forkortede verdien av landet til leveringsadressen.

Penger

Skriptmetoder som bruker pengeobjektet
Metode Returtype Beskrivelse
.derived_from_presentment(customer_cents:X) Penger Konverterer et beløp (i cent) fra kundens lokale (presentasjons-)valuta til butikkens valuta. Denne metoden godtar customer_cents-parameteren, som godtar et tall i cent. For eksempel Money.derived_from_presentment(customer_cents: 500).
.new Penger Oppretter et nytt objekt for å representere en pris.
.zero Penger

Oppretter et nytt objekt med en pris på null.

+ Penger Legger til to penge-objekter.
Penger Trekker et penge-objekt fra et annet.
* Penger Multipliserer et penge-objekt med et tall.

Pengeeksempler

Money.new(cents: 1000)

Oppretter et Money-objekt som representerer 1000 cent eller 10 dollar.

Money.new(cents: 100) * 50

Oppretter et Money-objekt som representerer 1 dollar og multipliserer deretter dette beløpet med 50. Returnerer et Money-objekt som representerer 50 dollar.

Variant

Skriptmetoder med variant-objektet
Metode Returtype Beskrivelse
.id Heltall Returnerer ID-nummeret til varianten.
.price Penger Returnerer enhetsprisen til varianten.
.product Produkt Returnerer det tilknyttede produktet av varianten.
.skus List<String> Returnerer lagerbeholdningsenhetene (SKU-er) til varianten, som ofte brukes til sporing av lagerbeholdning.
.title Streng Returnerer tittelen til varianten.

Produkt

Skriptmetoder med produktobjektet
Metode Returtype Beskrivelse
.id Heltall Returnerer ID-nummeret til produktet.
.gift_card? Boolsk Returnerer om produktet er et gavekort.
.tags List<Tag> Returnerer en liste over strenger som representerer taggene som er angitt for dette produktet.
.product_type Streng En kategorisering som et produkt kan være tagget med. Brukes vanligvis til filtrering og søking.
.vendor Streng Returnerer selgeren av dette produktet.

Kernel

Kernel er en Ruby-modul som er inkludert i alle klassene. Metodene er derfor tilgjengelige for alle objekter. Disse metodene fungerer på samme måte som globale funksjoner på andre språk.

Skriptmetoder som bruker Kernel-objekt
Metode Returtype Beskrivelse
.exit ingen Avslutter utførelsen av det gjeldende skriptet uten feil. Hvis dette kjøres før noe er tilordnet Output.cart, har ikke skriptet noen effekt. Dette er en nyttig måte å avslutte skript på, for eksempel hvis kunden ikke er kvalifisert for å kjøre skriptet.

Eksempel på Kernel

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

Metoder for varelinje

Følgende metoder er bare brukbare for varelinjeskript:

Handlekurv

Skriptmetoder med handlekurvobjektet i varelinjeskript
Metode Returtype Beskrivelse
.subtotal_price_was Penger Returnerer delsummen for handlekurven før eventuelle rabatter ble lagt til.
.subtotal_price_changed? Boolsk Returnerer hvorvidt delsummen har endret seg.

LineItem

Skriptmetoder som bruker LineItem-objektet i varelinjeskript
Metode Returtype Beskrivelse
.change_line_price(Money new_price, { message: String }) Penger Endre prisen på varelinjen til det angitte beløpet. En melding er påkrevet. new_price må være lavere enn den nåværende prisen.
.original_line_price Penger Returnerer den opprinnelige prisen til varelinjen før det ble lagt til skript og rabatter.
.line_price_was Penger Returnerer prisen på varelinjen før endringene ble lagt til av det gjeldende skriptet.
.line_price_changed? Boolsk Returnerer hvorvidt prisen på varelinjen er endret.
.change_properties(hash new_properties, { message: String }) hash Angir nye egenskaper for et linjeelement. Hash-nummeret for de opprinnelige egenskapene er lagret i properties_was, og hashen for egenskaper som sendes til metoden blir de nye egenskapene for varelinjen.
.properties_was hash Returnerer hash-nummeret til den opprinnelige egenskapen til varelinjen før det eventuelt ble lagt til endringer.
.properties_changed? Boolsk Returnerer hvorvidt egenskapene for varelinjen er endret.
.split({ take: Integer }) LineItem Deler et linjeelement i to linjeelementer. take angir hvilken mengde som skal fjernes fra det opprinnelige linjeelementet for å opprette det nye linjeelementet.

eksempel på .split

Dette eksempelskriptet deler et linjeelement som kalles original_line_item inn i to linjeelementer. Det nye linjeelementet har en mengde på 1 (angitt av take: 1). Skriptet bruker deretter en rabattert pris på det nye linjeelementet med meldingen «Tredje hatt for 5 dollar».

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

Variant

Skriptmetoder som bruker variantobjektet i varelinjeskript
Metode Returtype Beskrivelse
.compare_at_price Penger Returnerer sammenlign med-prisen for varianten. Returnerer nil hvis varianten ikke har en sammenlign med-pris.

Leveringsmetoder

Følgende metoder kan brukes i leveringsskript:

Overtre

Skriptmetoder som bruker overtre-objektet i leveringsskript
Metode Returtype Beskrivelse
.shipping_rates ShippingRateList Returnerer en liste over alle fraktprisene.

ShippingRateList

Skriptmetoder som bruker ShippingRateList-objektet i leveringsskript
Metode Returtype Beskrivelse
.delete_if ShippingRateList Slett fraktpriser med en valgfri kodeblokk. Se dokumentasjonen for Rubys delete_if-metode.
.sort! ShippingRateList Sorter fraktprisene med sammenligningsoperatoren eller ved hjelp av en valgfri kodeblokk. Se dokumentasjonen for Rubys sort!-metode.
.sort_by! ShippingRateList Sorter fraktprisene ved hjelp av en valgfri kodeblokk. Se dokumentasjonen for Rubys sort_by!-metode.

ShippingRate

Skriptmetoder som bruker ShippingRate-objektet i leveringsskript
Metode Returtype Beskrivelse
.code Streng Returnerer koden til fraktprisen.
.markup Penger Returnerer påslaget for en fraktpris, hvis det er aktuelt.
.name Streng Returnerer navnet på fraktprisen. Den kan endres med metoden change_name .
.price Penger Returnerer prisen på fraktprisen.
.source Streng Returnerer kilden (transportøren) som er knyttet til fraktprisen, hvis det er aktuelt. Den kan ikke endres.
.change_name(String new_name) Streng Endrer navnet (maksimalt 255 tegn) på fraktprisen. Det er ikke mulig å endre, slette eller skjule kilden.
.apply_discount(Money discount, { message: String }) Penger Legger til en rabatt på det spesifiserte faste beløpet. Prisen kan ikke reduseres under 0. En melding er obligatorisk.
.phone_required? Boolsk Returnerer true dersom et telefonnummer kreves for å få fraktprisen eller false dersom du ikke trenger et telefonnummer.

Betalingsmetoder

Følgende metoder kan brukes i betalingsskript:

Overtre

skriptmetoder som bruker overtre-objektet i betalingsskript
Metode Returtype Beskrivelse
.payment_gateways PaymentGatewaysList Returnerer en liste over alle betalingsgatewayer i butikken.

PaymentGatewayList

Skriptmetoder som bruker PaymentGatewayList-objektet i betalingsskript
Metode Returtype Beskrivelse
.delete_if PaymentGatewayList Slett betalingsløsninger ved hjelp av en valgfri kodeblokk. Se dokumentasjonen for Rubys delete_if-metode.
.sort! PaymentGatewayList Sorter betalingsgatewayene med sammenligningsoperatoren eller bruk en valgfri kodeblokk. Se dokumentasjonen for Rubys sort!-metode.
.sort_by! PaymentGatewayList Sorter betalingsgatewayene ved hjelp av en valgfri kodeblokk. Se dokumentasjonen for Rubys sort_by!-metode.

PaymentGateway

Metode Returtype Beskrivelse
.name Streng Returnerer navnet på betalingsgatewayen.
.enabled_card_brands List<String>

Hvis betalingsporten støtter kredittkort, returneres en liste over kredittkorttypene som butikken godtar. Hvis gatewayen ikke støtter kredittkort, returneres en tom liste.

.change_name(String new_name) Streng Endrer navnet på betalingsgatewayen. Betalingsgatewayer med logoer kan ikke omdøpes.

Eksempler

I følgende varelinjeskripteksempel, når en kunde bestiller et produkt som ikke er et gavekort, vil prisen på produktet reduseres med 9 dollar. I tillegg vises det totale beløpet kunden har brukt i løpet av alle besøkene i butikken:

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

Les mer

Finn ut mer om:

Er du klar til å begynne å selge med Shopify?

Prøv det gratis