Shopify Scripts API atsauce
Skripti tiek rakstīti ar Ruby API, kas sniedz lielisku kontroli un pielāgojamību.
Ir dažādi skriptu veidi. Skriptam veids tiek piešķirts tā izveides laikā lietotnē Script Editor, pamatojoties uz to, kuru skripta veidni tu izvēlies kā sākumpunktu:
Rindas vienumu skripti
Rindas vienumu skripti ietekmē grozā esošos rindas vienumus un var mainīt cenas, kā arī piešķirt atlaides. Šie skripti tiek izpildīti, kad grozā tiek veiktas izmaiņas.
Rindas vienumu skripti, kas piešķir atlaidi abonementam, tiek piemēroti tikai pirmajam abonementa maksājumam. Skripts nepiešķir atlaidi turpmākajiem maksājumiem.
Dažas metodes var izmantot tikai rindas vienumu skriptos.
Piegādes skripti
Piegādes skripti mijiedarbojas ar piegādāšanu un var mainīt piegādes veidus, kā arī piešķirt atlaides piegādes likmēm. Šie skripti tiek izpildīti, kad norēķināšanās sasniedz piegādes opciju lapu.
Piegādes skripti, kas piešķir atlaidi abonementa piegādes likmei, tiek piemēroti tikai pirmajam abonementa maksājumam. Skripts nepiešķir atlaidi turpmākajiem maksājumiem.
<p>Some methods <a href="#shipping-methods">can only be used in shipping scripts</a>.</p>Maksājumu skripti
Maksājumu skripti mijiedarbojas ar maksājumiem un var pārdēvēt un paslēpt maksājumu vārtejas, kā arī mainīt to secību. Ņem vērā, ka maksājumu skripti nemijiedarbojas ar tām maksājumu vārtejām, kuras tiek rādītas pirms norēķinu ekrāna, piemēram, Apple Pay. Šie skripti tiek izpildīti, kad norēķināšanās sasniedz maksājumu lapu.
Dažas metodes var izmantot tikai maksājumu skriptos.
Šajā lapā
Vispārīgās metodes
Tālāk norādītās metodes var izmantot jebkurā skriptu veidā:
Ievade
| Metode | Atgrieztais veids | Apraksts |
|---|---|---|
| .cart | Cart | Atgriež maināmu groza objektu. |
| .locale | virkne | Atgriež klienta lokāli. Piemēram, en, fr vai pt-BR. |
Grozs
Groza objekts ir pieejams tikai tiešsaistes veikalā. Dažiem pamestiem norēķiniem ir piekļuve groza objektam. Tomēr, ja norēķināšanās ir slēgta un pēc tam klients apmeklē pamesto norēķinu, viņš tiek novirzīts uz iepriekš aizpildītu norēķināšanos, un groza objekts vairs nepastāv. Tas notiek tāpēc, ka pamesta norēķina pabeigšanas vēstule ir apgājusi skatlogu.
| Metode | Atgrieztais veids | Apraksts |
|---|---|---|
| .customer | Customer | Atgriež groza īpašnieku (ja tāds ir). |
| .shipping_address | ShippingAddress | Atgriež groza īpašnieka piegādes adresi (ja tāda ir). |
| .discount_code | atšķiras |
Atgriež:
|
CartDiscount::FixedAmount
| Metode | Atgrieztais veids | Apraksts |
|---|---|---|
| .code | Virkne | Atgriež atlaides kodu, kas izmantots atlaides piemērošanai. |
| .amount | Money | Atgriež atlaides naudas summu. |
| .reject({ message: String }) | nil | Noraida grozam piemēroto atlaides kodu. Ir jānorāda message. |
| .rejected? | Būla vērtība | Atgriež informāciju par to, vai atlaides kods tika noraidīts. |
CartDiscount::Percentage
| Metode | Atgrieztais veids | Apraksts |
|---|---|---|
| .code | Virkne | Atgriež atlaides kodu, kas izmantots atlaides piemērošanai. |
| .percentage | Decimālskaitlis | Atgriež atlaides procentuālo apmēru. |
| .reject({ message: String }) | nil | Noraida grozam piemēroto atlaides kodu. Ir jānorāda message. |
| .rejected? | Būla vērtība | Atgriež informāciju par to, vai atlaides kods tika noraidīts. |
CartDiscount::Shipping
| Metode | Atgrieztais veids | Apraksts |
|---|---|---|
| .code | Virkne | Atgriež atlaides kodu, kas izmantots atlaides piemērošanai. |
| .reject({ message: String }) | nil | Noraida grozam piemēroto atlaides kodu. Ir jānorāda message. |
| .rejected? | Būla vērtība | Atgriež informāciju par to, vai atlaides kods tika noraidīts. |
Customer
| Metode | Atgrieztais veids | Apraksts |
|---|---|---|
| .id | Vesels skaitlis | Atgriež klienta ID numuru. |
| Virkne | Atgriež klienta e-pasta adresi. | |
| .tags | List<Tag> | Atgriež virkņu sarakstu, kas norāda jebkādus klientam iestatītos tagus. |
| .orders_count | Vesels skaitlis | Atgriež klienta veikto pasūtījumu kopskaitu. |
| .total_spent | Money | Atgriež kopējo summu, ko klients ir iztērējis visos pasūtījumos. |
| .accepts_marketing? | Būla vērtība | Atgriež informāciju par to, vai klients piekrīt saņemt mārketinga materiālus. |
LineItem
| Metode | Atgrieztais veids | Apraksts |
|---|---|---|
| .grams | grami | Atgriež rindas vienuma kopējo svaru. |
| .line_price | Money | Rindas vienuma cena. |
| .discounted? | Būla vērtība | Atgriež informāciju par to, vai rindas vienuma cenai ir piemērota skripta vai manuāli iestatīta atlaide. Atlaides kodu izmantošana neietekmē atgriezto vērtību. |
| .properties | hash | Atgriež rekvizītus, kas tika norādīti šim rindas vienumam. |
| .variant | Variant | Atgriež noteiktu produkta variantu, ko norāda rindas vienums. |
| .quantity | Vesels skaitlis | Atgriež šī rindas vienuma daudzumu. |
| .selling_plan_id | Vesels skaitlis | Atgriež rindas vienuma pārdošanas plāna ID. Šī metode ir noderīga, ja veikalā tiek pārdota abonēšana un ir nepieciešams, lai skripts noteiktu, kad produkta variants tiek pārdots kā abonements. |
List
| Metode | Atgrieztais veids | Apraksts |
|---|---|---|
| .new | List | Izveido jaunu objektu, kas norāda sarakstu. |
| .[] | Elements vai nil |
Atgriež elementu norādītajā indeksā. |
| .& | List |
Atgriež jaunu sarakstu, kas satur abos sarakstos kopīgus elementus bez dublikātiem. |
| .delete_if | List | Izdzēš elementus, izmantojot neobligātu koda bloku. Skati Ruby metodes delete_if dokumentāciju. |
| .empty? | Būla vērtība |
Atgriež |
| .first | Elements vai nil |
Atgriež pirmo elementu vai |
| .index(*args, &block) | int vai nil |
Atgriež saraksta pirmā elementa indeksu. Ja argumenta vietā ir norādīts bloks, atgriež tā pirmā elementa indeksu, kuram bloka vērtība ir patiesa. |
| .rindex(*args, &block) | int vai nil |
Atgriež saraksta pēdējā elementa indeksu. Ja argumenta vietā ir norādīts bloks, atgriež tā pirmā elementa indeksu, kuram bloka vērtība ir patiesa. |
| .last | Elements vai nil |
Atgriež pēdējo elementu vai |
| .length | int |
Atgriež elementu skaitu sarakstā. |
| .size | int |
Metodes length aizstājvārds. |
| .each(*args, &block) | List |
Izsauc bloku vienreiz katram saraksta elementam, nododot elementu kā bloka parametru. |
ShippingAddress
| Metode | Atgrieztais veids | Apraksts |
|---|---|---|
| .name | virkne | Atgriež ar piegādes adresi saistītās personas vārdu. |
| .address1 | virkne | Atgriež piegādes adreses ielas adreses daļu. |
| .address2 | virkne | Atgriež piegādes adreses ielas adreses daļas neobligāto papildlauku. |
| .phone | virkne | Atgriež piegādes adreses tālruņa numuru. |
| .city | virkne | Atgriež piegādes adreses pilsētu. |
| .zip | virkne | Atgriež piegādes adreses ZIP kodu. |
| .province | virkne | Atgriež piegādes adreses provinci/štatu. |
| .province_code | virkne | Atgriež piegādes adreses provinces/štata saīsināto vērtību. |
| .country_code | virkne | Atgriež piegādes adreses valsts saīsināto vērtību. |
Money
| Metode | Atgrieztais veids | Apraksts |
|---|---|---|
| .derived_from_presentment(customer_cents:X) | Money | Konvertē summu (centos) no klienta vietējās (uzrādīšanas) valūtas uz tava veikala valūtu. Šī metode pieņem parametru customer_cents, kurā var norādīt skaitli centos. Piemēram, Money.derived_from_presentment(customer_cents: 500). |
| .new | Money | Izveido jaunu objektu, lai attēlotu cenu. |
| .zero | Money |
Izveido jaunu objektu, kura cena ir nulle. |
| + | Money | Saskaita divus Money objektus. |
| - | Money | Atņem vienu Money objektu no cita. |
| * | Money | Reizina Money objektu ar skaitli. |
Objekta Money piemēri
Money.new(cents: 1000)Izveido Money objektu, kas attēlo 1000 centus jeb 10 $.
Money.new(cents: 100) * 50Izveido Money objektu, kas attēlo 1 $, pēc tam reizina šo summu ar 50. Atgriež Money objektu, kas attēlo 50 $.
Variants
| Metode | Atgrieztais veids | Apraksts |
|---|---|---|
| .id | Vesels skaitlis | Atgriež varianta ID numuru. |
| .price | Money | Atgriež varianta vienības cenu. |
| .product | Product | Atgriež ar variantu saistīto produktu. |
| .skus | List<String> | Atgriež varianta noliktavas uzskaites vienības (SKU), ko bieži izmanto krājumu izsekošanai. |
| .title | Virkne | Atgriež varianta nosaukumu. |
Produkts
| Metode | Atgrieztais veids | Apraksts |
|---|---|---|
| .id | Vesels skaitlis | Atgriež produkta ID numuru. |
| .gift_card? | Būla vērtība | Atgriež to, vai produkts ir dāvanu karte. |
| .tags | List<Tag> | Atgriež virkņu sarakstu, kas attēlo šim produktam iestatītos tagus. |
| .product_type | Virkne | Kategorizācija, ar ko var tagot produktu; parasti to izmanto filtrēšanai un meklēšanai. |
| .vendor | Virkne | Atgriež šī produkta piegādātāju. |
Kernel
Kernel ir Ruby modulis, kas tiek iekļauts katrā klasē. Tā rezultātā tā metodes ir pieejamas katram objektam. Šīs metodes darbojas tāpat kā globālās funkcijas citās valodās.
| Metode | Atgrieztais veids | Apraksts |
|---|---|---|
| .exit | nav | Pabeidz pašreizējā skripta izpildi bez kļūdām. Ja šī metode tiek izpildīta, pirms objektam Output.cart ir kaut kas piešķirts, skriptam nav nekādas ietekmes. Tas ir noderīgs veids, kā iziet no skriptiem, piemēram, ja klients neatbilst nosacījumiem skripta izpildei. |
Kernel piemērs
customer = Input.cart.customer
if customer && customer.email.end_with?("@mycompany.com")
# Employees are not eligible for this promotion.
exit
endRindas vienumu metodes
Tālāk norādītās metodes ir izmantojamas tikai rindas vienumu skriptos:
Grozs
| Metode | Atgrieztais veids | Apraksts |
|---|---|---|
| .subtotal_price_was | Money | Atgriež groza starpsummu pirms jebkādu atlaižu piemērošanas. |
| .subtotal_price_changed? | Būla vērtība | Atgriež to, vai starpsumma ir mainījusies. |
LineItem
| Metode | Atgrieztais veids | Apraksts |
|---|---|---|
| .change_line_price(Money new_price, { message: String }) | Money | Maina rindas vienuma cenu uz norādīto summu. Ir nepieciešams message. Vērtībai new_price ir jābūt zemākai par pašreizējo cenu. |
| .original_line_price | Money | Atgriež rindas vienuma sākotnējo cenu pirms skriptu un atlaižu piemērošanas. |
| .line_price_was | Money | Atgriež rindas vienuma cenu pirms izmaiņām, ko piemēroja pašreizējais skripts. |
| .line_price_changed? | Būla vērtība | Atgriež to, vai rindas vienuma cena ir mainījusies. |
| .change_properties(hash new_properties, { message: String }) | hash | Iestata jaunas rindas vienuma īpašības. Sākotnējais īpašību hash tiek saglabāts kā properties_was, un metodei nodotais īpašību hash kļūst par rindas vienuma jaunajām īpašībām. |
| .properties_was | hash | Atgriež rindas vienuma sākotnējo īpašību hash pirms jebkādu izmaiņu piemērošanas. |
| .properties_changed? | Būla vērtība | Atgriež to, vai rindas vienuma īpašības ir mainītas. |
| .split({ take: Integer }) | LineItem | Sadala rindas vienumu divos rindas vienumos. take norāda, kādu daudzumu atdalīt no sākotnējā rindas vienuma, lai izveidotu jauno rindas vienumu. |
.split piemērs
Šis skripta piemērs sadala rindas vienumu original_line_item divos rindas vienumos. Jaunā rindas vienuma daudzums ir 1 (norādīts ar take: 1). Pēc tam skripts jaunajam rindas vienumam piemēro cenu ar atlaidi un ziņojumu "Third hat for 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
endVariants
| Metode | Atgrieztais veids | Apraksts |
|---|---|---|
| .compare_at_price | Money | Atgriež varianta salīdzināmo cenu. Atgriež nil, ja variantam nav salīdzināmās cenas. |
Piegādes veidi
Tālāk norādītās metodes var izmantot piegādes skriptos:
Ievade
| Metode | Atgrieztais veids | Apraksts |
|---|---|---|
| .shipping_rates | ShippingRateList | Atgriež visu piegādes likmju sarakstu. |
ShippingRateList
| Metode | Atgrieztais veids | Apraksts |
|---|---|---|
| .delete_if | ShippingRateList | Dzēs piegādes likmes, izmantojot neobligātu koda bloku. Skati Ruby delete_if metodes dokumentāciju. |
| .sort! | ShippingRateList | Kārto piegādes likmes, izmantojot salīdzināšanas operatoru vai neobligātu koda bloku. Skati Ruby sort! metodes dokumentāciju. |
| .sort_by! | ShippingRateList | Kārto piegādes likmes, izmantojot neobligātu koda bloku. Skati Ruby sort_by! metodes dokumentāciju. |
ShippingRate
| Metode | Atgrieztais veids | Apraksts |
|---|---|---|
| .code | Virkne | Atgriež piegādes likmes kodu. |
| .markup | Money | Atgriež piegādes likmes uzcenojumu, ja piemērojams. |
| .name | Virkne | Atgriež piegādes likmes nosaukumu. To var mainīt, izmantojot change_name metodi. |
| .price | Money | Atgriež piegādes likmes cenu. |
| .source | Virkne | Atgriež ar piegādes likmi saistīto avotu (pārvadātāju), ja tas ir atbilstošs. To nevar mainīt. |
| .change_name(String new_name) | Virkne | Maina piegādes likmes nosaukumu (maksimāli 255 rakstzīmes). Avotu nevar mainīt, dzēst vai paslēpt. |
| .apply_discount(Money discount, { message: String }) | Money | Piemēro norādītās fiksētās summas atlaidi. Cenu nevar samazināt zem 0. Ir nepieciešams ziņojums. |
| .phone_required? | Būla vērtība | Atgriež true, ja piegādes likmes iegūšanai ir nepieciešams tālruņa numurs, vai false, ja tālruņa numurs nav nepieciešams. |
Maksāšanas metodes
Tālāk norādītās metodes var izmantot maksājumu skriptos:
Ievade
| Metode | Atgrieztais veids | Apraksts |
|---|---|---|
| .payment_gateways | PaymentGatewaysList | Atgriež visu veikala maksājumu vārteju sarakstu. |
PaymentGatewayList
| Metode | Atgrieztais veids | Apraksts |
|---|---|---|
| .delete_if | PaymentGatewayList | Dzēs maksājumu vārtejas, izmantojot neobligātu koda bloku. Skati Ruby delete_if metodes dokumentāciju. |
| .sort! | PaymentGatewayList | Kārto maksājumu vārtejas, izmantojot salīdzināšanas operatoru vai neobligātu koda bloku. Skati Ruby sort! metodes dokumentāciju. |
| .sort_by! | PaymentGatewayList | Kārto maksājumu vārtejas, izmantojot neobligātu koda bloku. Skati Ruby sort_by! metodes dokumentāciju. |
PaymentGateway
| Metode | Atgrieztais veids | Apraksts |
|---|---|---|
| .name | Virkne | Atgriež maksājumu vārtejas nosaukumu. |
| .enabled_card_brands | List<String> |
Ja maksājumu vārteja atbalsta kredītkartes, atgriež veikalā pieņemto kredītkaršu veidu sarakstu. Ja vārteja neatbalsta kredītkartes, atgriež tukšu sarakstu. |
| .change_name(String new_name) | Virkne | Maina maksājumu vārtejas nosaukumu. Maksājumu vārtejām ar logotipiem nevar mainīt nosaukumu. |
Piemēri
Tālāk sniegtajā rindas vienuma skripta piemērā, kad klients pasūta produktu, kas nav dāvanu karte, produkta cena tiek samazināta par 9 $. Tiek parādīta arī kopējā summa, ko klients ir iztērējis visos tava veikala apmeklējumos:
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
Uzzināt vairāk
Uzzini vairāk par: