Shopify scriptek – API-referencia

A szkriptek egy Ruby API-val íródnak, amely nagyfokú irányítást és rugalmasságot biztosít.

Különböző szkripttípusok léteznek. A szkript akkor kap egy típust, amikor létrehozza azt a Script Editor alkalmazásban, attól függően, hogy melyik szkriptsablont választja kiindulásként:

Sorelem-szkriptek

A sorelem-szkriptek a kosárban lévő sorelemekre vannak hatással, és képesek az árak módosítására és kedvezmények nyújtására. Ezek a szkriptek akkor futnak le, amikor a kosárban módosítás történik.

Azok a sorelem-szkriptek, amelyek kedvezményt adnak egy előfizetésre, csak az előfizetés első fizetésére vonatkoznak. A későbbi fizetésekre a szkript nem ad kedvezményt.

Egyes metódusok csak a sorelem-szkriptekben használhatók.

Szállítási szkriptek

A szállítási szkriptek a szállítással lépnek interakcióba, és módosíthatják a szállítási módokat, valamint kedvezményeket adhatnak a szállítási díjakra. Ezek a szkriptek akkor futnak le, amikor a pénztár eléri a szállítási lehetőségek oldalt.

Azok a szállítási szkriptek, amelyek kedvezményt adnak egy előfizetés szállítási díjára, csak az előfizetés első fizetésére vonatkoznak. A későbbi fizetésekre a szkript nem ad kedvezményt.

<p>Some methods <a href="#shipping-methods">can only be used in shipping scripts</a>.</p>

Fizetési szkriptek

A fizetési szkriptek a fizetésekkel lépnek interakcióba, és átnevezhetik, elrejthetik és átrendezhetik a fizetési átjárókat. Fontos, hogy a fizetési szkriptek nem lépnek interakcióba a pénztárképernyő előtt megjelenő fizetési átjárókkal, mint például az Apple Pay. Ezek a szkriptek akkor futnak le, amikor a pénztár eléri a fizetési oldalt.

Egyes metódusok csak fizetési szkriptekben használhatók.

Általános metódusok

A következő metódusok bármilyen típusú szkriptben használhatók:

Bemenet

Szkript bemeneti metódusok
MetódusVisszatérési típusLeírás
.cartCartEgy módosítható kosárobjektumot ad vissza.
.localekarakterláncVisszaadja a vásárló területi beállítását. Például: en, fr vagy pt-BR.

Cart

A Cart objektum csak az online áruházban érhető el. Egyes elhagyott pénztárak hozzáférnek a Cart objektumhoz. Ha azonban egy pénztár lezárult, és a vásárló ezt követően felkeresi az elhagyott pénztárt, a rendszer az előre kitöltött pénztárhoz irányítja, és a Cart objektum már nem létezik. Ennek az az oka, hogy a kirakatot megkerülte az elhagyott fizetési e-mail.

Szkriptmetódusok a Cart objektum használatával
MetódusVisszatérési típusLeírás
.customerCustomerVisszaadja a kosár tulajdonosát (ha van).
.shipping_addressShippingAddressVisszaadja a kosár tulajdonosának szállítási címét (ha van).
.discount_codeváltozó Visszatérési érték:

A discount_code akkor van jelen, ha kedvezményt alkalmaztak a kosárra. Ez nem feltétlenül jelenti azt, hogy a kosár ára megváltozik. Például, ha egy kedvezmény 50 USD feletti kosarakra vonatkozik, és egy szkript 50 USD alá csökkenti a kosár árát, a discount_code továbbra is jelen van, de a kosár ára nem változik.

<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

Szkriptmetódusok a CartDiscount::FixedAmount objektum használatával
MetódusVisszatérési típusLeírás
.codeKarakterláncVisszaadja a kedvezmény alkalmazásához használt kedvezménykódot.
.amountMoneyVisszaadja a kedvezmény pénzbeli összegét.
.reject({ message: Karakterlánc })nilElutasítja a kosárra alkalmazott kedvezménykódot. A message megadása kötelező.
.rejected?Logikai értékVisszaadja, hogy a kedvezménykód elutasításra került-e.

CartDiscount::Percentage

Szkriptmetódusok a CartDiscount::Percentage objektum használatával
MetódusVisszatérési típusLeírás
.codeKarakterláncVisszaadja a kedvezmény alkalmazásához használt kedvezménykódot.
.percentageTizedes törtszámVisszaadja a kedvezmény százalékos mértékét.
.reject({ message: Karakterlánc })nilElutasítja a kosárra alkalmazott kedvezménykódot. A message megadása kötelező.
.rejected?Logikai értékVisszaadja, hogy a kedvezménykód elutasításra került-e.

CartDiscount::Shipping

A CartDiscount::Shipping objektumot használó szkriptmetódusok
MetódusVisszatérési típusLeírás
.codeKarakterláncVisszaadja a kedvezmény alkalmazásához használt kedvezménykódot.
.reject({ message: Karakterlánc })nilElutasítja a kosárra alkalmazott kedvezménykódot. A message megadása kötelező.
.rejected?Logikai értékVisszaadja, hogy a kedvezménykód elutasításra került-e.

Customer

A Customer objektumot használó szkriptmetódusok
MetódusVisszatérési típusLeírás
.idEgész számVisszaadja a vásárló azonosítószámát.
.emailKarakterláncVisszaadja a vásárló e-mail-címét.
.tagsList<Tag>A vásárlóhoz beállított címkéket jelölő karakterláncokból álló listát ad vissza.
.orders_countEgész számVisszaadja a vásárló által leadott rendelések teljes számát.
.total_spentMoneyVisszaadja a teljes összeget, amelyet a vásárló az összes rendelésére költött.
.accepts_marketing?Logikai értékAzt adja vissza, hogy a vásárló elfogadja-e a marketingcélú megkereséseket.

LineItem

A LineItem objektumot használó szkriptmetódusok
MetódusVisszatérési típusLeírás
.gramsgrammVisszaadja a sorelem teljes súlyát.
.line_priceMoneyA sorelem ára.
.discounted?Logikai értékAzt adja vissza, hogy egy sorelem árát csökkentette-e egy szkript vagy egy manuálisan alkalmazott kedvezmény. A kedvezménykódok használata nem befolyásolja a visszatérési értéket.
.propertieshashVisszaadja az ehhez a sorelemhez megadott tulajdonságokat.
.variantVariantVisszaadja azt a konkrét termékváltozatot, amelyet a sorelem képvisel.
.quantityEgész számVisszaadja ennek a sorelemnek a mennyiségét.
.selling_plan_idEgész számVisszaadja a sorelemhez tartozó értékesítési terv azonosítóját. Ez a metódus akkor hasznos, ha az üzlet előfizetéseket értékesít, és azt szeretné, hogy a szkript észlelje, amikor egy termékváltozatot előfizetésként értékesítenek.

List

A List objektumot használó szkriptmetódusok
MetódusVisszatérési típusLeírás
.newListÚj objektumot hoz létre egy lista ábrázolásához.
.[]Elem vagy nil

Visszaadja a megadott indexen lévő elemet.

.&List

Új listát ad vissza, amely a két listában közös elemeket tartalmazza, duplikátumok nélkül.

.delete_ifListElemeket töröl egy opcionális kódblokk használatával. Lásd a Ruby delete_if metódusának dokumentációját.
.empty?Logikai érték

true értéket ad vissza, ha a lista nem tartalmaz elemeket.

.firstElem vagy nil

Visszaadja az első elemet, vagy nil értéket, ha a lista üres.

.index(*args, &block)int vagy nil

Visszaadja a lista első elemének indexét. Ha argumentum helyett egy blokkot adnak meg, akkor annak az első elemnek az indexét adja vissza, amelyre a blokk igaz.

.rindex(*args, &block)int vagy nil

Visszaadja a lista utolsó elemének indexét. Ha argumentum helyett egy blokkot adnak meg, akkor annak az első elemnek az indexét adja vissza, amelyre a blokk igaz.

.lastElem vagy nil

Visszaadja az utolsó elemet, vagy nil értéket, ha a lista üres.

.lengthint

Visszaadja a listában lévő elemek számát.

.sizeint

A length aliasa.

.each(*args, &block)List

A lista minden elemére egyszer meghív egy blokkot, paraméterként átadva az elemet a blokknak.

ShippingAddress

A ShippingAddress objektumot használó szkriptmetódusok
MetódusVisszatérési típusLeírás
.namekarakterláncVisszaadja a szállítási címhez társított személy nevét.
.address1karakterláncVisszaadja a szállítási cím utca és házszám részét.
.address2karakterláncVisszaadja a szállítási cím utca és házszám részének opcionális kiegészítő mezőjét.
.phonekarakterláncVisszaadja a szállítási címhez tartozó telefonszámot.
.citykarakterláncVisszaadja a szállítási címhez tartozó várost.
.zipkarakterláncVisszaadja a szállítási cím irányítószámát.
.provincekarakterláncVisszaadja a szállítási cím tartományát/államát.
.province_codekarakterláncVisszaadja a szállítási cím tartományának/államának rövidített értékét.
.country_codekarakterláncVisszaadja a szállítási cím országának rövidített értékét.

Money

A Money objektumot használó szkriptmetódusok
MetódusVisszatérési típusLeírás
.derived_from_presentment(customer_cents:X)MoneyÁtvált egy összeget (centben) a vásárló helyi (megjelenített) valutájáról az áruházad valutájára. A metódus elfogadja a customer_cents paramétert, amely egy centben megadott számot fogad el. Például: Money.derived_from_presentment(customer_cents: 500).
.newMoneyÚj objektumot hoz létre, amely egy árat képvisel.
.zeroMoney

Új objektumot hoz létre nulla értékű árral.

+MoneyÖsszead két Money objektumot.
-MoneyKivon egy Money objektumot egy másikból.
*MoneyMegszoroz egy Money objektumot egy számmal.

Money – példák

Money.new(cents: 1000)

Létrehoz egy Money objektumot, amely 1000 centet, azaz 10 dollárt képvisel.

Money.new(cents: 100) * 50

Létrehoz egy 1 dollárt képviselő Money objektumot, majd megszorozza ezt az összeget 50-nel. Egy 50 dollárt képviselő Money objektumot ad vissza.

Változat

A Variant objektumot használó szkriptmetódusok
MetódusVisszatérési típusLeírás
.idEgész számA változat azonosítóját adja vissza.
.priceMoneyA változat egységárát adja vissza.
.productProductA változathoz tartozó terméket adja vissza.
.skusList<String>A változat cikkszámait (SKU) adja vissza, amelyeket gyakran használnak a készletkövetéshez.
.titleKarakterláncA változat címét adja vissza.

Termék

A Product objektumot használó szkriptmetódusok
MetódusVisszatérési típusLeírás
.idEgész számA termék azonosítószámát adja vissza.
.gift_card?Logikai értékVisszaadja, hogy a termék ajándékkártya-e.
.tagsList<Tag>Visszaadja a termékhez beállított címkéket karakterláncok listájaként.
.product_typeKarakterláncEgy kategorizálás, amellyel egy terméket fel lehet címkézni, és amelyet általában szűrésre és keresésre használnak.
.vendorKarakterláncA termék szállítóját adja vissza.

Kernel

A Kernel egy Ruby-modul, amely minden osztályban megtalálható. Ennek eredményeként a metódusai minden objektum számára elérhetők. Ezek a metódusok ugyanúgy működnek, mint a globális függvények más nyelvekben.

A Kernel objektumot használó szkriptmetódusok
MetódusVisszatérési típusLeírás
.exitnincsHiba nélkül leállítja az aktuális szkript végrehajtását. Ha azelőtt fut, hogy bármi is hozzá lenne rendelve az Output.cart-hoz, a szkriptnek nincs hatása. Ez egy hasznos módja a szkriptekből való kilépésnek, például ha a vásárló nem jogosult a szkript futtatására.

Kernel – példa

customer = Input.cart.customer
if customer && customer.email.end_with?("@mycompany.com")
  # Employees are not eligible for this promotion.
  exit
end

Sorelemmetódusok

A következő metódusok csak sorelem-szkriptekben használhatók:

Cart

A Cart objektumot használó szkriptmetódusok sorelem-szkriptekben
MetódusVisszatérési típusLeírás
.subtotal_price_wasMoneyA kosár kedvezmények alkalmazása előtti részösszegét adja vissza.
.subtotal_price_changed?Logikai értékAzt adja vissza, hogy a részösszeg megváltozott-e.

LineItem

A LineItem objektumot használó szkriptmetódusok sorelem-szkriptekben
MetódusVisszatérési típusLeírás
.change_line_price(Money new_price, { message: String }) MoneyMódosítja a sorelem árát a megadott összegre. A message megadása kötelező. A new_price összegnek alacsonyabbnak kell lennie a jelenlegi árnál.
.original_line_priceMoneyA sorelem eredeti árát adja vissza a szkriptek és kedvezmények alkalmazása előtt.
.line_price_wasMoneyA sorelem árát adja vissza az aktuális szkript által végrehajtott módosítások előtt.
.line_price_changed?Logikai értékVisszaadja, hogy a sorelem ára megváltozott-e.
.change_properties(hash new_properties, { message: String }) hashÚj tulajdonságokat állít be egy sorelemhez. Az eredeti tulajdonságokat tartalmazó hash a properties_was változóban tárolódik, a metódusnak átadott hash pedig a sorelem új tulajdonságait tartalmazza majd.
.properties_washashA sorelem eredeti tulajdonság-hash-ét adja vissza a módosítások alkalmazása előtt.
.properties_changed?Logikai értékVisszaadja, hogy a sorelem tulajdonságai megváltoztak-e.
.split({ take: Integer })LineItemEgy sorelemet két sorelemre oszt. A take paraméter határozza meg, hogy az új sorelem létrehozásához mekkora mennyiséget kell eltávolítani az eredetiből.

.split – példa

Ez a példaszkript egy original_line_item nevű sorelemet két sorelemre oszt. Az új sorelem mennyisége 1 (ezt a take: 1 paraméter adja meg). A szkript ezután kedvezményes árat alkalmaz az új sorelemre a „Third hat for 5 dollars” üzenettel.

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

Változat

A Variant objektumot használó szkriptmetódusok sorelem-szkriptekben
MetódusVisszatérési típusLeírás
.compare_at_priceMoneyA változat eredeti árát adja vissza. Ha a változatnak nincs eredeti ára, akkor nil értéket ad vissza.

Szállítási módok

A következő metódusok szállítási szkriptekben használhatók:

Bemenet

Az Input objektumot használó szkriptmetódusok szállítási szkriptekben
MetódusVisszatérési típusLeírás
.shipping_ratesShippingRateListVisszaadja az összes szállítási díj listáját.

ShippingRateList

A ShippingRateList objektumot használó szkriptmetódusok a szállítási szkriptekben
MetódusVisszatérési típusLeírás
.delete_ifShippingRateListSzállítási díjak törlése egy opcionális kódblokk használatával. Lásd a Ruby delete_if metódusának dokumentációját.
.sort!ShippingRateListA szállítási díjak rendezése az összehasonlító operátor vagy egy opcionális kódblokk használatával. Lásd a Ruby sort! metódusának dokumentációját.
.sort_by!ShippingRateListA szállítási díjak rendezése egy opcionális kódblokk használatával. Lásd a Ruby sort_by! metódusának dokumentációját.

ShippingRate

A ShippingRate objektumot használó szkriptmetódusok a szállítási szkriptekben
MetódusVisszatérési típusLeírás
.codeKarakterláncVisszaadja a szállítási díj kódját.
.markupMoneyVisszaadja a szállítási díj árrését, ha van ilyen.
.nameKarakterláncVisszaadja a szállítási díj nevét. A change_name metódussal módosítható.
.priceMoneyVisszaadja a szállítási díj árát.
.sourceKarakterláncVisszaadja a szállítási díjhoz tartozó forrást (a fuvarozót), ha releváns. Nem módosítható.
.change_name(String new_name)Karakterlánc Módosítja a szállítási díj nevét (maximum 255 karakter). A forrást nem lehet módosítani, törölni vagy elrejteni.
.apply_discount(Money discount, { message: String })MoneyA megadott fix összegű kedvezményt alkalmazza. Az ár nem csökkenthető 0 alá. Üzenet megadása kötelező.
.phone_required?Logikai értéktrue értéket ad vissza, ha a szállítási díjhoz telefonszám szükséges, vagy false értéket, ha nem szükséges telefonszám.

Fizetési módok

A következő metódusok használhatók a fizetési szkriptekben:

Bemenet

Az Input objektumot használó szkriptmetódusok a fizetési szkriptekben
MetódusVisszatérési típusLeírás
.payment_gatewaysPaymentGatewaysListVisszaadja az üzlet összes fizetési átjárójának listáját.

PaymentGatewayList

A PaymentGatewayList objektumot használó szkriptmetódusok a fizetési szkriptekben
MetódusVisszatérési típusLeírás
.delete_ifPaymentGatewayListFizetési átjárók törlése egy opcionális kódblokk használatával. Lásd a Ruby delete_if metódusának dokumentációját.
.sort!PaymentGatewayListA fizetési átjárók rendezése az összehasonlító operátor vagy egy opcionális kódblokk használatával. Lásd a Ruby sort! metódusának dokumentációját.
.sort_by!PaymentGatewayListA fizetési átjárók rendezése egy opcionális kódblokk használatával. Lásd a Ruby sort_by! metódusának dokumentációját.

PaymentGateway

MetódusVisszatérési típusLeírás
.nameKarakterláncVisszaadja a fizetési átjáró nevét.
.enabled_card_brandsList<String>

Ha a fizetési átjáró támogatja a bankkártyákat, visszaadja az üzlet által elfogadott bankkártyatípusok listáját. Ha az átjáró nem támogatja a bankkártyákat, üres listát ad vissza.

.change_name(String new_name)KarakterláncMódosítja a fizetési átjáró nevét. A logóval rendelkező fizetési átjárókat nem lehet átnevezni.

Példák

A következő sorelem szkript példában, amikor egy vásárló olyan terméket rendel, amely nem ajándékkártya, a termék ára 9 dollárral csökken. Ezenkívül megjelenik a teljes összeg, amelyet a vásárló az üzletében tett összes látogatása során elköltött:

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

További információ

További információ a következőkről: