Shopify Scripts API-referanse
Skript skrives med et Ruby-API som gir deg mye kontroll og fleksibilitet.
Det finnes ulike skripttyper. Et skript tildeles en type når du oppretter det i Script Editor-appen, basert på hvilken skriptmal du velger å starte med:
Postskript
Postskript påvirker poster i handlekurven og kan endre priser og gi rabatter. Disse skriptene kjøres når det gjøres en endring i handlekurven.
Postskript som gir rabatt på et abonnement gjelder kun for den første betalingen for abonnementet. Senere betalinger rabatteres ikke av skriptet.
Noen metoder kan kun brukes i postskript.
Fraktskript
Fraktskript samhandler med frakt og kan endre fraktmetoder og gi rabatter på fraktpriser. Disse skriptene kjøres når kassen når siden for fraktalternativer.
Fraktskript som gir rabatt på fraktprisen for et abonnement gjelder kun for den første betalingen for abonnementet. Senere betalinger rabatteres ikke av skriptet.
<p>Some methods <a href="#shipping-methods">can only be used in shipping scripts</a>.</p>Betalingsskript
Betalingsskript samhandler med innbetalinger og kan endre navn på, skjule og endre rekkefølgen på betalingsgatewayer. Vær oppmerksom på at betalingsskript ikke samhandler med betalingsgatewayer som vises før kasseskjermen, som for eksempel Apple Pay. Disse skriptene kjøres når kassen når betalingssiden.
Noen metoder kan kun brukes i betalingsskript.
På denne siden
Generelle metoder
Følgende metoder kan brukes i alle skripttyper:
Inndata
| Metode | Returtype | Beskrivelse |
|---|---|---|
| .cart | Cart | Returnerer et endringsbart handlekurvobjekt. |
| .locale | streng | Returnerer kundens lokal. For eksempel en, fr eller pt-BR. |
Cart
Handlekurvobjektet er kun tilgjengelig i nettbutikken. Noen forlatte kasser har tilgang til handlekurvobjektet. Hvis en kasse er lukket, og en kunde deretter besøker den forlatte kassen, sendes de til den forhåndsutfylte kassen og handlekurvobjektet finnes ikke lenger. Dette er fordi utstillingsvinduet har blitt omgått av e-postmeldingen for forlatt kasse.
| Metode | Returtype | Beskrivelse |
|---|---|---|
| .customer | Customer | Returnerer eieren av handlekurven (hvis noen). |
| .shipping_address | ShippingAddress | Returnerer leveringsadressen til eieren av handlekurven (hvis noen). |
| .discount_code | varierer |
Returnerer:
|
CartDiscount::FixedAmount
| Metode | Returtype | Beskrivelse |
|---|---|---|
| .code | Streng | Returnerer rabattkoden som brukes til å legge til rabatten. |
| .amount | Money | Returnerer rabattens pengebeløp. |
| .reject({ message: Streng }) | nil | Avviser rabattkoden som er brukt på handlekurven. En message er påkrevd. |
| .rejected? | Boolsk | Returnerer hvorvidt rabattkoden ble avvist. |
CartDiscount::Percentage
| Metode | Returtype | Beskrivelse |
|---|---|---|
| .code | Streng | Returnerer rabattkoden som brukes til å legge til rabatten. |
| .percentage | Desimal | Returnerer rabattens prosentandel. |
| .reject({ message: Streng }) | nil | Avviser rabattkoden som er brukt på handlekurven. En message er påkrevd. |
| .rejected? | Boolsk | Returnerer hvorvidt rabattkoden ble avvist. |
CartDiscount::Shipping
| Metode | Returtype | Beskrivelse |
|---|---|---|
| .code | Streng | Returnerer rabattkoden som brukes til å legge til rabatten. |
| .reject({ message: Streng }) | nil | Avviser rabattkoden som er brukt på handlekurven. En message er påkrevd. |
| .rejected? | Boolsk | Returnerer hvorvidt rabattkoden ble avvist. |
Kunde
| Metode | Returtype | Beskrivelse |
|---|---|---|
| .id | Heltall | Returnerer kundens ID-nummer. |
| Streng | Returnerer kundens e-postadresse. | |
| .tags | Liste<Tag> | Returnerer en liste med strenger som representerer eventuelle tagger som er angitt for en kunde. |
| .orders_count | Heltall | Returnerer totalt antall bestillinger en kunde har lagt inn. |
| .total_spent | Money | Returnerer totalbeløpet kunden har brukt på alle bestillinger. |
| .accepts_marketing? | Boolsk | Returnerer om kunden godtar markedsføring. |
Post
| Metode | Returtype | Beskrivelse |
|---|---|---|
| .grams | gram | Returnerer den totale vekten for posten. |
| .line_price | Money | Prisen for posten. |
| .discounted? | Boolsk | Returnerer om prisen på en post er rabattert av et skript eller en manuelt brukt rabatt. Bruk av rabattkoder påvirker ikke returverdien. |
| .properties | hash | Returnerer egenskapene som ble angitt for denne posten. |
| .variant | Variant | Returnerer den spesifikke produktvarianten som posten representerer. |
| .quantity | Heltall | Returnerer antallet for denne posten. |
| .selling_plan_id | Heltall | Returnerer ID-en til salgsplanen for posten. Denne metoden er nyttig når butikken selger abonnementer og du vil 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 nil |
Returnerer elementet ved den angitte indeksen. |
| .& | Liste |
Returnerer en ny liste som inneholder elementer som er felles for de to listene, uten duplikater. |
| .delete_if | Liste | Sletter elementer ved hjelp av en valgfri kodeblokk. Se dokumentasjonen for Ruby's delete_if method. |
| .empty? | Boolsk |
Returnerer |
| .first | Element eller nil |
Returnerer det første elementet, eller |
| .index(*args, &block) | heltall eller nil |
Returnerer indeksen til det første elementet i listen. Hvis en blokk angis i stedet for et argument, returneres indeksen til det første elementet som blokken er sann for. |
| .rindex(*args, &block) | heltall eller nil |
Returnerer indeksen til det siste elementet i listen. Hvis en blokk angis i stedet for et argument, returneres indeksen til det første elementet som blokken er sann for. |
| .last | Element eller nil |
Returnerer det siste elementet, eller |
| .length | heltall |
Returnerer antall elementer i listen. |
| .size | heltall |
Alias for length. |
| .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 på personen som er knyttet til leveringsadressen. |
| .address1 | streng | Returnerer gateadressedelen av leveringsadressen. |
| .address2 | streng | Returnerer det valgfrie tilleggsfeltet til gateadressedelen av leveringsadressen. |
| .phone | streng | Returnerer telefonnummeret til leveringsadressen. |
| .city | streng | Returnerer byen til leveringsadressen. |
| .zip | streng | Returnerer postnummeret til leveringsadressen. |
| .province | streng | Returnerer provinsen/delstaten til leveringsadressen. |
| .province_code | streng | Returnerer den forkortede verdien for provinsen/delstaten til leveringsadressen. |
| .country_code | streng | Returnerer den forkortede verdien for landet til leveringsadressen. |
Penger
| Metode | Returtype | Beskrivelse |
|---|---|---|
| .derived_from_presentment(customer_cents:X) | Money | Konverterer et beløp (i cent) fra kundens lokale valuta (presentasjonsvaluta) til butikkens valuta. Denne metoden godtar customer_cents-parameteret, som godtar et tall i cent. For eksempel Money.derived_from_presentment(customer_cents: 500). |
| .new | Money | Oppretter et nytt objekt for å representere en pris. |
| .zero | Money |
Oppretter et nytt objekt med en pris på null. |
| + | Money | Legger sammen to Money-objekter. |
| - | Money | Trekker ett Money-objekt fra et annet. |
| * | Money | Multipliserer et Money-objekt med et tall. |
Money-eksempler
Money.new(cents: 1000)Oppretter et Money-objekt som representerer 1000 cent, eller 10 $.
Money.new(cents: 100) * 50Oppretter et Money-objekt som representerer 1 $, og multipliserer deretter beløpet med 50. Returnerer et Money-objekt som representerer 50 $.
Variant
| Metode | Returtype | Beskrivelse |
|---|---|---|
| .id | Heltall | Returnerer ID-nummeret til varianten. |
| .price | Money | Returnerer enhetsprisen til varianten. |
| .product | Produkt | Returnerer det tilknyttede produktet til varianten. |
| .skus | List<String> | Returnerer lagerbeholdningsenhetene (SKU-ene) til varianten, som ofte brukes til å spore varelager. |
| .title | Streng | Returnerer tittelen til varianten. |
Produkt
| Metode | Returtype | Beskrivelse |
|---|---|---|
| .id | Heltall | Returnerer ID-nummeret til produktet. |
| .gift_card? | Boolsk | Returnerer hvorvidt produktet er et gavekort. |
| .tags | Liste<Tag> | Returnerer en liste med strenger som representerer taggene som er angitt for dette produktet. |
| .product_type | Streng | En kategorisering et produkt kan tagges med, som vanligvis brukes til filtrering og søk. |
| .vendor | Streng | Returnerer selgeren av dette produktet. |
Kernel
Kernel er en Ruby-modul som er inkludert i alle klasser. Resultatet er at metodene er tilgjengelige for alle objekter. Disse metodene fungerer på samme måte som globale funksjoner i andre språk.
| Metode | Returtype | Beskrivelse |
|---|---|---|
| .exit | ingen | Avslutter kjøringen av det gjeldende skriptet uten feil. Hvis dette kjøres før noe tilordnes til Output.cart, har skriptet ingen effekt. Dette er en nyttig måte å avslutte skript på, for eksempel hvis kunden ikke er kvalifisert til å kjøre skriptet. |
Kernel-eksempel
customer = Input.cart.customer
if customer && customer.email.end_with?("@mycompany.com")
# Employees are not eligible for this promotion.
exit
endPostmetoder
Følgende metoder kan bare brukes i postskript:
Cart
| Metode | Returtype | Beskrivelse |
|---|---|---|
| .subtotal_price_was | Money | Returnerer delsummen for handlekurven før eventuelle rabatter ble brukt. |
| .subtotal_price_changed? | Boolsk | Returnerer hvorvidt delsummen er endret. |
Post
| Metode | Returtype | Beskrivelse |
|---|---|---|
| .change_line_price(Money new_price, { message: String }) | Money | Endrer prisen på posten til det angitte beløpet. En message er obligatorisk. new_price må være lavere enn gjeldende pris. |
| .original_line_price | Money | Returnerer den opprinnelige prisen på posten før skript og rabatter ble brukt. |
| .line_price_was | Money | Returnerer prisen på posten før endringer ble brukt av det gjeldende skriptet. |
| .line_price_changed? | Boolsk | Returnerer hvorvidt prisen på posten er endret. |
| .change_properties(hash new_properties, { message: String }) | hash | Angir nye egenskaper for en post. Den opprinnelige egenskaps-hashen lagres i properties_was, og egenskaps-hashen som sendes til metoden, blir de nye egenskapene for posten. |
| .properties_was | hash | Returnerer den opprinnelige egenskaps-hashen til posten før eventuelle endringer ble brukt. |
| .properties_changed? | Boolsk | Returnerer hvorvidt egenskapene for posten er endret. |
| .split({ take: Integer }) | Post | Deler en post i to poster. take angir hvilket antall som skal fjernes fra den opprinnelige posten for å opprette den nye posten. |
.split-eksempel
Dette eksempelskriptet deler en post kalt original_line_item i to poster. Den nye posten har et antall på 1 (angitt av take: 1). Skriptet bruker deretter en rabattert pris på den nye posten 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
endVariant
| Metode | Returtype | Beskrivelse |
|---|---|---|
| .compare_at_price | Money | Returnerer sammenligningsprisen til varianten. Returnerer nil hvis varianten ikke har en sammenligningspris. |
Fraktmetoder
Følgende metoder kan brukes i fraktskript:
Inndata
| Metode | Returtype | Beskrivelse |
|---|---|---|
| .shipping_rates | Fraktprisliste | Returnerer en liste over alle fraktprisene. |
ShippingRateList
| Metode | Returtype | Beskrivelse |
|---|---|---|
| .delete_if | Fraktprisliste | Slett fraktpriser ved hjelp av en valgfri kodeblokk. Se dokumentasjonen for Rubys delete_if-metode. |
| .sort! | Fraktprisliste | Sorter fraktprisene ved hjelp av sammenligningsoperatoren eller en valgfri kodeblokk. Se dokumentasjonen for Rubys sort!-metode. |
| .sort_by! | Fraktprisliste | 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 | Money | Returnerer påslaget for en fraktpris, hvis aktuelt. |
| .name | Streng | Returnerer navnet på fraktprisen. Det kan endres ved hjelp av change_name-metoden. |
| .price | Money | Returnerer prisen på fraktprisen. |
| .source | Streng | Returnerer kilden (transportøren) som er knyttet til fraktprisen, hvis relevant. Den kan ikke endres. |
| .change_name(Streng new_name) | Streng | Endrer navnet (maksimalt 255 tegn) på fraktprisen. Det er ikke mulig å endre, slette eller skjule kilden. |
| .apply_discount(Money rabatt, { message: Streng }) | Money | Bruker en rabatt på det angitte faste beløpet. Prisen kan ikke reduseres til under 0. En melding er påkrevd. |
| .phone_required? | Boolsk | Returnerer true hvis et telefonnummer er påkrevd for å hente fraktprisen, eller false hvis et telefonnummer ikke er påkrevd. |
Betalingsmåter
Følgende metoder kan brukes i betalingsskript:
Inndata
| Metode | Returtype | Beskrivelse |
|---|---|---|
| .payment_gateways | PaymentGatewaysList | Returnerer en liste over alle betalingsgatewayene i butikken. |
PaymentGatewayList
| Metode | Returtype | Beskrivelse |
|---|---|---|
| .delete_if | PaymentGatewayList | Slett betalingsgatewayer ved hjelp av en valgfri kodeblokk. Se dokumentasjonen for Rubys delete_if-metode. |
| .sort! | PaymentGatewayList | Sorter betalingsgatewayene ved hjelp av sammenligningsoperatoren eller 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 betalingsgatewayen støtter kredittkort, returneres en liste over kredittkorttypene som butikken godtar. Hvis gatewayen ikke støtter kredittkort, returneres en tom liste. |
| .change_name(Streng new_name) | Streng | Endrer navnet på betalingsgatewayen. Betalingsgatewayer med logoer kan ikke gis nytt navn. |
Eksempler
I følgende eksempel på et varelinjeskript reduseres prisen på produktet med 9 USD når en kunde bestiller et produkt som ikke er et gavekort. I tillegg vises det totale beløpet kunden har brukt i løpet av alle besøk i butikken din:
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
Finn ut mer
Finn ut mer om: