Shopify-skript API-referens

Skript skrivs med ett Ruby API som ger dig en hel del kontroll och flexibilitet.

Det finns olika skripttyper. Ett skript tilldelas en typ när du skapar skriptet i Skriptredigerarappen, baserat på vilken skriptmall du väljer att börja med:

Skript för post

Radartikelskript påverkar radartiklar i kundvagnen och kan ändra priser och medge rabatter. Dessa skript körs när en ändring sker i kundvagnen.

Skript för artikelposter som ger prenumerationsrabatt gäller endast prenumerationens första betalning. Efterföljande betalningar rabatteras inte av skriptet.

Vissa metoder kan bara användas för radartikelskript.

Fraktskript

Leveransskript interagerar med leverans och kan ändra leveransmetod och medge rabatter på fraktkostnader. Dessa skript körs när betalning i kassan når sidan för fraktalternativ.

Fraktskript som rabatterar fraktkostnaden för en prenumeration gäller endast för prenumerationens första betalning. Efterföljande betalningar rabatteras inte av skriptet.

Vissa metoder kan endast användas i fraktskript.

Betalningsskript

Betalningsskript interagerar med betalningar och kan byta namn på, dölja och beställa om betalninggateways. Observera att betalningsskript inte interagerar med betalningsgateways som visas innan utcheckningsskärmen, till exempel Apple Pay. Dessa skript körs när utcheckningen når betalningssidan.

Vissa metoder kan endast användas i betalningsskript.

Allmänna metoder

Följande metoder kan användas i alla typer av skript:

Indata

Skriptinmatningsmetoder
Metod Returtyp Beskrivning
.cart Varukorg Returnerar ett föränderligt varukorgsobjekt.
.locale sträng Returnerar kundens lokalisering. Till exempel, en , fr , eller pt-BR.

Varukorg

Varukorgens objekt är endast tillgängligt i webbutiken. Vissa övergivna utcheckningar har åtkomst till varukorgsobjektet. Om en kassa har stängts och en kund besöker den övergivna kassan, skickar den dem till den förfyllda utcheckningen och varukorgsobjektet finns inte längre. Detta beror på att butikfronten har kringgåtts av det övergivna utcheckningsmeddelandet.

Skriptmetoder med hjälp av varukorgsobjekt
Metod Returtyp Beskrivning
.customer Kund Returnerar ägaren till varukorgen (om sådan finns).
.shipping_address Leveransadress Returnerar leveransadressen för ägaren till kundvagnen (om sådan finns).
.discount_code varierar Returer:

discount_code är närvarande om en rabatt har tillämpats på varukorgen. Detta betyder inte nödvändigtvis att varukorgens pris ändras. Till exempel, om en rabatt gäller för varukorgar med ett högre belopp än 50 USD, och ett skript sänker varukorgspriset under 50 USD finns discount_code fortfarande kvar men varukorgspriset ändras inte.

Se ett exempel på discount_code.

.line_items Listar <LineItem> Returnerar en lista som innehåller radartiklarna i varukorgen.
.presentment_currency Listar <String> Returnerar kundens lokala valuta (presentationsvaluta) (i ISO 4217-format). Till exempel USD.
.subtotal_price Pengar Returnerar det delsumman för kundvagnen efter att radartikelrabatter har tillämpats men innan rabattkoder tillämpas.
.total_weight gram Returnerar den totala vikten för alla radobjekt i kundvagnen.

CartDiscount::FixedAmount

Skriptmetoder med hjälp av CartDiscount::FixedAmount-objekt
Metod Returtyp Beskrivning
.code Sträng Returnerar rabattkoden som används för att tillämpa rabatten.
.amount Pengar Returnerar rabattens belopp.
.reject({ message: String }) noll Avvisar rabattkoden som tillämpats på varukorgen. Ett meddelande krävs.
.rejected? Boolesk Returnerar om rabattkoden avvisades.

CartDiscount::Percentage

Skriptmetoder med hjälp av CartDiscount::Percentage object
Metod Returtyp Beskrivning
.code Sträng Returnerar rabattkoden som används för att tillämpa rabatten.
.procentsats Decimal Returnerar rabattens procentuella belopp.
.reject({ message: String }) noll Avvisar rabattkoden som tillämpats på varukorgen. Ett meddelande krävs.
.rejected? Boolesk Returnerar om rabattkoden avvisades.

CartDiscount::Shipping

Skriptmetoder med hjälp av CartDiscount::Shipping object
Metod Returtyp Beskrivning
.code Sträng Returnerar rabattkoden som används för att tillämpa rabatten.
.reject({ message: String }) noll Avvisar rabattkoden som tillämpats på varukorgen. Ett meddelande krävs.
.rejected? Boolesk Returnerar om rabattkoden avvisades.

Kund

Skriptmetoder med hjälp av kundobjekt
Metod Returtyp Beskrivning
.id Heltal Returnerar kundens ID-nummer.
.email Sträng Returnerar kundens e-postadress.
.tags Listar <Tag> Returnerar en lista med strängar som representerar alla taggar som har ställts in för en kund.
.orders_count Heltal Returnerar det totala antalet ordrar som en kund har lagt.
.total_spent Pengar Returnerar det totala belopp som kunden har spenderat på alla ordrar.
.accepts_marketing? Boolesk Returnerar om kunden godkänner marknadsföring.

LineItem

<tdgram
Skriptmetoder med hjälp av objektet LineItem
Metod Returtyp Beskrivning
.grams Returnerar den totala vikten för radartikeln.
.line_price Pengar Priset på radartikeln.
.discounted? Boolesk Returnerar om priset för en radartikel har rabatterats av ett skript eller en manuellt tillämpad rabatt. Användning av rabattkoder påverkar inte returvärdet.
.properties hash Returnerar de egenskaper som specificerades för denna rad.
.variant Variant Returnerar den specifika produktvarianten som representeras av radartikeln.
.kvantitet Heltal Returnerar kvantiteten för den här radartikeln.
.selling_plan_id Heltal Returnerar ID för försäljningsplanen för radartikeln. Denna metod är användbar när butiken säljer prenumerationer och du vill att skriptet ska upptäcka när en produktvariant säljs som en prenumeration.

Lista

Skriptmetoder med hjälp av listobjekt
Metod Returtyp Beskrivning
.new Lista Skapar ett nytt objekt som ska representera en lista.
.[] Element eller noll

Returnerar elementet vid angivet index.

.& Lista

Returnerar en ny lista med element som är gemensamma för de två listorna, utan dubbletter.

.delete_if Lista Radera element med ett valfritt kodblock. Se dokumentationen för Rubys delete_if-metod.
.empty? Boolesk

Returnerar sant om listan inte innehåller några element.

.first Element eller noll

Returnerar det första elementet eller noll om listan är tom.

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

Returnerar indexet för det första elementet i listan. Om ett block anges i stället för ett argument returneras indexet för det första elementet för vilket blocket är sant.

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

Returnerar indexet för det sista elementet i-listan. Om ett block anges i stället för ett argument returnerar indexet för det första elementet för vilket blocket är sant.

.last Element eller noll

Returnerar det sista elementet eller noll om listan är tom.

.length int

Returnerar antalet element i listan.

.size int

Alias för längd.

.each(*args, &block) Lista

Anropar ett block en gång för varje element i listan, och skickar elementet som en parameter till blocket.

Leveransadress

Skriptmetoder med hjälp av ShippingAddress-objekt
Metod Returtyp Beskrivning
.name sträng Returnerar namnet på den person som är associerad med leveransadressen.
.address1 sträng Returnerar gatuadressdelen av leveransadressen.
.address2 sträng Returnerar det valfria tilläggsfältet för gatuadressdelen av leveransadressen.
.phone sträng Returnerar telefonnumret för leveransadressen.
.city sträng Returnerar staden för leveransadressen.
.zip sträng Returnerar postnumret för leveransadressen.
.province sträng Returnerar provins/delstat för leveransadressen.
.province_code sträng Returnerar det förkortade värdet för provins/delstat i leveransadressen.
.country_code sträng Returnerar det förkortade värdet för det land där leveransadressen finns.

Pengar

Skriptmetoder med hjälp av pengaobjekt
Metod Returtyp Beskrivning
.derived_from_presentment(customer_cents:X) Pengar Konverterar ett belopp (i cent) från kundens lokala valuta (presentationsvaluta) till din butiks valuta. Den här metoden accepterar customer_cents-parametern, som accepterar en siffra i cent. Till exempel Money.derived_from_presentment(customer_cents: 500).
.new Pengar Skapar ett nytt objekt som representerar ett pris.
.zero Pengar

Skapar ett nytt objekt med ett nollpris.

+ Pengar Lägger till två penga-objekt.
- Pengar Subtraherar ett pengaobjekt från ett annat.
* Pengar Multiplicerar ett pengaobjekt med en siffra.

Pengaexempel

Money.new(cents: 1000)

Skapar ett Money-objekt som representerar 1000 cent, eller 10 USD.

Money.new(cents: 100) * 50

Skapar ett Money-objekt som representerar 1 USD, och multiplicerar sedan det beloppet med 50. Returnerar ett Money-objekt som representerar 50 USD.

Variant

Skriptmetoder med hjälp av variantobjekt
Metod Returtyp Beskrivning
.id Heltal Returnerar variantens ID-nummer.
.price Pengar Returnerar enhetspriset för varianten.
.product Produkt Returnerar den tillhörande produkten av varianten.
.skus Listar <String> Returnerar lagerhållningsenheterna (SKU) för varianten, som ofta används för att spåra lager.
.title Sträng Returnerar varianttitel.

Produkt

Skriptmetoder med hjälp av produktobjektet
Metod Returtyp Beskrivning
.id Heltal Returnerar produktens ID-nummer.
.gift_card? Boolesk Returnerar om produkten är ett presentkort.
.tags Listar <Tag> Returnerar en lista med strängar som representerar taggarna som har ställts in för den här produkten.
.produkttyp Sträng En kategorisering som en produkt kan taggas med, som vanligtvis används för filtrering och sökning.
.säljare Sträng Returnerar leverantören för den här produkten.

Kärna

Kärna är en Ruby-modul som ingår i varje klass. Som ett resultat av detta finns metoderna tillgängliga för varje objekt. Dessa metoder fungerar på samma sätt som global funktioner agerar i andra språk.

Skriptmetoder med hjälp av kärnobjekt
Metod Returtyp Beskrivning
.exit ingen Avslutar körningen av det aktuella skriptet utan fel. Om det här körs innan något tilldelas till Output.cart , har skriptet ingen effekt. Det här är ett bra sätt att lämna skript, till exempel om kunden inte är berättigad att köra skriptet.

Kärnexempel

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

Metoder för radartikel

Följande metoder kan endast användas i radartikelskript:

Varukorg

Skriptmetoder med hjälp av varukorgsobjekt i radartikelskript
Metod Returtyp Beskrivning
.subtotal_price_was Pengar Returnerar det delsumman för kundvagnen innan några rabatter har tillämpats.
.subtotal_price_changed? Boolesk Returnerar om delsumman har ändrats.

LineItem

Skriptmetoder med hjälp av objektet LineiItem i radartikelskript
Metod Returtyp Beskrivning
.change_line_price(Money new_price, { message: String }) Pengar Ändra priset för radartikeln till det belopp som anges. A meddelande krävs. new_price måste vara lägre än det aktuella priset.
.original_line_price Pengar Returnerar det ursprungliga priset för radartikeln innan skript och rabatter tillämpades.
.line_price_was Pengar Returnerar priset för radartikeln innan ändringarna tillämpades av det aktuella skriptet.
.line_price_changed? Boolesk Returnerar om priset för radartikeln har ändrats.
.change_properties(hash new_properties, { message: String }) hash Ställer in nya egenskaper för en artikel. Det ursprungliga egenskapshashvärdet lagras i properties_was och egenskapshashen som skickas till metoden blir de nya egenskaperna för radartikeln.
.properties_was hash Returnerar den ursprungliga egenskapshashen för radartikeln innan några ändringar tillämpades.
.properties_changed? Boolesk Returnerar om egenskaper för radartikeln har ändrats.
.split({ take: Integer }) LineItem Delar upp en artikel i två radartiklar. Taanger vilken kvantitet som ska tas bort från den ursprungliga radartikeln för att skapa den nya radartikeln.

.split example

Det här skriptexemplet delar upp en radartikel som heter original_line_item till två radartiklar. Den nya radartikeln har kvantiteten 1 (angivet av take: 1). Skriptet tillämpar sedan ett rabatterat pris på den nya radartikeln med meddelandet "tredje hatten för 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
end

Variant

Skriptmetoder med hjälp av variantobjekt i radartikelskript
Metod Returtyp Beskrivning
.compare_at_price Pengar Returnerar ordinarie pris för varianten. Returnerar nil om varianten inte har ett ordinarie pris.

Fraktmetoder

Följande metoder kan användas i leveransskript:

Indata

Skriptmetoder som använder indataobjektet i fraktskript
Metod Returtyp Beskrivning
.shipping_rates ShippingRateList Returnerar en lista över alla fraktkostnader.

ShippingRateList

Skriptmetoder med hjälp av objektet ShippingRateList i leveransskript
Metod Returtyp Beskrivning
.delete_if ShippingRateList Radera fraktkostnader med hjälp av ett valfritt kodblock. Se dokumentationen för Rubys delete_if-metod.
.sort! ShippingRateList Sortera fraktpriserna med jämförelseoperatören eller genom att använda ett valfritt kodblock. Se dokumentationen för Rubys sort!-metod.
.sort_by! ShippingRateList Sortera fraktpriserna med hjälp av ett valfritt kodblock. Se dokumentationen för Rubys sort_by!-metod.

ShippingRate

Skriptmetoder med hjälp av ShippingRate-objekt i leveransskript
Metod Returtyp Beskrivning
.code Sträng Returnerar koden för fraktkostnaden.
.markup Pengar Returnerar påslaget för en fraktkostnad, om tillämpligt.
.name Sträng Returnerar namnet på fraktkostnaden. Den kan ändras med hjälp av change_name metoden.
.price Pengar Returnerar priset för fraktkostnaden.
.källa Sträng Returnerar källan (transportföretaget) som är kopplat till fraktkostnaden, om det är relevant. Den kan inte ändras.
.change_name(String new_name) Sträng Ändrar namn (högst 255 tecken) på fraktkostnaden. Det är inte möjligt att ändra, radera eller dölja källan.
.apply_discount(pengarabatt, { message: String }) Pengar Gäller en rabatt på det angivna fasta beloppet. Priset kan inte minskas under 0. Ett meddelande krävs.
.phone_required? Boolesk Returnerar sant om ett telefonnummer krävs för att få fraktkostnaden, eller falskt om ett telefonnummer inte krävs.

Betalningsmetoder

Följande metoder kan användas i betalningsskript:

Indata

Skriptmetoder som använder inmatningsobjektet i betalningsskript
Metod Returtyp Beskrivning
.payment_gateways PaymentGatedressList Returnerar en lista över alla betalningsgateways i butiken.

PaymentGategatewayList

Skriptmetoder med hjälp av objektet PaymentGatewayList i betalningsskript
Metod Returtyp Beskrivning
.delete_if PaymentGategatewayList Radera betalningsgateway med hjälp av ett valfritt kodblock. Se dokumentationen för Rubys delete_if-metod.
.sort! PaymentGategatewayList Sortera betalningsgatewayerna med hjälp av jämförelseoperatören eller genom ett valfritt kodblock. Se dokumentationen för Rubys sort!-metod.
.sort_by! PaymentGategatewayList Sortera betalningsgatewayerna med hjälp av ett valfritt kodblock. Se dokumentationen för Rubys sort_by!-metod.

PaymentGateway

Metod Returtyp Beskrivning
.name Sträng Returnerar namnet på betalningsgatewayen.
.enabled_card_brands Listar <String>

Om betalningsgatewayen stöder kontokort returneras en lista över de kontokortstyper som butiken godkänner. Returnerar en tom lista om gatewayen inte stöder kontokort.

.change_name(String new_name) Sträng Ändrar namnet på betalnings-gatewayen. Betalnings-gatewayer med logotyper kan inte byta namn.

Exempel

I följande skriptexempel för radartiklar, när en kund beställer en produkt som inte är ett presentkort, minskas priset för produkten med 9 USD. Det totala belopp som kunden har spenderat under alla besök i din butik visas också:

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

Mer information

Läs mer om

Är du redo att börja sälja med Shopify?

Prova gratis