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.
På den här sidan
Allmänna metoder
Följande metoder kan användas i alla typer av skript:
Indata
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.
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:
|
.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
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
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
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
Metod | Returtyp | Beskrivning |
---|---|---|
.id | Heltal | Returnerar kundens ID-nummer. |
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
Metod | Returtyp | Beskrivning |
---|---|---|
.grams | <tdgramReturnerar 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
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 |
.first | Element eller noll |
Returnerar det första elementet eller |
.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 |
.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
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
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 penga objekt från ett annat. |
* | Pengar | Multiplicerar ett penga objekt med en siffra. |
Pengaexempel
Skapar ett Money
-objekt som representerar 1000 cent, eller 10 USD.
Skapar ett Money
-objekt som representerar 1 USD, och multiplicerar sedan det beloppet med 50. Returnerar ett Money
-objekt som representerar 50 USD.
Variant
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
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.
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
Metoder för radartikel
Följande metoder kan endast användas i radartikelskript:
Varukorg
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
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. Ta anger 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".
Variant
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
Metod | Returtyp | Beskrivning |
---|---|---|
.shipping_rates | ShippingRateList | Returnerar en lista över alla fraktkostnader. |
ShippingRateList
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
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
Metod | Returtyp | Beskrivning |
---|---|---|
.payment_gateways | PaymentGatedressList | Returnerar en lista över alla betalningsgateways i butiken. |
PaymentGategatewayList
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å:
Mer information
Läs mer om