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.

<p>Nogle metoder <a href="#shipping-methods">kan kun bruges i scripts til levering</a>.</p>

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
MetodeReturtypeBeskrivelse
.cartIndkøbskurvReturnerer et objekt for en indkøbskurv, der kan ændres
.localestrengReturnerer 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
MetodeReturtypeBeskrivelse
.customerKundeReturnerer ejeren af indkøbskurven (om nogen).
.shipping_addressShippingAddressReturnerer adressen til ejeren af indkøbskurven (om nogen).
.discount_codevarierer 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.

<p>Se et eksempel på <a href="/manual/checkout-settings/script-editor/examples/vat-script"><code>discount_code</code></a>.</p>
  </td>
</tr>
<tr>
  <td scope="row">.line_items</td>
  <td>

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_pricePengeReturnerer indkøbskurvens subtotal, efter rabatter på varelinjer er anvendt, men inden rabatkoder er anvendt.
.total_weightgramReturnerer den samlede vægt for alle varelinjer i indkøbskurven.
#### CartDiscount:: FixedAmount
Scriptmetoder, der bruger objektet CartDiscount::FixedAmount
MetodeReturtypeBeskrivelse
.codeStrengReturnerer den rabatkode, der blev brugt til at anvende rabatten.
.amountPengeReturnerer rabatbeløbet.
.reject({ message: String })nilAfviser den rabatkode, der blev anvendt i indkøbskurven. En besked er påkrævet.
.rejected?BooleskReturnerer, hvorvidt rabatkoden blev afvist.
#### CartDiscount::Percentage
Scriptmetoder, der bruger objektet CartDiscount::Percentage
MetodeReturtypeBeskrivelse
.codeStrengReturnerer den rabatkode, der blev brugt til at anvende rabatten.
.percentageAETReturnerer procentbeløb for rabatten
.reject({ message: String })nilAfviser den rabatkode, der blev anvendt i indkøbskurven. En besked er påkrævet.
.rejected?BooleskReturnerer, hvorvidt rabatkoden blev afvist.
#### CartDiscount::Shipping
Scriptmetoder, der bruger objektet CartDiscount::Shipping
MetodeReturtypeBeskrivelse
.codeStrengReturnerer den rabatkode, der blev brugt til at anvende rabatten.
.reject({ message: String })nilAfviser den rabatkode, der blev anvendt i indkøbskurven. En besked er påkrævet.
.rejected?BooleskReturnerer, hvorvidt rabatkoden blev afvist.
### Kunde
Scriptmetoder, der bruger objektet Kunde
MetodeReturtypeBeskrivelse
.idHeltalReturnerer kundens id-nummer.
.emailStrengReturnerer kundens mailadresse.
.tags Liste<Tag>Returnerer en liste over strenge, der repræsenterer alle tags, der er angivet for en kunde.
.orders_countHeltalReturnerer det samlede antal ordrer, kunden har afgivet.
.total_spentPengeReturnerer det samlede beløb, kunden har afgivet ordrer for.
.accepts_marketing?BooleskReturnerer, om kunden accepterer markedsføring.
### LineItem {#lineitem-method}
Scriptmetoder, der bruger objektet LineItem
MetodeReturtypeBeskrivelse
.gramsgramsReturnerer varelinjens samlede vægt.
.line_pricePengePrisen på varelinjen.
.discounted?BooleskReturnerer, 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.
.propertieshashReturnerer de egenskaber, der blev angivet for disse varelinjer.
.variantVariantReturnerer den specifikke produktvariant, varelinjen repræsenterer.
.quantityHeltalReturnerer antallet for denne varelinje.
.selling_plan_idHeltalReturnerer 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
<tr>
  <td scope="row">.empty?</td>
  <td>Boolesk</td>
  <td>
    <p>Returnerer <code>sandt</code>, hvis listen ikke indeholder nogen elementer.</p>
  </td>
</tr>
<tr>
  <td scope="row">.first</td>
  <td>Element eller nil</td>
  <td>
    <p>Returnerer det første element, eller <code>nil</code>, hvis listen er tom.</p>
  </td>
</tr>
<tr>
  <td scope="row">.index(*args, &amp;block)</td>
  <td>int eller nil</td>
  <td>
    <p>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.</p>
  </td>
</tr>
<tr>
  <td scope="row">.rindex(*args, &amp;block)</td>
  <td>int eller nil</td>
  <td>
    <p>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.</p>
  </td>
</tr>
<tr>
  <td scope="row">.last</td>
  <td>Element eller nil</td>
  <td>
    <p>Returnerer det sidste element eller <code>nil</code>, hvis listen er tom.</p>
  </td>
</tr>
<tr>
  <td scope="row">

.length

Scriptmetoder, der bruger objektet Liste
MetodeReturtypeBeskrivelse
.newListeOpretter 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_ifListeSlet elementer ved hjælp af en valgfri kodeblok. Se dokumentationen til Rubys delete_if-metode.
int

Returnerer antallet af elementer på listen.

.sizeint

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
MetodeReturtypeBeskrivelse
.namestrengReturnerer navnet på den person, der er tilknyttet leveringsadressen.
.address1strengReturnerer vejnavnet for leveringsadressen.
.address2strengReturnerer det valgfrie yderligere felt til vejnavnet for leveringsadressen.
.phonestrengReturnerer telefonnummeret for leveringsadressen.
.citystrengReturnerer byen for leveringsadressen.
.zipstrengReturnerer postnummeret for leveringsadressen.
.provincestrengReturnerer området/staten for leveringsadressen
.province_codestrengReturnerer den forkortede værdi for området/staten for leveringsadressen.
.country_codestrengReturnerer den forkortede værdi for landet for leveringsadressen.
### Penge
Scriptmetoder, der bruger objektet Beløb
MetodeReturtypeBeskrivelse
. derived_from_presentment (customer_cents:X)PengeKonverterer 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) .
.newPengeOpretter et nyt objekt, der repræsenterer en pris.
.zeroPenge

Opretter et nyt objekt med en pris på nul.

+PengeTilføjer to Beløb-objekter.
-PengeTrækker ét Beløb-objekt fra et andet.
*PengeGanger 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
MetodeReturtypeBeskrivelse
.idHeltalReturnerer variantens id-nummer.
.pricePengeReturnerer variantens stykpris.
.productProduktReturnerer variantens tilknyttede produkt.
.skus Listel<String>Returnerer variantens SKU'er (varenumre), som ofte bruges til at holde styr på lagerbeholdningen.
. titleStrengReturnerer variantens titel.
### Produkt
Scriptmetoder, der bruger objektet Produkt
MetodeReturtypeBeskrivelse
.idHeltalReturnerer produktets id-nummer.
.gift_card`?BooleskReturnerer, om produktet er et gavekort.
.tags Liste<Tag>Returnerer en liste over strenge, der repræsenterer de tags, som er angivet for produktet.
.product_typeStrengEn kategorisering, et produkt kan tagges med, sædvanligvis anvendt til filtrering og søgning.
forhandlerStrengReturnerer 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
MetodeReturtypeBeskrivelse
.exitnoneAfslutter 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
MetodeReturtypeBeskrivelse
.subtotal_price_wasPengeReturnerer indkøbskurvens subtotal før anvendelse af eventuelle rabatter.
.subtotal_price_changed?BooleskReturnerer, om subtotalen er ændret.
### LineItem
Scriptmetoder, der bruger objektet LineItem i scripts til varelinjer
MetodeReturtypeBeskrivelse
. change_line_price (Beløb new_price, { message: String }) PengeRet 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_pricePengeReturnerer varelinjens oprindelige pris før anvendelse af scripts og rabatter.
.line_price_wasPengeReturnerer varelinjens pris, inden ændringerne blev anvendt af det aktuelle script.
.line_price_changed?BooleskReturnerer, om varelinjens pris er ændret.
.change_propertieshash new_properties, { message: String }) hashAngiver 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_washashReturnerer den oprindelige hashværdi for egenskaber for varelinjen, inden eventuelle ændringer blev anvendt.
.properties_changed?BooleskReturnerer, om egenskaberne for varelinjen er blevet ændret.
.split({ take: Integer })LineItemOpdeler 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 {#ex-split}

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
MetodeReturtypeBeskrivelse
.compare_at_pricePengeReturnerer 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
MetodeReturtypeBeskrivelse
.shipping_ratesShippingRateListReturnerer en liste over alle leveringspriserne.
### ShippingRateList
Scriptmetoder, der bruger objektet ShippingRateList i scripts til levering
MetodeReturtypeBeskrivelse
.delete_ifShippingRateListSlet leveringspriser ved hjælp af en valgfri kodeblok. Se dokumentationen til Rubys delete_if-metode.
.sort!ShippingRateListSortér leveringspriserne ved hjælp af sammenligningsoperatoren eller ved hjælp af en valgfri kodeblok. Se dokumentationen til Rubys sort!-metode.
.sort_by!ShippingRateListSorté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
MetodeReturtypeBeskrivelse
.codeStrengReturnerer koden for leveringprisen.
.markupPengeReturnerer markeringen af leveringsprisen, hvis det er relevant.
.nameStrengReturnerer navnet på leveringsprisen. Det kan ændres ved hjælp af change_name-metoden.
.pricePengeReturnerer leveringsprisen.
.sourceStrengReturnerer 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})PengeAnvender en rabat på det angivne faste beløb. Prisen kan ikke reduceres til under 0. En besked er påkrævet.
.phone_required?BooleskReturnerer 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
MetodeReturtypeBeskrivelse
.payment_gatewaysPaymentGatewaysListReturnerer en liste over alle betalingsgateways i butikken.
### PaymentGatewayList
Scriptmetoder, der bruger objektet PaymentGatewayList i scripts til betaling
MetodeReturtypeBeskrivelse
.delete_ifPaymentGatewayListSlet betalingsgateways ved hjælp af en valgfri kodeblok. Se dokumentationen til Rubys delete_if-metode.
.sort!PaymentGatewayListSortér betalingsgateways ved hjælp af sammenligningsoperatoren eller ved hjælp af en valgfri kodeblok. Se dokumentationen til Ruby ' s sort! Method.
.sort_by!PaymentGatewayListSortér betalingsgateways ved hjælp af en valgfri kodeblok. Se dokumentationen til Rubys sort_by!-metode.
### PaymentGateway
MetodeReturtypeBeskrivelse
.nameStrengReturnerer 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:

Kan du ikke finde de svar, du leder efter? Vi er her for at hjælpe.