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 metoderkan bara användas för radartikelskript.

Fraktskript

Leveransskript interagerar medleveransoch 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 metoderkan endast användas i fraktskript.

Betalningsskript

Betalningsskript interagerar medbetalningaroch 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 metoderkan 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, ellerpt-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 有关退货事宜:

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 finnsdiscount_codefortfarande kvar men varukorgspriset ändras inte.

Se ett exempel pådiscount_code.

.line_items Listar Returnerar en lista som innehåller radartiklarna i varukorgen.
.presentment_currency Listar Returnerar kundens lokala valuta (presentationsvaluta) (iISO 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. Ettmeddelandekrä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. Ettmeddelandekrä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. Ettmeddelandekrä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 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

gram Returnerar den totala vikten för radartikeln.
Skriptmetoder med hjälp av objektet LineItem
Metod Returtyp Beskrivning
.grams
.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 produktvariantsä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在纽约ta med element som är gemensamma för de två listorna, utan dubbletter.

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

Returnerarsantom listan inte innehåller några element.

.first Element eller noll

Returnerar det första elementet ellernollom 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

为侦破sista Returnerar indexet 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 ellernollom 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 accepterarcustomer_cents-parametern, som accepterar en siffra i cent. Till exempelMoney.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 ettpengaobjekt från ett annat.
* Pengar Multiplicerar ettpengaobjekt med en siffra.

Pengaexempel

Money.new(cents:1000)

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

Money.new(cents:100)*50

Skapar ettMoney-objekt som representerar 1 USD, och multiplicerar sedan det beloppet med 50. Returnerar ettMoney-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 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 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 tillOutput.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.

Karnexempel

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

Metoder för radartikel

Följande metoder kan endast användas iradartikelskript:

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 hjalp av objektet LineiItem我radartikelskript
Metod Returtyp Beskrivning
.change_line_price(Moneynew_price, { message:String}) Pengar Ändra priset för radartikeln till det belopp som anges. Ameddelandekrävs.new_pricemå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(hashnew_properties, { message:String}) hash Ställer in nya egenskaper för en artikel. Det ursprungliga egenskapshashvärdet lagras iproperties_wasoch egenskapshashen som skickas直到metoden blirde 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 heteroriginal_line_itemtill två radartiklar. Den nya radartikeln har kvantiteten 1 (angivet avtake: 1). Skriptet tillämpar sedan ett rabatterat pris på den nya radartikeln med meddelandet "tredje hatten för 5 dollar".

iforiginal_line_item.quantity>=3new_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_itemend

Variant

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

Fraktmetoder

Följande metoder kan användas ileveransskript:

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örRubysdelete_if-metod.
.sort! ShippingRateList Sortera fraktpriserna med jämförelseoperatören eller genom att använda ett valfritt kodblock. Se dokumentationen förRubyssort!-metod.
.sort_by! ShippingRateList Sortera fraktpriserna med hjälp av ett valfritt kodblock. Se dokumentationen förRubyssort_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 avchange_namemetoden.
.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(Stringnew_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 Returnerarsantom ett telefonnummer krävs för att få fraktkostnaden, ellerfalsktom ett telefonnummer inte krävs.

Betalningsmetoder

Följande metoder kan användas ibetalningsskript:

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örRubysdelete_if-metod.
.sort! PaymentGategatewayList Sortera betalningsgatewayerna med hjälp av jämförelseoperatören eller genom ett valfritt kodblock. Se dokumentationen förRubyssort!-metod.
.sort_by! PaymentGategatewayList Sortera betalningsgatewayerna med hjälp av ett valfritt kodblock. Se dokumentationen förRubyssort_by!-metod.

PaymentGateway

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

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(Stringnew_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