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
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 . |
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.
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:
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. |
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. |
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. |
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. |
Metode | Returtype | Beskrivelse |
---|---|---|
.id | Heltal | Returnerer kundens id-nummer. |
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. |
Metode | Returtype | Beskrivelse |
---|---|---|
.grams | 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. |
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. | 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. |
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. |
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. |
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
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. |
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 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.
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. |
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
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. |
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. take angiver, hvilket antal der skal fjernes fra den oprindelige varelinje, for at du kan oprette den nye varelinje. |
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
Metode | Returtype | Beskrivelse |
---|---|---|
.compare_at_price | Penge | Returnerer sammenligningsprisen for varianten. Returnerer nil , hvis der ikke findes en sammenligningspris for varianten. |
Følgende metoder kan anvendes i scripts til levering:
Input
Metode | Returtype | Beskrivelse |
---|---|---|
.shipping_rates | ShippingRateList | Returnerer en liste over alle leveringspriserne. |
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. |
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. |
Følgende metoder kan bruges i scripts til betaling:
Input
Metode | Returtype | Beskrivelse |
---|---|---|
.payment_gateways | PaymentGatewaysList | Returnerer en liste over alle betalingsgateways i butikken. |
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. |
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. |
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: