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
MetodReturtypBeskrivning
.cartVarukorgReturnerar ett föränderligt varukorgsobjekt.
.localesträngReturnerar 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
MetodReturtypBeskrivning
.customerKundReturnerar ägaren till varukorgen (om sådan finns).
.shipping_addressLeveransadressReturnerar leveransadressen för ägaren till kundvagnen (om sådan finns).
.discount_codevarierar 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_pricePengarReturnerar det delsumman för kundvagnen efter att radartikelrabatter har tillämpats men innan rabattkoder tillämpas.
.total_weightgramReturnerar den totala vikten för alla radobjekt i kundvagnen.

CartDiscount::FixedAmount

Skriptmetoder med hjälp av CartDiscount::FixedAmount-objekt
MetodReturtypBeskrivning
.codeSträngReturnerar rabattkoden som används för att tillämpa rabatten.
.amountPengarReturnerar rabattens belopp.
.reject({ message: String })nollAvvisar rabattkoden som tillämpats på varukorgen. Ett meddelande krävs.
.rejected?BooleskReturnerar om rabattkoden avvisades.

CartDiscount::Percentage

Skriptmetoder med hjälp av CartDiscount::Percentage object
MetodReturtypBeskrivning
.codeSträngReturnerar rabattkoden som används för att tillämpa rabatten.
.procentsatsDecimalReturnerar rabattens procentuella belopp.
.reject({ message: String })nollAvvisar rabattkoden som tillämpats på varukorgen. Ett meddelande krävs.
.rejected?BooleskReturnerar om rabattkoden avvisades.

CartDiscount::Shipping

Skriptmetoder med hjälp av CartDiscount::Shipping object
MetodReturtypBeskrivning
.codeSträngReturnerar rabattkoden som används för att tillämpa rabatten.
.reject({ message: String })nollAvvisar rabattkoden som tillämpats på varukorgen. Ett meddelande krävs.
.rejected?BooleskReturnerar om rabattkoden avvisades.

Kund

Skriptmetoder med hjälp av kundobjekt
MetodReturtypBeskrivning
.idHeltalReturnerar kundens ID-nummer.
.emailSträngReturnerar 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_countHeltalReturnerar det totala antalet ordrar som en kund har lagt.
.total_spentPengarReturnerar det totala belopp som kunden har spenderat på alla ordrar.
.accepts_marketing?BooleskReturnerar om kunden godkänner marknadsföring.

LineItem

<tdgram
Skriptmetoder med hjälp av objektet LineItem
MetodReturtypBeskrivning
.gramsReturnerar den totala vikten för radartikeln.
.line_pricePengarPriset på radartikeln.
.discounted?BooleskReturnerar 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.
.propertieshashReturnerar de egenskaper som specificerades för denna rad.
.variantVariantReturnerar den specifika produktvarianten som representeras av radartikeln.
.kvantitetHeltalReturnerar kvantiteten för den här radartikeln.
.selling_plan_idHeltalReturnerar 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
MetodReturtypBeskrivning
.newListaSkapar 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_ifListaRadera 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.

.firstElement 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.

.lastElement eller noll

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

.lengthint

Returnerar antalet element i listan.

.sizeint

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
MetodReturtypBeskrivning
.namesträngReturnerar namnet på den person som är associerad med leveransadressen.
.address1strängReturnerar gatuadressdelen av leveransadressen.
.address2strängReturnerar det valfria tilläggsfältet för gatuadressdelen av leveransadressen.
.phonesträngReturnerar telefonnumret för leveransadressen.
.citysträngReturnerar staden för leveransadressen.
.zipsträngReturnerar postnumret för leveransadressen.
.provincesträngReturnerar provins/delstat för leveransadressen.
.province_codesträngReturnerar det förkortade värdet för provins/delstat i leveransadressen.
.country_codesträngReturnerar det förkortade värdet för det land där leveransadressen finns.

Pengar

Skriptmetoder med hjälp av pengaobjekt
MetodReturtypBeskrivning
.derived_from_presentment(customer_cents:X)PengarKonverterar 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).
.newPengarSkapar ett nytt objekt som representerar ett pris.
.zeroPengar

Skapar ett nytt objekt med ett nollpris.

+PengarLägger till två penga-objekt.
-PengarSubtraherar ett pengaobjekt från ett annat.
*PengarMultiplicerar 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
MetodReturtypBeskrivning
.idHeltalReturnerar variantens ID-nummer.
.pricePengarReturnerar enhetspriset för varianten.
.productProduktReturnerar 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.
.titleSträngReturnerar varianttitel.

Produkt

Skriptmetoder med hjälp av produktobjektet
MetodReturtypBeskrivning
.idHeltalReturnerar produktens ID-nummer.
.gift_card?BooleskReturnerar 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.
.produkttypSträngEn kategorisering som en produkt kan taggas med, som vanligtvis används för filtrering och sökning.
.säljareSträngReturnerar 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
MetodReturtypBeskrivning
.exitingenAvslutar 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
MetodReturtypBeskrivning
.subtotal_price_wasPengarReturnerar det delsumman för kundvagnen innan några rabatter har tillämpats.
.subtotal_price_changed?BooleskReturnerar om delsumman har ändrats.

LineItem

Skriptmetoder med hjälp av objektet LineiItem i radartikelskript
MetodReturtypBeskrivning
.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_pricePengarReturnerar det ursprungliga priset för radartikeln innan skript och rabatter tillämpades.
.line_price_wasPengarReturnerar priset för radartikeln innan ändringarna tillämpades av det aktuella skriptet.
.line_price_changed?BooleskReturnerar om priset för radartikeln har ändrats.
.change_properties(hash new_properties, { message: String }) hashStä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_washashReturnerar den ursprungliga egenskapshashen för radartikeln innan några ändringar tillämpades.
.properties_changed?BooleskReturnerar om egenskaper för radartikeln har ändrats.
.split({ take: Integer })LineItemDelar 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
MetodReturtypBeskrivning
.compare_at_pricePengarReturnerar 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
MetodReturtypBeskrivning
.shipping_ratesShippingRateListReturnerar en lista över alla fraktkostnader.

ShippingRateList

Skriptmetoder med hjälp av objektet ShippingRateList i leveransskript
MetodReturtypBeskrivning
.delete_ifShippingRateListRadera fraktkostnader med hjälp av ett valfritt kodblock. Se dokumentationen för Rubys delete_if-metod.
.sort!ShippingRateListSortera fraktpriserna med jämförelseoperatören eller genom att använda ett valfritt kodblock. Se dokumentationen för Rubys sort!-metod.
.sort_by!ShippingRateListSortera 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
MetodReturtypBeskrivning
.codeSträngReturnerar koden för fraktkostnaden.
.markupPengarReturnerar påslaget för en fraktkostnad, om tillämpligt.
.nameSträngReturnerar namnet på fraktkostnaden. Den kan ändras med hjälp av change_name metoden.
.pricePengarReturnerar priset för fraktkostnaden.
.källaSträngReturnerar 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 })PengarGäller en rabatt på det angivna fasta beloppet. Priset kan inte minskas under 0. Ett meddelande krävs.
.phone_required?BooleskReturnerar 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
MetodReturtypBeskrivning
.payment_gatewaysPaymentGatedressListReturnerar en lista över alla betalningsgateways i butiken.

PaymentGategatewayList

Skriptmetoder med hjälp av objektet PaymentGatewayList i betalningsskript
MetodReturtypBeskrivning
.delete_ifPaymentGategatewayListRadera betalningsgateway med hjälp av ett valfritt kodblock. Se dokumentationen för Rubys delete_if-metod.
.sort!PaymentGategatewayListSortera betalningsgatewayerna med hjälp av jämförelseoperatören eller genom ett valfritt kodblock. Se dokumentationen för Rubys sort!-metod.
.sort_by!PaymentGategatewayListSortera betalningsgatewayerna med hjälp av ett valfritt kodblock. Se dokumentationen för Rubys sort_by!-metod.

PaymentGateway

MetodReturtypBeskrivning
.nameSträngReturnerar 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

Hittar du inte de svar du letar efter? Vi finns här för att hjälpa till!