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.
På denne siden
Generelle metoder
Følgende metoder kan brukes i alle skripttyper:
Overtre
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.
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:
|
.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
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
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
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
Metode | Returtype | Beskrivelse |
---|---|---|
.id | Heltall | Returnerer kundens ID-nummer. |
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
Metode | Returtype | Beskrivelse |
---|---|---|
.grams | <tdgramsReturnerer 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
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 |
.first | Element eller null |
Returnerer det første elementet eller |
.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 |
.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
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
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
Oppretter et Money
-objekt som representerer 1000 cent eller 10 dollar.
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
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
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.
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
Metoder for varelinje
Følgende metoder er bare brukbare for varelinjeskript:
Handlekurv
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
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».
Variant
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
Metode | Returtype | Beskrivelse |
---|---|---|
.shipping_rates | ShippingRateList | Returnerer en liste over alle fraktprisene. |
ShippingRateList
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
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
Metode | Returtype | Beskrivelse |
---|---|---|
.payment_gateways | PaymentGatewaysList | Returnerer en liste over alle betalingsgatewayer i butikken. |
PaymentGatewayList
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:
Les mer
Finn ut mer om: