Henvisning til Shopify Scripts API

Scripts er skrevet med en Ruby API, som giver dig en hel del kontrol og fleksibilitet.

Der er forskellige typer af scripts. Når du opretter et script i appen Script Editor, tildeles scriptet en type baseret på den scriptskabelon, du valgte til at begynde med:

Scripts til varelinjer

Scripts til varelinjer påvirker varelinjer i indkøbskurven og kan ændre priser og give rabatter. Disse scripts køres, når der foretages en ændring til indkøbskurven.

Scripts til varelinjer, som giver en rabat på et abonnement, gælder kun for den første betaling af abonnementet. Scriptet giver ikke rabat på de efterfølgende betalinger.

Nogle metoder kan kun bruges i scripts til varelinjer.

Scripts til levering

Scripts til levering interagerer med levering, og de kan ændre leveringsmetoder og give rabatter på leveringspriser. Disse scripts kører, når en kunde kommer til siden med indstillinger for levering under betalingsprocessen.

Scripts til levering, som giver rabat på leveringsprisen for et abonnement, gælder kun for den første betaling af abonnementet. Scriptet giver ikke rabat på de efterfølgende betalinger.

Nogle metoder kan kun bruges i scripts til levering.

Scripts til betaling

Scripts til betaling interagerer med betalinger og kan omdøbe, skjule og omarrangere betalingsgateways. Bemærk, at scripts til betaling interagerer med betalingsgateways, som vises før betalingssiden, såsom Apple Pay. Disse scripts køres, når en kunde kommer til betalingssiden.

Nogle metoder kan kun bruges i scripts til betaling.

Generelle metoder

Følgende metoder kan bruges i enhver type script:

Input

Scripts til inputmetoder
Metode Returtype Beskrivelse
.cart Indkøbskurv Returnerer et objekt for en indkøbskurv, der kan ændres
.locale streng Returnerer kundens landestandard. F.eks. en, fr eller pt-BR .

Indkøbskurv

Objektet for indkøbskurven er kun tilgængeligt i webshoppen. Nogle forladte betalinger har adgang til objektet for indkøbskurven. Hvis en betaling imidlertid er blevet lukket, og kunden herefter besøger den forladte betaling, bliver han eller hun sendt til den forudfyldte betaling, og objektet for indkøbskurven findes ikke længere. Det skyldes, at butiklayoutet er blevet tilsidesat af mailen om forladt betaling.

Scriptmetoder, der bruger objektet for indkøbskurven
Metode Returtype Beskrivelse
.customer Kunde Returnerer ejeren af indkøbskurven (om nogen).
.shipping_address ShippingAddress Returnerer adressen til ejeren af indkøbskurven (om nogen).
.discount_code varierer Returneringer:

discount_code vises, hvis der er anvendt en rabat i indkøbskurven. Det betyder ikke nødvendigvis, at prisen i indkøbskurven ændres. Hvis der f.eks. gælder en rabat for indkøbskurve på over 50 USD, og et script reducerer prisen i indkøbskurven til under 50 USD, vises discount_code stadig, men prisen i indkøbskurven ændres ikke.

Se et eksempel på discount_code.

.line_items Liste<LineItem> Returnerer en liste med varelinjerne i indkøbskurven.
.presentment_currency Listel<String> Returnerer kundens lokale valuta (præsentationsvaluta) (i ISO 4217-format). F.eks. USD.
.subtotal_price Penge Returnerer indkøbskurvens subtotal, efter rabatter på varelinjer er anvendt, men inden rabatkoder er anvendt.
.total_weight gram Returnerer den samlede vægt for alle varelinjer i indkøbskurven.

CartDiscount:: FixedAmount

Scriptmetoder, der bruger objektet CartDiscount::FixedAmount
Metode Returtype Beskrivelse
.code Streng Returnerer den rabatkode, der blev brugt til at anvende rabatten.
.amount Penge Returnerer rabatbeløbet.
.reject({ message: String }) nil Afviser den rabatkode, der blev anvendt i indkøbskurven. En besked er påkrævet.
.rejected? Boolesk Returnerer, hvorvidt rabatkoden blev afvist.

CartDiscount::Percentage

Scriptmetoder, der bruger objektet CartDiscount::Percentage
Metode Returtype Beskrivelse
.code Streng Returnerer den rabatkode, der blev brugt til at anvende rabatten.
.percentage AET Returnerer procentbeløb for rabatten
.reject({ message: String }) nil Afviser den rabatkode, der blev anvendt i indkøbskurven. En besked er påkrævet.
.rejected? Boolesk Returnerer, hvorvidt rabatkoden blev afvist.

CartDiscount::Shipping

Scriptmetoder, der bruger objektet CartDiscount::Shipping
Metode Returtype Beskrivelse
.code Streng Returnerer den rabatkode, der blev brugt til at anvende rabatten.
.reject({ message: String }) nil Afviser den rabatkode, der blev anvendt i indkøbskurven. En besked er påkrævet.
.rejected? Boolesk Returnerer, hvorvidt rabatkoden blev afvist.

Kunde

Scriptmetoder, der bruger objektet Kunde
Metode Returtype Beskrivelse
.id Heltal Returnerer kundens id-nummer.
.email Streng Returnerer kundens mailadresse.
.tags Liste<Tag> Returnerer en liste over strenge, der repræsenterer alle tags, der er angivet for en kunde.
.orders_count Heltal Returnerer det samlede antal ordrer, kunden har afgivet.
.total_spent Penge Returnerer det samlede beløb, kunden har afgivet ordrer for.
.accepts_marketing? Boolesk Returnerer, om kunden accepterer markedsføring.

LineItem

<tdgrams
Scriptmetoder, der bruger objektet LineItem
Metode Returtype Beskrivelse
.grams Returnerer varelinjens samlede vægt.
.line_price Penge Prisen på varelinjen.
.discounted? Boolesk Returnerer, om prisen for en varelinje er blevet fratrukket rabat via et script eller en manuelt anvendt rabat. Brugen af rabatkoder påvirker ikke returneringsværdien.
.properties hash Returnerer de egenskaber, der blev angivet for disse varelinjer.
.variant Variant Returnerer den specifikke produktvariant, varelinjen repræsenterer.
.quantity Heltal Returnerer antallet for denne varelinje.
.selling_plan_id Heltal Returnerer salgsplanens id for varelinjen. Denne metode er nyttig, når butikken sælger abonnementer, og du vil have, at scriptet skal opdage, når en produktvariant sælges som et abonnement.

Liste

Scriptmetoder, der bruger objektet Liste
Metode Returtype Beskrivelse
.new Liste Opretter et nyt objekt, der repræsenterer en liste.
.[] Element eller nil

Returnerer elementet ved det angivne indeks.

.& Liste

Returnerer en ny liste indeholdende elementer, der er fælles for de to lister, men uden duplikeringer.

.delete_if Liste Slet elementer ved hjælp af en valgfri kodeblok. Se dokumentationen til Rubys delete_if-metode.
.empty? Boolesk

Returnerer sandt, hvis listen ikke indeholder nogen elementer.

.first Element eller nil

Returnerer det første element, eller nil, hvis listen er tom.

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

Returnerer indekset for det første element på listen. Hvis der angives en blok i stedet for et argument, returneres indekset for det første element, for hvilket blokken er sand.

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

Returnerer indekset for det sidste element på listen. Hvis der angives en blok i stedet for et argument, returneres indekset for det første element, som blokken er sandt for.

.last Element eller nil

Returnerer det sidste element eller nil, hvis listen er tom.

.length int

Returnerer antallet af elementer på listen.

.size int

Alias for længde.

.each(*args, &block) Liste

Kalder en blok én gang for hvert element på listen og sender elementet som en parameter til blokken.

ShippingAddress

Scriptmetoder, der bruger elementet ShippingAddress
Metode Returtype Beskrivelse
.name streng Returnerer navnet på den person, der er tilknyttet leveringsadressen.
.address1 streng Returnerer vejnavnet for leveringsadressen.
.address2 streng Returnerer det valgfrie yderligere felt til vejnavnet for leveringsadressen.
.phone streng Returnerer telefonnummeret for leveringsadressen.
.city streng Returnerer byen for leveringsadressen.
.zip streng Returnerer postnummeret for leveringsadressen.
.province streng Returnerer området/staten for leveringsadressen
.province_code streng Returnerer den forkortede værdi for området/staten for leveringsadressen.
.country_code streng Returnerer den forkortede værdi for landet for leveringsadressen.

Penge

Scriptmetoder, der bruger objektet Beløb
Metode Returtype Beskrivelse
. derived_from_presentment (customer_cents:X) Penge Konverterer et beløb (i cent) fra kundens lokale valuta (præsentationsvaluta) til din butiks valuta. Denne metode accepterer parameteren customer_cents, der accepterer et tal i cent. F.eks. Money.derived_from_presentment(customer_cents: 500) .
.new Penge Opretter et nyt objekt, der repræsenterer en pris.
.zero Penge

Opretter et nyt objekt med en pris på nul.

+ Penge Tilføjer to Beløb-objekter.
- Penge Trækker ét Beløb-objekt fra et andet.
* Penge Ganger et Beløb-objekt med et tal.

Eksempler på beløb

Money.new(cents: 1000)

Opretter et Money-objekt, der repræsenterer 1.000 cent eller 10 USD.

Money.new(cents: 100) * 50

Opretter et Money-objekt, der repræsenterer 1 USD og ganger derefter beløbet med 50. Returnerer et Money-objekt, der repræsenterer 50 USD.

Variant

Scriptmetoder, der bruger objektet Variant
Metode Returtype Beskrivelse
.id Heltal Returnerer variantens id-nummer.
.price Penge Returnerer variantens stykpris.
.product Produkt Returnerer variantens tilknyttede produkt.
.skus Listel<String> Returnerer variantens SKU'er (varenumre), som ofte bruges til at holde styr på lagerbeholdningen.
. title Streng Returnerer variantens titel.

Produkt

Scriptmetoder, der bruger objektet Produkt
Metode Returtype Beskrivelse
.id Heltal Returnerer produktets id-nummer.
.gift_card`? Boolesk Returnerer, om produktet er et gavekort.
.tags Liste<Tag> Returnerer en liste over strenge, der repræsenterer de tags, som er angivet for produktet.
.product_type Streng En kategorisering, et produkt kan tagges med, sædvanligvis anvendt til filtrering og søgning.
forhandler Streng Returnerer forhandleren af produktet.

Kernel

Kernel er et Ruby-modul, der er inkluderet i hver klasse. Det betyder, at dets metoder er tilgængelige for hvert objekt. Disse metoder fungerer på samme måde som globale funktioner på andre sprog.

Scriptmetoder, der bruger Kernel-objektet
Metode Returtype Beskrivelse
.exit none Afslutter udførelsen af det aktuelle script uden fejl. Hvis dette køres, inden der er tildelt noget til Output.cart, har scriptet ingen effekt. Dette er en nyttig måde at afslutte scripts på, hvis kunden f.eks. ikke er berettiget til at køre scriptet.

Kernel-eksempel

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

Metoder for varelinjer

Følgende metoder kan kun anvendes i scripts til varelinjer:

Indkøbskurv

Scriptmetoder, der anvender objektet Indkøbskurv i scripts til varelinjer
Metode Returtype Beskrivelse
.subtotal_price_was Penge Returnerer indkøbskurvens subtotal før anvendelse af eventuelle rabatter.
.subtotal_price_changed? Boolesk Returnerer, om subtotalen er ændret.

LineItem

Scriptmetoder, der bruger objektet LineItem i scripts til varelinjer
Metode Returtype Beskrivelse
. change_line_price (Beløb new_price, { message: String }) Penge Ret varelinjens pris det til angivne beløb. En besked er påkrævet. new_price skal være lavere end den aktuelle pris.
.original_line_price Penge Returnerer varelinjens oprindelige pris før anvendelse af scripts og rabatter.
.line_price_was Penge Returnerer varelinjens pris, inden ændringerne blev anvendt af det aktuelle script.
.line_price_changed? Boolesk Returnerer, om varelinjens pris er ændret.
.change_propertieshash new_properties, { message: String }) hash Angiver nye egenskaber for en varelinje. Den oprindelige hashværdi for egenskaber gemmes i properties_was, og den hashværdi for egenskaber, der videregives til metoden, bliver de nye egenskaber for varelinjen.
.properties_was hash Returnerer den oprindelige hashværdi for egenskaber for varelinjen, inden eventuelle ændringer blev anvendt.
.properties_changed? Boolesk Returnerer, om egenskaberne for varelinjen er blevet ændret.
.split({ take: Integer }) LineItem Opdeler en varelinje i to varelinjer. takeangiver, hvilket antal der skal fjernes fra den oprindelige varelinje, for at du kan oprette den nye varelinje.

.split example

Dette eksempelscript opdeler en varelinje kaldet original_line_item i to varelinjer. Den nye varelinje har et antal på 1 (angivet ved take: 1). Scriptet anvender derefter en reduceret pris på den nye varelinje med beskeden "Tredje hat til 5 dollars".

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

Scriptmetoder, der anvender objektet Variant i scripts til varelinjer
Metode Returtype Beskrivelse
.compare_at_price Penge Returnerer sammenligningsprisen for varianten. Returnerer nil, hvis der ikke findes en sammenligningspris for varianten.

Leveringsmetoder

Følgende metoder kan anvendes i scripts til levering:

Input

Scriptmetoder, der bruger objektet Input i scripts til levering
Metode Returtype Beskrivelse
.shipping_rates ShippingRateList Returnerer en liste over alle leveringspriserne.

ShippingRateList

Scriptmetoder, der bruger objektet ShippingRateList i scripts til levering
Metode Returtype Beskrivelse
.delete_if ShippingRateList Slet leveringspriser ved hjælp af en valgfri kodeblok. Se dokumentationen til Rubys delete_if-metode.
.sort! ShippingRateList Sortér leveringspriserne ved hjælp af sammenligningsoperatoren eller ved hjælp af en valgfri kodeblok. Se dokumentationen til Rubys sort!-metode.
.sort_by! ShippingRateList Sortér leveringspriserne ved hjælp af en valgfri kodeblok. Se dokumentationen til Rubys sort_by!-metode.

ShippingRate

Scriptmetoder, der bruger objektet ShippingRate i scripts til levering
Metode Returtype Beskrivelse
.code Streng Returnerer koden for leveringprisen.
.markup Penge Returnerer markeringen af leveringsprisen, hvis det er relevant.
.name Streng Returnerer navnet på leveringsprisen. Det kan ændres ved hjælp af change_name-metoden.
.price Penge Returnerer leveringsprisen.
.source Streng Returnerer den kilde (transportfirmaet), der er knyttet til leveringsprisen, hvis det er relevant. Den kan ikke ændres.
. change_name(String new_name) Streng Ændrer navnet (højst 255 tegn) på leveringsprisen. Det er ikke muligt at ændre, slette eller skjule kilden.
. apply_discount (Beløb rabat, { message: String}) Penge Anvender en rabat på det angivne faste beløb. Prisen kan ikke reduceres til under 0. En besked er påkrævet.
.phone_required? Boolesk Returnerer sandt, hvis der kræves et telefonnummer for at hente leveringsprisen eller falsk, hvis et telefonnummer ikke kræves.

Betalingsmetoder

Følgende metoder kan bruges i scripts til betaling:

Input

Scriptmetoder, der bruger objektet Input i scripts til betaling
Metode Returtype Beskrivelse
.payment_gateways PaymentGatewaysList Returnerer en liste over alle betalingsgateways i butikken.

PaymentGatewayList

Scriptmetoder, der bruger objektet PaymentGatewayList i scripts til betaling
Metode Returtype Beskrivelse
.delete_if PaymentGatewayList Slet betalingsgateways ved hjælp af en valgfri kodeblok. Se dokumentationen til Rubys delete_if-metode.
.sort! PaymentGatewayList Sortér betalingsgateways ved hjælp af sammenligningsoperatoren eller ved hjælp af en valgfri kodeblok. Se dokumentationen til Ruby ' s sort! Method.
.sort_by! PaymentGatewayList Sortér betalingsgateways ved hjælp af en valgfri kodeblok. Se dokumentationen til Rubys sort_by!-metode.

PaymentGateway

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

Hvis betalingsgatewayen understøtter kreditkort, returneres en liste over de kreditkorttyper, butikken accepterer. Hvis gatewayen ikke understøtter kreditkort, returneres en tom liste.

. change_name(String new_name) Streng Ændrer navnet på betalingsgatewayen. Betalingsgatewayer med logoer kan ikke omdøbes.

Eksempler

I det følgende eksempel på et script for en varelinje reduceres produktets pris med 9 USD, når en kunde bestiller et produkt, som ikke er et gavekort. Derudover vises det beløb, kunden samlet har købt for ved alle besøg i din butik.

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

Få mere at vide

Få mere at vide om:

Er du klar til at begynde at sælge med Shopify?

Prøv det gratis