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.

Metodo orokorrak

Honako metodo hauek edozein script motatan erabil daitezke:

Sarrera

Scripten sarrera-metodoak
MetodoaItzultze-motaDeskribapena
.cartSaskiaSaski-objektu mutagarri bat itzultzen du.
.localekateaBezeroaren 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.

Saskiaren objektua erabiltzen duten script-metodoak
MetodoaItzultze-motaDeskribapena
.customerBezeroaSaskiaren jabea itzultzen du (halakorik badago).
.shipping_addressBidalketa-helbideaSaskiaren jabearen bidalketa-helbidea itzultzen du (halakorik badago).
.discount_codealdakorra Itzultzen duena:

Saskiari deskontu bat aplikatu bazaio agertzen da discount_code. Horrek ez du esan nahi saskiaren prezioa nahitaez aldatzen denik. Adibidez, deskontu bat 50 $ baino gehiagoko saskietan aplikatzen bada eta script batek saskiaren prezioa 50 $ baino gutxiagora jaisten badu, discount_code hor egongo da oraindik, baina saskiaren prezioa ez da aldatuko.

<p><a href="/manual/checkout-settings/script-editor/examples/vat-script">See an example of <code>discount_code</code></a>.</p>
  </td>
</tr>
<tr>
  <td scope="row">.line_items</td>
  <td><a href="#list">List</a>&lt;LineItem&gt;</td>
  <td>Returns a list containing the line items in the cart.</td>
</tr>
<tr>
  <td scope="row">.presentment_currency</td>
  <td><a href="#list">List</a>&lt;String&gt;</td>
  <td>Returns the customer's local (presentment) currency (in <a href="https://www.iso.org/iso-4217-currency-codes.html">ISO 4217</a> format). For example, USD. </td>
</tr>
<tr>
  <td scope="row">.subtotal_price</td>
  <td><a href="#money">Money</a></td>
  <td>Returns the subtotal price of the cart after line item discounts are applied but before discount codes are applied.</td>
</tr>
<tr>
  <td scope="row">.total_weight</td>
  <td><a href="https://shopify.dev/api/liquid/objects/line_item#line_item-grams">grams</a></td>
  <td>Returns the total weight of all the line items in the cart.</td>
</tr>

CartDiscount::FixedAmount

CartDiscount::FixedAmount objektua erabiltzen duten script-metodoak
MetodoaItzultze-motaDeskribapena
.codeKateaDeskontua aplikatzeko erabilitako deskontu-kodea itzultzen du.
.amountDiruaDeskontuaren diru-kopurua itzultzen du.
.reject({ message: String })nilSaskian aplikatutako deskontu-kodea baztertzen du. message bat behar da.
.rejected?BoolearraDeskontu-kodea baztertu den ala ez itzultzen du.

CartDiscount::Percentage

CartDiscount::Percentage objektua erabiltzen duten script-metodoak
MetodoaItzultze-motaDeskribapena
.codeKateaDeskontua aplikatzeko erabilitako deskontu-kodea itzultzen du.
.percentageDezimalaDeskontuaren ehuneko-kopurua itzultzen du.
.reject({ message: String })nilSaskian aplikatutako deskontu-kodea baztertzen du. message bat behar da.
.rejected?BoolearraDeskontu-kodea baztertu den ala ez itzultzen du.

CartDiscount::Shipping

CartDiscount::Shipping objektua erabiltzen duten script-metodoak
MetodoaItzultze-motaDeskribapena
.codeKateaDeskontua aplikatzeko erabilitako deskontu-kodea itzultzen du.
.reject({ message: String })nilSaskian aplikatutako deskontu-kodea baztertzen du. message bat behar da.
.rejected?BoolearraDeskontu-kodea baztertu den ala ez itzultzen du.

Customer

Customer objektua erabiltzen duten script-metodoak
MetodoaItzultze-motaDeskribapena
.idZenbaki osokoaBezeroaren ID zenbakia itzultzen du.
.emailKateaBezeroaren helbide elektronikoa itzultzen du.
.tagsList<Tag>Bezero bati ezarritako etiketak adierazten dituzten kateen zerrenda itzultzen du.
.orders_countZenbaki osokoaBezeroak egindako eskaeren kopuru osoa itzultzen du.
.total_spentDiruaBezeroak eskaera guztietan gastatu duen zenbateko osoa itzultzen du.
.accepts_marketing?BoolearraBezeroak marketina onartzen duen ala ez itzultzen du.

LineItem

LineItem objektua erabiltzen duten script-metodoak
MetodoaItzultze-motaDeskribapena
.gramsgramsLerroko elementuaren pisu osoa itzultzen du.
.line_priceDiruaLerroko elementuaren prezioa.
.discounted?BoolearraLerroko elementu baten prezioan script batek edo eskuz aplikatutako deskontu batek deskonturik egin dion itzultzen du. Deskontu-kodeak erabiltzeak ez dio eragiten itzulitako balioari.
.propertieshashLerroko elementu honetarako zehaztu ziren propietateak itzultzen ditu.
.variantVariantLerroko elementuak adierazten duen produktuaren aldaera zehatza itzultzen du.
.quantityZenbaki osokoaLerroko elementu honen kantitatea itzultzen du.
.selling_plan_idZenbaki osokoaLerroko 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

List objektua erabiltzen duten script-metodoak
MetodoaItzultze-motaDeskribapena
.newListZerrenda 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_ifListEzabatu elementuak hautazko kode-bloke bat erabiliz. Ikusi Rubyren delete_if metodoaren dokumentazioa.
.empty?Boolearra

true itzultzen du zerrendak elementurik ez badu.

.firstElementua edo nil

Lehenengo elementua itzultzen du edo, zerrenda hutsik badago, nil.

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

.lastElementua edo nil

Azken elementua itzultzen du edo, zerrenda hutsik badago, nil.

.lengthint

Zerrendan dagoen elementu kopurua itzultzen du.

.sizeint

length-en aliasa.

.each(*args, &block)List

Bloke bati behin deitzen dio zerrendako elementu bakoitzeko, elementua blokeari parametro gisa pasatuta.

ShippingAddress

ShippingAddress objektua erabiltzen duten script-metodoak
MetodoaItzultze-motaDeskribapena
.namekateaBidalketa-helbidearekin lotutako pertsonaren izena itzultzen du.
.address1kateaBidalketa-helbidearen kale-helbidearen zatia itzultzen du.
.address2kateaBidalketa-helbidearen kale-helbidearen zatiaren aukerako eremu gehigarria itzultzen du.
.phonekateaBidalketa-helbidearen telefono-zenbakia itzultzen du.
.citykateaBidalketa-helbidearen hiria itzultzen du.
.zipkateaBidalketa-helbidearen posta-kodea itzultzen du.
.provincekateaBidalketa-helbidearen probintzia/estatua itzultzen du.
.province_codekateaBidalketa-helbideko probintziaren/estatuaren balio laburtua itzultzen du.
.country_codekateaBidalketa-helbideko herrialdearen balio laburtua itzultzen du.

Money

Money objektua erabiltzen duten script-metodoak
MetodoaItzultze-motaDeskribapena
.derived_from_presentment(customer_cents:X)DiruaZenbateko 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).
.newDiruaPrezio bat irudikatzeko objektu berri bat sortzen du.
.zeroDirua

Zero prezioa duen objektu berri bat sortzen du.

+DiruaBi Money objektu batzen ditu.
-DiruaMoney objektu bati bestea kentzen dio.
*DiruaMoney 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) * 50

1 $ irudikatzen duen Money objektu bat sortzen du, eta, ondoren, zenbateko hori 50ekin biderkatzen du. 50 $ irudikatzen dituen Money objektu bat itzultzen du.

Variant

Variant objektua erabiltzen duten script-metodoak
MetodoaItzultze-motaDeskribapena
.idZenbaki osokoaAldaeraren ID zenbakia itzultzen du.
.priceDiruaAldaeraren unitateko prezioa itzultzen du.
.productProductAldaerari lotutako produktua itzultzen du.
.skusList<String>Aldaeraren izakinak bereizteko unitateak (SKUak) itzultzen ditu; askotan, inbentarioaren jarraipena egiteko erabiltzen dira.
.titleKateaAldaeraren izenburua itzultzen du.

Product

Product objektua erabiltzen duten script-metodoak
MetodoaItzultze-motaDeskribapena
.idZenbaki osokoaProduktuaren ID zenbakia itzultzen du.
.gift_card?BoolearraProduktua opari-txartela den ala ez itzultzen du.
.tagsList<Tag>Produktu honi ezarritako etiketak irudikatzen dituzten kateen zerrenda bat itzultzen du.
.product_typeKateaProduktu bat etiketatzeko erabil daitekeen kategorizazio bat da; normalean, iragazteko eta bilatzeko erabiltzen da.
.vendorKateaProduktu 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.

Kernel objektua erabiltzen duten script-metodoak
MetodoaItzultze-motaDeskribapena
.exitezer ezUneko 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
end

Lerroko elementuen metodoak

Honako metodo hauek lerroko elementuen scriptetan soilik erabil daitezke:

Saskia

Cart objektua erabiltzen duten script-metodoak lerroko elementuen scriptetan
MetodoaItzultze-motaDeskribapena
.subtotal_price_wasDiruaSaskiaren prezioaren guztizko partziala itzultzen du, inolako deskonturik aplikatu aurretik.
.subtotal_price_changed?BoolearraPrezioaren guztizko partziala aldatu den ala ez itzultzen du.

LineItem

LineItem objektua erabiltzen duten script-metodoak lerroko elementuen scriptetan
MetodoaItzultze-motaDeskribapena
.change_line_price(Money new_price, { message: String }) DiruaLerroko elementuaren prezioa zehaztutako zenbatekoan aldatzen du. message bat behar da. new_price uneko prezioa baino txikiagoa izan behar da.
.original_line_priceDiruaLerroko elementuaren jatorrizko prezioa itzultzen du, scriptak eta deskontuak aplikatu aurretik.
.line_price_wasDiruaLerroko elementuaren prezioa itzultzen du, uneko scriptak aldaketak aplikatu aurretik.
.line_price_changed?BoolearraLerroko elementuaren prezioa aldatu den ala ez itzultzen du.
.change_properties(hash new_properties, { message: String }) hashPropietate 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_washashLerroko elementuaren jatorrizko propietateen hash-a itzultzen du, inolako aldaketarik aplikatu aurretik.
.properties_changed?BoolearraLerroko elementuaren propietateak aldatu diren ala ez itzultzen du.
.split({ take: Integer })LineItemLerroko 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
end

Variant

Lerroko elementuen scripteetan Variant objektua erabiltzen duten script-metodoak
MetodoaItzultze-motaDeskribapena
.compare_at_priceDiruaAldaeraren jatorrizko prezioa itzultzen du. Aldaerak jatorrizko preziorik ez badu, nil itzultzen du.

Bidalketa-metodoak

Honako metodo hauek erabil daitezke bidalketa-scripteetan:

Sarrera

Bidalketa-scripteetan Input objektua erabiltzen duten script-metodoak
MetodoaItzultze-motaDeskribapena
.shipping_ratesShippingRateListBidalketa-tarifa guztien zerrenda itzultzen du.

ShippingRateList

Bidalketa-scripteetan ShippingRateList objektua erabiltzen duten script-metodoak
MetodoaItzultze-motaDeskribapena
.delete_ifShippingRateListEzabatu bidalketa-tarifak aukerako kode-bloke bat erabiliz. Ikusi Ruby-ren delete_if metodoari buruzko dokumentazioa.
.sort!ShippingRateListOrdenatu bidalketa-tarifak konparazio-operadorea erabiliz edo aukerako kode-bloke baten bidez. Ikusi Ruby-ren sort! metodoari buruzko dokumentazioa.
.sort_by!ShippingRateListOrdenatu bidalketa-tarifak aukerako kode-bloke baten bidez. Ikusi Ruby-ren sort_by! metodoari buruzko dokumentazioa.

ShippingRate

Bidalketa-scripteetan ShippingRate objektua erabiltzen duten script-metodoak
MetodoaItzultze-motaDeskribapena
.codeKateaBidalketa-tarifaren kodea itzultzen du.
.markupDiruaBidalketa-tarifa baten errekargua itzultzen du, hala badagokio.
.nameKateaBidalketa-tarifaren izena itzultzen du. change_name metodoaren bidez alda daiteke.
.priceDiruaBidalketa-tarifaren prezioa itzultzen du.
.sourceKateaBidalketa-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 })DiruaZehaztutako zenbateko finkoaren deskontua aplikatzen du. Prezioa ezin da 0tik behera murriztu. Mezu bat sartu behar da nahitaez.
.phone_required?Boolearratrue 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

Ordainketa-scripteetan Input objektua erabiltzen duten script-metodoak
MetodoaItzultze-motaDeskribapena
.payment_gatewaysPaymentGatewaysListDendako ordainketa-atebide guztien zerrenda itzultzen du.

PaymentGatewayList

Ordainketa-scripteetan PaymentGatewayList objektua erabiltzen duten script-metodoak
MetodoaItzultze-motaDeskribapena
.delete_ifPaymentGatewayListEzabatu ordainketa-atebideak aukerako kode-bloke bat erabiliz. Ikusi Ruby-ren delete_if metodoari buruzko dokumentazioa.
.sort!PaymentGatewayListOrdenatu ordainketa-atebideak konparazio-operadorea erabiliz edo aukerako kode-bloke baten bidez. Ikusi Ruby-ren sort! metodoari buruzko dokumentazioa.
.sort_by!PaymentGatewayListOrdenatu ordainketa-atebideak aukerako kode-bloke baten bidez. Ikusi Ruby-ren sort_by! metodoari buruzko dokumentazioa.

PaymentGateway

MetodoaItzultze-motaDeskribapena
.nameKateaOrdainketa-atebidearen izena itzultzen du.
.enabled_card_brandsList<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)KateaOrdainketa-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