Spremenljivke Liquid so nadomestna besedila, definirana v jeziku Liquid, ki se pri zagonu poteka dela zamenjajo z vrednostmi iz API-ja GraphQL Admin API. Spremenljivke lahko opisujejo lastnosti strank, naročil in izdelkov, ki so vključeni v vaše poteke dela, kot so številka naročila, cena naročila ali ime stranke. Spremenljivke se lahko uporabijo v pogojih za nadzor logike v vašem poteku dela ali za izpis podatkov iz dejanja.
Dodajanje spremenljivk v poteke dela s pomočjo jezika Liquid
Spremenljivke lahko z jezikom Liquid dodate v poljubno polje z besedilom, ki vsebuje povezavo Dodaj spremenljivko. Kliknite povezavo Dodaj spremenljivko pod ustreznim poljem in nato s seznama izberite spremenljivko.
Spremenljivke na seznamu Dodaj spremenljivko so filtrirane tako, da uporabite samo spremenljivke, ki jih vrnejo koraki pred trenutnim korakom, kot so sprožilci. Sprožilec Ustvarjeno naročilo na primer zagotovi vire naročila in trgovine iz API-ja Admin API, ki jih lahko vstavite kot spremenljivke. Ko izberete spremenljivko s seznama, se v polje z besedilom doda kot ustrezno oblikovana koda Liquid.
Kodo Liquid lahko pišete tudi neposredno v polje z besedilom. Uporabite lahko na primer spremenljivko {{ order.name }} za prikaz niza naročila iz skrbnika Shopify, na primer order-123.
Ker aplikacija Flow za pridobivanje podatkov, ki se uporabljajo za Liquid, uporablja Admin API, sintaksa spremenljivk uporablja grbasti zapis (camel case). Pri spremenljivkah v grbastem zapisu se prva beseda začne z malo začetnico, vsaka naslednja beseda pa z veliko začetnico, na primer firstName ali canMarkAsPaid. Če želite na primer dostopati do datuma stvaritve izdelka, vnesite {{ product.createdAt }}. Če sintakso Liquid uporabljate v temi Shopify, ki ne uporablja grbastega zapisa, morate vnesti {{ product.created_at }}.
Pogojne in iteracijske oznake Liquid
Oznake Liquid lahko uporabite s spremenljivkami za izvajanje naslednjih funkcij:
Pisanje pogojnih stavkov, kot je določanje, ali je znesek naročila večji od 100 $.
Iteriranje skozi seznam objektov, kot je izpis podatkov za vsako postavko v naročilu.
Za pisanje teh stavkov in iteriranje skozi objekte lahko uporabite oznake Liquid.
Naslednja koda Liquid na primer prikaže številko naročila, če je znesek naročila večji od 100 $:
{% if order.totalPriceSet.shopMoney.amount > 100 %}
Order number: {{ order.name }}
{% endif %}
Za iteriranje skozi seznam objektov, kot so postavke naročila, lahko uporabite tudi zanko for. Naslednja koda Liquid na primer prikaže ime vsake postavke v naročilu:
{% for li in order.lineItems %}
{{ li.title }}
{% endfor %}
Aplikacija Flow podpira naslednje pogojne oznake Liquid (ali oznake nadzora poteka):
Podatke spremenljivk lahko v jeziku Liquid pretvorite s filtri. Aplikacija Flow podpira vse odprtokodne filtre Liquid.
Naslednja koda Liquid na primer odstrani predpono iz imena naročila in prikaže preostanek: {{ order.name | remove: "Order-" }}
Premisleki glede uporabe spremenljivk Liquid v filtrih
Pred pretvorbo spremenljivk s filtri preglejte naslednje premisleke:
Aplikacija Flow ne podpira zapisa s piko, ki je na voljo za nekatere filtre. Flow na primer podpira {{ order.lineItems | size }}, ne pa tudi {{ order.lineItems.size }}.
Aplikacija Flow ne podpira zapisa s piko za metapolja. Ne morete na primer uporabiti {{ order.metafields.custom.hold_note }}. Namesto tega se morate pomikati v zanki skozi metapolja, kot je opisano v primerih.
Aplikacija Flow ne podpira uporabe indeksov za dostop do elementov na seznamu. Ne morete na primer uporabiti {{ order.lineItems[0].title }}. Namesto tega se morate pomikati v zanki skozi postavke, kot je opisano v primerih.
Filtri za datume
Poleg standardnih filtrov Liquid ponuja Flow filtre za datume, s katerimi lahko pridobite datum glede na drug datum, kar podpira sprožilec Načrtovani čas (Scheduled time) in funkcije Pridobi podatke (Get data). Ti filtri so: date_minus in date_plus. Na primer:
Če želite vrniti datum en dan v prihodnosti: {{ "now" | date_plus: "1 day" }}
Če želite vrniti datum en dan v preteklosti: {{ "now" | date_minus: "1 day" }}
Ti filtri kot enoto za trajanje sprejemajo second, minute, day, week, month in year, in sicer v ednini (npr. second) ter množini (npr. seconds). Navedete lahko tudi naslednje vrste enot po meri:
Celo število, ki predstavlja število sekund: {{ "now" | date_minus: 3600 }}, pri čemer je 3600 enakovredno 1 uri.
Niz trajanja ISO8601: {{ "now" | date_minus: "P1Y2D" }}, pri čemer P1Y2D pomeni 1 leto in 2 dneva.
Za splošne namene zgoščevanja in nove implementacije uporabite blake3, saj ponuja boljšo uspešnost in varnost v primerjavi s starejšimi algoritmi. Kljub temu so algoritmi sha256, sha1 in md5 na voljo zaradi združljivosti s sistemi zunanjih izvajalcev.
Primer uporabe:
{{ "hello world" | blake3 }} vrne zgostitev BLAKE3 za »hello world«.
Filtri HMAC
Če želite ustvariti HMAC s skrivnim ključem, uporabite enega od naslednjih podprtih filtrov:
Želite izpisati URL-naslove za stranko, naročilo in izdelek, ki so vključeni v potek dela.
# Output the base Admin URL for your store
https://admin.shopify.com/store/{{ shop.myShopifyDomain | replace: ".myshopify.com", "" }}
# Assign the base Admin url to a variable named base_url:
{%- capture base_url -%}https://admin.shopify.com/store/{{ shop.myShopifyDomain | replace: ".myshopify.com", "" }}{%- endcapture -%}
# Customer from a Customer trigger:
{{ base_url }}/customers/{{ customer.legacyResourceId }}
# Customer without the base_url:
https://admin.shopify.com/store/{{ shop.myShopifyDomain | replace: ".myshopify.com", "" }}/customers/{{ customer.legacyResourceId }}
# Customer from an Order trigger:
{{ base_url }}/customers/{{ order.customer.legacyResourceId }}
# Order:
{{ base_url }}/orders/{{ order.legacyResourceId }}
# Product:
{{ base_url }}/products/{{ product.legacyResourceId }}
# Product Variant:
{{ base_url }}/products/{{ product.legacyResourceId }}/variants/{{ productVariant.legacyResourceId }}
# Example showing a clickable link in HTML, making use of the URL:
<a href="{{ base_url }}/products/{{ product.legacyResourceId }}">{{ product.title }}</a>
Pretvorba seznama oznak v metapolje
Nabor oznak želite pretvoriti v metapolje, ki je seznam enovrstičnih besedilnih polj. Ustvarite potek dela s sprožilcem Izdelek dodan v trgovino in uporabite dejanje Posodobi metapolje izdelka. V odsek Vrednost dejanja Posodobi metapolje izdelka dodate naslednjo kodo Liquid. Ta primer predpostavlja, da morate vrednosti nastaviti samo enkrat ob ustvarjanju izdelka in da ima izdelek dve ustrezni oznaki: color:red ter color:orange.
Primer kode Liquid za nastavitev seznama enovrstičnega besedilnega polja.
Pisanje dinamičnega e-poštnega sporočila za naročilo
Želite ustvariti potek dela za pošiljanje e-pošte zaposlenemu, ko stranka za naročilo porabi več kot 500 $. Ustvarite potek dela s sprožilcem Naročilo ustvarjeno, nastavite pogoj, ki je izpolnjen, če je skupni znesek naročila višji od 500 $, in uporabite dejanje Pošlji interno e-pošto. V odseku Sporočilo dejanja Pošlji interno e-pošto uporabite naslednje spremenljivke.
Primer uporabe spremenljivke za zagotavljanje podrobnosti o stranki.
Vnos
Izhod
Please send a personal thank you note to {{ order.customer.firstName }} {{ order.customer.lastName }}({{ order.customer.email }}) for placing an order for $ {{ order.totalPriceSet.shopMoney.amount }}.
Pošljite osebno zahvalo Jeanne Dupont (jeanne@example.com) za oddano naročilo v vrednosti 763,42 $.
Napišite dinamično e-poštno sporočilo za izdelek, katerega zaloga je nizka
Odločite se, da morate obvestiti člana osebja, ko se zaloga izdelka zmanjša in je treba naročiti novo zalogo. Ustvarite potek dela, ki se začne s sprožilcem Spremenjena količina zalog, in nastavite pogoj, ki velja, če je bila predhodna količina zalog manjša ali enaka 10. V razdelku Sporočilo dejanja Pošlji interno e-pošto uporabite naslednje spremenljivke.
Primer uporabe spremenljivke za prikaz podrobnosti o kosu.
Vnos
Izhod
Please reorder {{ product.title }}. Email owner@store.com to verify that they've received the purchase order.
Prosimo, ponovno naročite pajkice High Waist Leggings - Black. Pošljite e-pošto na owner@example.com in preverite, ali so prejeli naročilnico.
Napišite dinamično e-poštno sporočilo, da obvestite osebje o goljufivem naročilu
Želite preklicati naročila z visoko stopnjo tveganja, vendar raje vidite, da vaše osebje naročilo prekliče ročno. Ustvarite potek dela, ki se začne s sprožilcem Ustvarjeno naročilo, in nastavite pogoj, ki velja, če je stopnja tveganja naročila visoka. V razdelku Sporočilo dejanja Pošlji interno e-pošto uporabite naslednje spremenljivke.
Primer uporabe spremenljivke za zagotavljanje informacij o goljufivem naročilu.
Vnos
Izhod
Our Shopify store has received an order with a high risk of fraud. We would like to cancel this order right away, before it is sent to production:
{{ order.name }}
{{ order.billingAddress.lastName }}, {{ order.billingAddress.firstName }}
{{ order.email }}
Please confirm the new order status. Thanks!
Naša trgovina Shopify je prejela naročilo z visokim tveganjem za goljufijo. To naročilo želimo preklicati takoj, še preden gre v proizvodnjo:
#1001
Dupont, Jeanne
jeanne@example.com
Prosimo, potrdite nov status naročila. Hvala!
Izpišite postavke za naročilo z uporabo zanke for
Ob prejemu naročila je lahko koristno poslati sporočilo z naročenimi izdelki. To lahko storite z uporabo zanke for (for loop), ki ponavljajoče izvaja blok kode. Besedilna polja, ki podpirajo spremenljivke, podpirajo tudi zanke for in objekt forloop.
Na primer, ustvariti želite potek dela, ki vrne seznam vseh SKU-jev in količin v naročilu. V razdelku Sporočilo dejanja Pošlji interno e-pošto uporabite naslednje spremenljivke.
Primer uporabe zanke for za zagotavljanje informacij o naročilu.
Vnos
Izhod
Order summary:
{% for a in order.lineItems %}
{{a.sku}} ( {{a.quantity}} )
{% endfor %}
Izpišite postavke za naročilo z uporabo zanke for z dodatnimi informacijami
V e-pošto se odločite dodati več informacij, vključno z imenom izdelka, SKU-ji, ceno na kos in informacijami o dostavi za stranko. V razdelku Sporočilo dejanja Pošlji interno e-pošto uporabite naslednje spremenljivke.
Primer uporabe zanke for za zagotavljanje obsežnejših informacij o naročilu.
Vnos
Izhod
Order summary:
{% for a in order.lineItems %}
Product: {{a.title}}
SKU: {{a.sku}}
Price (per unit): ${{a.originalUnitPriceSet.shopMoney.amount}}
Quantity: {{a.quantity}}
{% endfor %}
Povzetek naročila:
Izdelek: High Waist Leggings - Black
SKU: 8987097979
Cena (na enoto): 8,49 $
Količina: 5
Izdelek: Athletic Socks - Blue
SKU: 888998898B
Cena (na enoto): 5,61 $
Količina: 2
Izpišite nekatere postavke s kombinacijo zanke for in stavka if
Slediti morate prodanim kosom, ki jih dobavlja določen prodajalec. V razdelku Sporočilo dejanja Pošlji interno e-pošto uporabite naslednje spremenljivke in v svojo zanko for vključite stavek if.
Primer uporabe zanke for in stavka if za zagotavljanje informacij o naročilu za določene prodajalce.
Vnos
Izhod
Acme product sold:
{% for x in order.lineItems %}
{% if x.vendor == 'acme-vendor' %}
Product name: {{x.title}}
SKU: {{x.sku}}
{% endif %}
{% endfor %}
Prodan izdelek Acme:
Ime izdelka: High Waist Leggings - Black
SKU: 8987097979
Kompleksni podatkovni objekti v aplikaciji Shopify Flow
Aplikacija Flow vam omogoča dostop do skoraj vseh podatkov v GraphQL Admin API. To vključuje kompleksne podatkovne objekte, kot so seznami in objekti. Vendar pa obstajajo nekatere omejitve glede tega, kaj lahko storite s temi objekti. V tem razdelku so opisane te omejitve in podani primeri, kako delati z njimi.
Namesto da neposredno kličete sezname in objekte, se pomikajte po seznamu in vključite samo želena polja.
Na primer, namesto neposrednega klica {{ order.lineItems }} uporabite naslednjo obliko za klicanje določenih polj. Ti primeri vključujejo vsa polja, ki bi bila vključena ob neposrednem klicu seznama ali objekta. Kopirajte in prilepite polja, ki jih potrebujete.
Besedilo
{% for li in order.lineItems %}
{% comment %}li.contract - omitted{% endcomment %}