Shopify Scripts APIaren erreferentzia
Scriptak Ruby-ren API baten bidez idazten dira, eta horrek kontrol eta malgutasun handia ematen dizu.
Hainbat script mota daude. Script Editor aplikazioan script bat sortzen duzunean, mota bat esleitzen zaio, hasteko aukeratzen duzun script-txantiloiaren arabera:
Lerroko elementuen scriptak
Lerroko elementuen scriptek saskiko lerroko elementuetan dute eragina, eta prezioak alda ditzakete, baita deskontuak eman ere. Script horiek saskian aldaketa bat egiten denean exekutatzen dira.
Harpidetza bati deskontua egiten dioten lerroko elementuen scriptak harpidetzaren lehenengo ordainketan soilik aplikatzen dira. Ondorengo ordainketetan scriptak ez du deskonturik egingo.
Metodo batzuk lerroko elementuen scriptetan soilik erabil daitezke.
Bidalketa-scriptak
Bidalketa-scriptek bidalketekin interakzioa dute, eta bidalketa-metodoak alda ditzakete, baita bidalketa-tarifetan deskontuak eman ere. Script horiek ordainketa-prozesua bidalketa-aukeren orrira iristen denean exekutatzen dira.
Harpidetza baten bidalketa-tarifari deskontua egiten dioten bidalketa-scriptak harpidetzaren lehenengo ordainketan soilik aplikatzen dira. Ondorengo ordainketetan scriptak ez du deskonturik egingo.
<p>Some methods <a href="#shipping-methods">can only be used in shipping scripts</a>.</p>Ordainketa-scriptak
Ordainketa-scriptek ordainketekin interakzioa dute, eta ordainketa-atebideen izenak alda ditzakete, baita ezkutatu edo berrantolatu ere. Kontuan izan ordainketa-scriptek ez dutela interakziorik ordainketa-prozesuaren pantailaren aurretik erakutsitako ordainketa-atebideekin (adibidez, Apple Pay-rekin). Script horiek ordainketa-prozesua ordainketa-orrira iristen denean exekutatzen dira.
Metodo batzuk ordainketa-scriptetan soilik erabil daitezke.
Orri honetan
Metodo orokorrak
Honako metodo hauek edozein script motatan erabil daitezke:
Sarrera
| Metodoa | Itzultze-mota | Deskribapena |
|---|---|---|
| .cart | Saskia | Saski-objektu mutagarri bat itzultzen du. |
| .locale | katea | Bezeroaren eskualdeko ezarpenak itzultzen ditu. Adibidez, en, fr edo pt-BR. |
Saskia
Saskiaren objektua sareko dendan soilik dago erabilgarri. Bertan behera utzitako ordainketa-prozesu batzuek saskiaren objektura sarbidea dute. Hala ere, ordainketa-prozesu bat itxi bada eta, ondoren, bezero batek bertan behera utzitako ordainketa-prozesura bisita egiten badu, aurrez betetako ordainketa-prozesura bidaliko da, eta saskiaren objektua ez da existituko gehiago. Hori gertatzen da bertan behera utzitako ordainketa-prozesuaren mezu elektronikoak erakusleihoa saihestu duelako.
| Metodoa | Itzultze-mota | Deskribapena |
|---|---|---|
| .customer | Bezeroa | Saskiaren jabea itzultzen du (halakorik badago). |
| .shipping_address | Bidalketa-helbidea | Saskiaren jabearen bidalketa-helbidea itzultzen du (halakorik badago). |
| .discount_code | aldakorra |
Itzultzen duena:
Saskiari deskontu bat aplikatu bazaio agertzen da |
CartDiscount::FixedAmount
| Metodoa | Itzultze-mota | Deskribapena |
|---|---|---|
| .code | Katea | Deskontua aplikatzeko erabilitako deskontu-kodea itzultzen du. |
| .amount | Dirua | Deskontuaren diru-kopurua itzultzen du. |
| .reject({ message: String }) | nil | Saskian aplikatutako deskontu-kodea baztertzen du. message bat behar da. |
| .rejected? | Boolearra | Deskontu-kodea baztertu den ala ez itzultzen du. |
CartDiscount::Percentage
| Metodoa | Itzultze-mota | Deskribapena |
|---|---|---|
| .code | Katea | Deskontua aplikatzeko erabilitako deskontu-kodea itzultzen du. |
| .percentage | Dezimala | Deskontuaren ehuneko-kopurua itzultzen du. |
| .reject({ message: String }) | nil | Saskian aplikatutako deskontu-kodea baztertzen du. message bat behar da. |
| .rejected? | Boolearra | Deskontu-kodea baztertu den ala ez itzultzen du. |
CartDiscount::Shipping
| Metodoa | Itzultze-mota | Deskribapena |
|---|---|---|
| .code | Katea | Deskontua aplikatzeko erabilitako deskontu-kodea itzultzen du. |
| .reject({ message: String }) | nil | Saskian aplikatutako deskontu-kodea baztertzen du. message bat behar da. |
| .rejected? | Boolearra | Deskontu-kodea baztertu den ala ez itzultzen du. |
Customer
| Metodoa | Itzultze-mota | Deskribapena |
|---|---|---|
| .id | Zenbaki osokoa | Bezeroaren ID zenbakia itzultzen du. |
| Katea | Bezeroaren helbide elektronikoa itzultzen du. | |
| .tags | List<Tag> | Bezero bati ezarritako etiketak adierazten dituzten kateen zerrenda itzultzen du. |
| .orders_count | Zenbaki osokoa | Bezeroak egindako eskaeren kopuru osoa itzultzen du. |
| .total_spent | Dirua | Bezeroak eskaera guztietan gastatu duen zenbateko osoa itzultzen du. |
| .accepts_marketing? | Boolearra | Bezeroak marketina onartzen duen ala ez itzultzen du. |
LineItem
| Metodoa | Itzultze-mota | Deskribapena |
|---|---|---|
| .grams | grams | Lerroko elementuaren pisu osoa itzultzen du. |
| .line_price | Dirua | Lerroko elementuaren prezioa. |
| .discounted? | Boolearra | Lerroko elementu baten prezioan script batek edo eskuz aplikatutako deskontu batek deskonturik egin dion itzultzen du. Deskontu-kodeak erabiltzeak ez dio eragiten itzulitako balioari. |
| .properties | hash | Lerroko elementu honetarako zehaztu ziren propietateak itzultzen ditu. |
| .variant | Variant | Lerroko elementuak adierazten duen produktuaren aldaera zehatza itzultzen du. |
| .quantity | Zenbaki osokoa | Lerroko elementu honen kantitatea itzultzen du. |
| .selling_plan_id | Zenbaki osokoa | Lerroko elementuaren saltzeko planaren IDa itzultzen du. Metodo hau erabilgarria da dendak harpidetzak saltzen dituenean eta scriptak produktuaren aldaera bat harpidetza gisa saltzen den detektatzea nahi duzunean. |
List
| Metodoa | Itzultze-mota | Deskribapena |
|---|---|---|
| .new | List | Zerrenda bat adierazteko objektu berri bat sortzen du. |
| .[] | Elementua edo nil |
Zehaztutako indizean dagoen elementua itzultzen du. |
| .& | List |
Bi zerrenden artean komunak diren elementuak dituen zerrenda berri bat itzultzen du, bikoizturik gabe. |
| .delete_if | List | Ezabatu elementuak hautazko kode-bloke bat erabiliz. Ikusi Rubyren delete_if metodoaren dokumentazioa. |
| .empty? | Boolearra |
|
| .first | Elementua edo nil |
Lehenengo elementua itzultzen du edo, zerrenda hutsik badago, |
| .index(*args, &block) | int edo nil |
Zerrendako lehen elementuaren indizea itzultzen du. Argumentu baten ordez bloke bat ematen bada, blokea egiazkoa (true) den lehen elementuaren indizea itzultzen du. |
| .rindex(*args, &block) | int edo nil |
Zerrendako azken elementuaren indizea itzultzen du. Argumentu baten ordez bloke bat ematen bada, blokea egiazkoa (true) den lehen elementuaren indizea itzultzen du. |
| .last | Elementua edo nil |
Azken elementua itzultzen du edo, zerrenda hutsik badago, |
| .length | int |
Zerrendan dagoen elementu kopurua itzultzen du. |
| .size | int |
length-en aliasa. |
| .each(*args, &block) | List |
Bloke bati behin deitzen dio zerrendako elementu bakoitzeko, elementua blokeari parametro gisa pasatuta. |
ShippingAddress
| Metodoa | Itzultze-mota | Deskribapena |
|---|---|---|
| .name | katea | Bidalketa-helbidearekin lotutako pertsonaren izena itzultzen du. |
| .address1 | katea | Bidalketa-helbidearen kale-helbidearen zatia itzultzen du. |
| .address2 | katea | Bidalketa-helbidearen kale-helbidearen zatiaren aukerako eremu gehigarria itzultzen du. |
| .phone | katea | Bidalketa-helbidearen telefono-zenbakia itzultzen du. |
| .city | katea | Bidalketa-helbidearen hiria itzultzen du. |
| .zip | katea | Bidalketa-helbidearen posta-kodea itzultzen du. |
| .province | katea | Bidalketa-helbidearen probintzia/estatua itzultzen du. |
| .province_code | katea | Bidalketa-helbideko probintziaren/estatuaren balio laburtua itzultzen du. |
| .country_code | katea | Bidalketa-helbideko herrialdearen balio laburtua itzultzen du. |
Money
| Metodoa | Itzultze-mota | Deskribapena |
|---|---|---|
| .derived_from_presentment(customer_cents:X) | Dirua | Zenbateko bat (zentimotan) bezeroaren tokiko dibisatik (aurkezpen-dibisatik) zure dendako dibisara bihurtzen du. Metodo honek customer_cents parametroa onartzen du, eta honek zentimotan adierazitako zenbaki bat onartzen du. Adibidez, Money.derived_from_presentment(customer_cents: 500). |
| .new | Dirua | Prezio bat irudikatzeko objektu berri bat sortzen du. |
| .zero | Dirua |
Zero prezioa duen objektu berri bat sortzen du. |
| + | Dirua | Bi Money objektu batzen ditu. |
| - | Dirua | Money objektu bati bestea kentzen dio. |
| * | Dirua | Money objektu bat zenbaki batekin biderkatzen du. |
Money adibideak
Money.new(cents: 1000)1000 zentimo, edo 10 $, irudikatzen dituen Money objektu bat sortzen du.
Money.new(cents: 100) * 501 $ irudikatzen duen Money objektu bat sortzen du, eta, ondoren, zenbateko hori 50ekin biderkatzen du. 50 $ irudikatzen dituen Money objektu bat itzultzen du.
Variant
| Metodoa | Itzultze-mota | Deskribapena |
|---|---|---|
| .id | Zenbaki osokoa | Aldaeraren ID zenbakia itzultzen du. |
| .price | Dirua | Aldaeraren unitateko prezioa itzultzen du. |
| .product | Product | Aldaerari lotutako produktua itzultzen du. |
| .skus | List<String> | Aldaeraren izakinak bereizteko unitateak (SKUak) itzultzen ditu; askotan, inbentarioaren jarraipena egiteko erabiltzen dira. |
| .title | Katea | Aldaeraren izenburua itzultzen du. |
Product
| Metodoa | Itzultze-mota | Deskribapena |
|---|---|---|
| .id | Zenbaki osokoa | Produktuaren ID zenbakia itzultzen du. |
| .gift_card? | Boolearra | Produktua opari-txartela den ala ez itzultzen du. |
| .tags | List<Tag> | Produktu honi ezarritako etiketak irudikatzen dituzten kateen zerrenda bat itzultzen du. |
| .product_type | Katea | Produktu bat etiketatzeko erabil daitekeen kategorizazio bat da; normalean, iragazteko eta bilatzeko erabiltzen da. |
| .vendor | Katea | Produktu honen saltzailea itzultzen du. |
Kernel
Kernel klase guztietan sartzen den Ruby modulu bat da. Ondorioz, bere metodoak objektu guztietan daude erabilgarri. Metodo hauek beste hizkuntza batzuetako funtzio globalen moduan jokatzen dute.
| Metodoa | Itzultze-mota | Deskribapena |
|---|---|---|
| .exit | ezer ez | Uneko scriptaren exekuzioa errorerik gabe amaitzen du. Output.cart objektuari ezer esleitu aurretik exekutatzen bada, scriptak ez du eraginik izango. Scriptetatik irteteko modu erabilgarria da; adibidez, bezeroak script-a exekutatzeko eskubiderik ez badu. |
Kernel adibidea
customer = Input.cart.customer
if customer && customer.email.end_with?("@mycompany.com")
# Employees are not eligible for this promotion.
exit
endLerroko elementuen metodoak
Honako metodo hauek lerroko elementuen scriptetan soilik erabil daitezke:
Saskia
| Metodoa | Itzultze-mota | Deskribapena |
|---|---|---|
| .subtotal_price_was | Dirua | Saskiaren prezioaren guztizko partziala itzultzen du, inolako deskonturik aplikatu aurretik. |
| .subtotal_price_changed? | Boolearra | Prezioaren guztizko partziala aldatu den ala ez itzultzen du. |
LineItem
| Metodoa | Itzultze-mota | Deskribapena |
|---|---|---|
| .change_line_price(Money new_price, { message: String }) | Dirua | Lerroko elementuaren prezioa zehaztutako zenbatekoan aldatzen du. message bat behar da. new_price uneko prezioa baino txikiagoa izan behar da. |
| .original_line_price | Dirua | Lerroko elementuaren jatorrizko prezioa itzultzen du, scriptak eta deskontuak aplikatu aurretik. |
| .line_price_was | Dirua | Lerroko elementuaren prezioa itzultzen du, uneko scriptak aldaketak aplikatu aurretik. |
| .line_price_changed? | Boolearra | Lerroko elementuaren prezioa aldatu den ala ez itzultzen du. |
| .change_properties(hash new_properties, { message: String }) | hash | Propietate berriak ezartzen dizkio lerroko elementu bati. Jatorrizko propietateen hash-a properties_was barruan gordetzen da, eta metodoari pasatzen zaion propietateen hash-a bihurtzen da lerroko elementuaren propietate berri. |
| .properties_was | hash | Lerroko elementuaren jatorrizko propietateen hash-a itzultzen du, inolako aldaketarik aplikatu aurretik. |
| .properties_changed? | Boolearra | Lerroko elementuaren propietateak aldatu diren ala ez itzultzen du. |
| .split({ take: Integer }) | LineItem | Lerroko elementu bat bi lerroko elementutan banatzen du. take parametroak zehazten du zenbat kendu behar den jatorrizko lerroko elementutik lerroko elementu berria sortzeko. |
.split adibidea
Script adibide honek original_line_item izeneko lerroko elementu bat bi lerroko elementutan banatzen du. Lerroko elementu berriak 1eko kantitatea du (take: 1 kodearen bidez zehaztuta). Ondoren, scriptak deskontatutako prezio bat aplikatzen dio lerroko elementu berriari, "Third hat for 5 dollars" mezuarekin.
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
endVariant
| Metodoa | Itzultze-mota | Deskribapena |
|---|---|---|
| .compare_at_price | Dirua | Aldaeraren jatorrizko prezioa itzultzen du. Aldaerak jatorrizko preziorik ez badu, nil itzultzen du. |
Bidalketa-metodoak
Honako metodo hauek erabil daitezke bidalketa-scripteetan:
Sarrera
| Metodoa | Itzultze-mota | Deskribapena |
|---|---|---|
| .shipping_rates | ShippingRateList | Bidalketa-tarifa guztien zerrenda itzultzen du. |
ShippingRateList
| Metodoa | Itzultze-mota | Deskribapena |
|---|---|---|
| .delete_if | ShippingRateList | Ezabatu bidalketa-tarifak aukerako kode-bloke bat erabiliz. Ikusi Ruby-ren delete_if metodoari buruzko dokumentazioa. |
| .sort! | ShippingRateList | Ordenatu bidalketa-tarifak konparazio-operadorea erabiliz edo aukerako kode-bloke baten bidez. Ikusi Ruby-ren sort! metodoari buruzko dokumentazioa. |
| .sort_by! | ShippingRateList | Ordenatu bidalketa-tarifak aukerako kode-bloke baten bidez. Ikusi Ruby-ren sort_by! metodoari buruzko dokumentazioa. |
ShippingRate
| Metodoa | Itzultze-mota | Deskribapena |
|---|---|---|
| .code | Katea | Bidalketa-tarifaren kodea itzultzen du. |
| .markup | Dirua | Bidalketa-tarifa baten errekargua itzultzen du, hala badagokio. |
| .name | Katea | Bidalketa-tarifaren izena itzultzen du. change_name metodoaren bidez alda daiteke. |
| .price | Dirua | Bidalketa-tarifaren prezioa itzultzen du. |
| .source | Katea | Bidalketa-tarifari lotutako iturburua (garraiolaria) itzultzen du, hala badagokio. Ezin da aldatu. |
| .change_name(String new_name) | Katea | Bidalketa-tarifaren izena aldatzen du (gehienez 255 karaktere). Iturburua ezin da aldatu, ezabatu edo ezkutatu. |
| .apply_discount(Money discount, { message: String }) | Dirua | Zehaztutako zenbateko finkoaren deskontua aplikatzen du. Prezioa ezin da 0tik behera murriztu. Mezu bat sartu behar da nahitaez. |
| .phone_required? | Boolearra | true itzultzen du bidalketa-tarifa lortzeko telefono-zenbaki bat behar bada; eta false itzultzen du telefono-zenbakirik behar ez bada. |
Ordainketa-metodoak
Honako metodo hauek erabil daitezke ordainketa-scripteetan:
Sarrera
| Metodoa | Itzultze-mota | Deskribapena |
|---|---|---|
| .payment_gateways | PaymentGatewaysList | Dendako ordainketa-atebide guztien zerrenda itzultzen du. |
PaymentGatewayList
| Metodoa | Itzultze-mota | Deskribapena |
|---|---|---|
| .delete_if | PaymentGatewayList | Ezabatu ordainketa-atebideak aukerako kode-bloke bat erabiliz. Ikusi Ruby-ren delete_if metodoari buruzko dokumentazioa. |
| .sort! | PaymentGatewayList | Ordenatu ordainketa-atebideak konparazio-operadorea erabiliz edo aukerako kode-bloke baten bidez. Ikusi Ruby-ren sort! metodoari buruzko dokumentazioa. |
| .sort_by! | PaymentGatewayList | Ordenatu ordainketa-atebideak aukerako kode-bloke baten bidez. Ikusi Ruby-ren sort_by! metodoari buruzko dokumentazioa. |
PaymentGateway
| Metodoa | Itzultze-mota | Deskribapena |
|---|---|---|
| .name | Katea | Ordainketa-atebidearen izena itzultzen du. |
| .enabled_card_brands | List<String> |
Ordainketa-atebideak kreditu-txartelak onartzen baditu, dendak onartzen dituen kreditu-txartel moten zerrenda bat itzultzen du. Atebideak kreditu-txartelik onartzen ez badu, zerrenda huts bat itzultzen du. |
| .change_name(String new_name) | Katea | Ordainketa-atebidearen izena aldatzen du. Logotipoa duten ordainketa-atebideen izena ezin da aldatu. |
Adibideak
Lerroko elementuen scriptei buruzko honako adibide honetan, bezero batek opari-txartela ez den produktu bat eskatzen duenean, produktuaren prezioa 9 $ murrizten da. Horrez gain, bezeroak zure dendara egindako bisita guztietan gastatutako zenbateko osoa erakusten da:
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
Lortu informazio gehiago
Lortu informazio gehiago honi buruz: