„Liquid“ kintamieji yra „Liquid“ apibrėžtos rezervuotos vietos, kurios paleidus darbo eigą pakeičiamos vertėmis iš GraphQL Admin API. Kintamieji gali apibūdinti klientų, užsakymų ir produktų, dalyvaujančių Jūsų darbo eigose, atributus, pavyzdžiui, užsakymo numerį, užsakymo kainą arba kliento vardą. Kintamuosius galima naudoti sąlygose, siekiant valdyti darbo eigos logiką, arba išvesti duomenis iš veiksmo.
Kintamųjų pridėjimas darbo eigose naudojant „Liquid“
Galite pridėti kintamųjų naudodami „Liquid“ bet kuriame teksto laukelyje, kuriame yra nuoroda „Pridėti kintamąjį“. Spustelėkite nuorodą „Pridėti kintamąjį“ po atitinkamu laukeliu, tada pasirinkite kintamąjį iš sąrašo.
Sąrašo „Pridėti kintamąjį“ kintamieji filtruojami, todėl matysite tik tuos kintamuosius, kurie grąžinami ankstesniuose nei dabartinis veiksmuose, pvz., paleidikliuose. Pavyzdžiui, paleidiklis „Sukurtas užsakymas“ pateikia užsakymo ir parduotuvės išteklius iš „Admin API“, kuriuos galima įterpti kaip kintamuosius. Iš sąrašo pasirinkus kintamąjį, jis įtraukiamas į teksto laukelį kaip tinkamai suformatuotas „Liquid“.
Taip pat galite rašyti „Liquid“ tiesiai teksto laukelyje. Pavyzdžiui, galite naudoti kintamąjį {{ order.name }}, kad būtų rodoma „Shopify“ administratoriaus skydelio užsakymo eilutė, pvz., order-123.
Kadangi „Flow“ naudoja „Admin API“ „Liquid“ skirtiems duomenims gauti, kintamųjų sintaksėje naudojamos kupranugario raidės. Naudojant kupranugario raides, kintamųjų pirmas žodis prasideda mažąja raide, o vėlesni žodžiai – didžiąja, pvz., firstName arba canMarkAsPaid. Pavyzdžiui, norėdami pasiekti produkto sukūrimo datą, įveskite {{ product.createdAt }}. Jei naudojate „Liquid“ sintaksę „Shopify“ temoje, kurioje nenaudojamos kupranugario raidės, įvestumėte {{ product.created_at }}.
Sąlyginės ir iteracinės „Liquid“ žymos
„Liquid“ žymas galima naudoti su kintamaisiais atliekant šias funkcijas:
Rašyti sąlyginius sakinius, pvz., nustatyti, ar bendra užsakymo suma yra didesnė nei 100 USD.
Iteruoti objektų sąraše, pvz., išvesti kiekvienos užsakymo prekių pozicijos duomenis.
Galite naudoti „Liquid“ žymas, kad rašytumėte šiuos teiginius ir itertumėte per objektus.
Pavyzdžiui, toliau nurodytas „Liquid“ rodo užsakymo numerį, jei bendra užsakymo suma yra didesnė nei 100 USD:
{% if order.totalPriceSet.shopMoney.amount > 100 %}
Order number: {{ order.name }}
{% endif %}
Taip pat galite naudoti ciklą „for“, kad itertumėte per objektų sąrašą, pvz., užsakymo prekių pozicijas. Pavyzdžiui, toliau nurodytas „Liquid“ rodo kiekvienos užsakymo prekių pozicijos pavadinimą:
{% for li in order.lineItems %}
{{ li.title }}
{% endfor %}
„Flow“ palaiko šias „Liquid“ sąlygines (arba valdymo eigos) žymas:
Galite transformuoti kintamųjų duomenis „Liquid“ naudodami filtrus. „Flow“ palaiko visus atvirojo kodo „Liquid“ filtrus.
Pavyzdžiui, šis „Liquid“ kodas pašalina priešdėlį iš užsakymo pavadinimo ir pateikia tai, kas lieka: {{ order.name | remove: "Order-" }}
Svarstymai dėl „Liquid“ kintamųjų naudojimo filtruose
Prieš transformuodami kintamuosius filtrais, peržiūrėkite šiuos svarstymus:
„Flow“ nepalaiko taškinės notacijos, kurią galima naudoti su kai kuriais filtrais. Pavyzdžiui, „Flow“ palaiko {{ order.lineItems | size }}, bet ne {{ order.lineItems.size }}.
„Flow“ nepalaiko metalaukų taškinės notacijos. Pavyzdžiui, negalite naudoti {{ order.metafields.custom.hold_note }}. Vietoj to, turite peržiūrėti visus metalaukus cikle, kaip nurodyta pavyzdžiuose.
„Flow“ nepalaiko indeksų naudojimo elementams sąraše pasiekti. Pavyzdžiui, negalite naudoti {{ order.lineItems[0].title }}. Vietoj to, turite peržiūrėti visas prekių pozicijas cikle, kaip nurodyta pavyzdžiuose.
Datos filtrai
Be standartinių „Liquid“ filtrų, „Flow“ teikia datos filtrus, skirtus datai, susijusiai su kita data, gauti, kad būtų palaikomos paleidiklio „Suplanuotas laikas“ ir funkcijos „Gauti duomenis“. Šie filtrai yra: date_minus ir date_plus. Pavyzdžiui:
Norint grąžinti datą, viena diena vėlesnę nei dabartinė: {{ "now" | date_plus: "1 day" }}
Norint grąžinti datą, viena diena ankstesnę nei dabartinė: {{ "now" | date_minus: "1 day" }}
Šie filtrai priima second, minute, day, week, month ir year kaip trukmės vienetą, tiek vienaskaita (pvz., second), tiek daugiskaita (pvz., seconds). Taip pat galite pateikti šių tipų tinkinamus vienetus:
Sveikasis skaičius, nurodantis sekundžių skaičių: {{ "now" | date_minus: 3600 }}, kur 3600 atitinka 1 valandą.
ISO 8601 trukmės eilutė: {{ "now" | date_minus: "P1Y2D" }}, kur P1Y2D reiškia 1 metus ir 2 dienas.
Bendriems maišos tikslams ir naujiems diegimams turėtumėte naudoti `blake3`, nes jis pasižymi geresniu veikimu ir saugumu, palyginti su senesniais algoritmais. Tačiau `sha256`, `sha1` ir `md5` yra prieinami suderinamumui su trečiųjų šalių sistemomis užtikrinti.
Norite išvesti kliento, užsakymo ir produkto, kurie yra susiję su darbo eiga, URL adresus.
# 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>
Žymų sąrašo konvertavimas į metalauką
Norite konvertuoti žymų rinkinį į metalauką, kuris yra vienos eilutės teksto laukų sąrašas. Sukuriate darbo eigą naudodami paleidiklį Produktas įtrauktas į parduotuvę ir naudojate veiksmą Atnaujinti produkto metalauką. Veiksmo Atnaujinti produkto metalauką sekcijoje Reikšmė pridedate šį „Liquid“ kodą. Šiame pavyzdyje daroma prielaida, kad reikšmes reikia nustatyti tik vieną kartą, kai produktas sukuriamas, ir kad produktas turi dvi atitinkamas žymas: `color:red` ir `color:orange`.
„Liquid“ kodo, skirto vienos eilutės teksto lauko sąrašui nustatyti, pavyzdys.
Norite sukurti darbo eigą, kad išsiųstumėte el. laišką darbuotojui, kai klientas užsakymui išleidžia daugiau nei 500 USD. Sukuriate darbo eigą naudodami paleidiklį Užsakymas sukurtas, nustatote sąlygą, kuri įvykdoma, jei bendra užsakymo suma viršija 500 USD, ir naudojate veiksmą Siųsti vidinį el. laišką. Veiksmo Siųsti vidinį el. laišką sekcijoje Pranešimas naudojate šiuos kintamuosius.
Kintamųjų naudojimo kliento informacijai pateikti pavyzdys.
Įvestis
Išvestis
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 }}.
Prašome išsiųsti asmeninę padėką Jeanne Dupont (jeanne@example.com) už tai, kad pateikė užsakymą už 763,42 USD.
Dinamiško el. laiško apie produktą, kurio likutis mažas, rašymas
Nusprendžiate, kad reikia informuoti personalo narį, kai produkto atsargos senka ir reikia pateikti pirkimo užsakymą, kad papildytumėte atsargas. Sukuriate darbo eigą, kuri prasideda nuo paleidiklio Atsargų kiekis pakeistas, ir nustatote sąlygą, kuri įvykdoma, jei ankstesnis atsargų kiekis yra mažesnis arba lygus 10. Veiksmo Siųsti vidinį el. laišką sekcijoje Pranešimas naudojate šiuos kintamuosius.
Kintamųjų naudojimo daikto informacijai pateikti pavyzdys.
Įvestis
Išvestis
Please reorder {{ product.title }}. Email owner@store.com to verify that they've received the purchase order.
Prašome iš naujo užsakyti produktą „Aukšto liemens tamprės – juodos“. Rašykite el. paštu adresu owner@example.com, kad patikrintumėte, ar jie gavo pirkimo užsakymą.
Dinamiško el. laiško, skirto pranešti personalui apie apgaulingą užsakymą, rašymas
Norite atšaukti užsakymus, kurių rizikos lygis yra aukštas, bet pageidaujate, kad Jūsų personalas atšauktų užsakymą rankiniu būdu. Sukuriate darbo eigą, kuri prasideda nuo paleidiklio Užsakymas sukurtas, ir nustatote sąlygą, kuri įvykdoma, jei užsakymo rizikos lygis yra „aukštas“. Veiksmo Siųsti vidinį el. laišką sekcijoje Pranešimas naudojate šiuos kintamuosius.
Kintamųjų naudojimo informacijai apie apgaulingą užsakymą pateikti pavyzdys.
Įvestis
Išvestis
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!
Mūsų „Shopify“ parduotuvė gavo užsakymą, kuriam būdinga didelė sukčiavimo rizika. Norėtume šį užsakymą iškart atšaukti, kol jis dar neišsiųstas gamybai:
#1001
Dupont, Jeanne
jeanne@example.com
Prašome patvirtinti naują užsakymo būseną. Ačiū!
Užsakymo prekių pozicijų išvestis naudojant ciklą „for“
Gavus užsakymą, gali būti naudinga išsiųsti pranešimą, kuriame nurodyti užsakyti produktai. Tai galite padaryti naudodami `for loop`, kuris pakartotinai vykdo kodo bloką. Teksto laukai, kurie palaiko kintamuosius, taip pat palaiko ciklus „for“ ir objektą „forloop“.
Pavyzdžiui, norite sukurti darbo eigą, kuri pateiktų visų užsakyme esančių SKU ir kiekių sąrašą. Veiksmo Siųsti vidinį el. laišką dalyje Pranešimas naudokite šiuos kintamuosius.
„For“ ciklo naudojimo pavyzdys užsakymo informacijai pateikti.
Įvestis
Išvestis
Order summary:
{% for a in order.lineItems %}
{{a.sku}} ( {{a.quantity}} )
{% endfor %}
Užsakymo prekių pozicijų išvedimas naudojant „for“ ciklą su papildoma informacija
Nusprendžiate į el. laišką įtraukti daugiau informacijos, įskaitant produkto pavadinimą, SKU, vieneto kainą ir kliento pristatymo informaciją. Veiksmo Send internal email skiltyje Message naudojate šiuos kintamuosius.
„For“ ciklo naudojimo pavyzdys išsamesnei užsakymo informacijai pateikti.
Įvestis
Išvestis
Order summary:
{% for a in order.lineItems %}
Product: {{a.title}}
SKU: {{a.sku}}
Price (per unit): ${{a.originalUnitPriceSet.shopMoney.amount}}
Quantity: {{a.quantity}}
{% endfor %}
Kai kurių prekių pozicijų išvedimas derinant „for“ ciklą su „if“ sąlyga
Jums reikia sekti parduotus daiktus, kuriuos tiekia konkretus pardavėjas. Veiksmo Siųsti vidinį el. laišką dalyje Pranešimas naudojate šiuos kintamuosius ir į savo for ciklą įtraukiate if sąlygą.
„For“ ciklo ir „if“ sąlygos naudojimo pavyzdys, skirtas užsakymo informacijai apie konkrečius pardavėjus pateikti.
Įvestis
Išvestis
Acme product sold:
{% for x in order.lineItems %}
{% if x.vendor == 'acme-vendor' %}
Product name: {{x.title}}
SKU: {{x.sku}}
{% endif %}
{% endfor %}
Sudėtiniai duomenų objektai „Shopify Flow“ sistemoje
„Flow“ suteikia prieigą prie beveik visų duomenų, esančių GraphQL Admin API. Tai apima sudėtinius duomenų objektus, pvz., sąrašus ir objektus. Tačiau yra tam tikrų apribojimų, ką galite daryti su šiais objektais. Šiame skyriuje apžvelgiami šie apribojimai ir pateikiami pavyzdžiai, kaip su jais dirbti.
Užuot tiesiogiai iškvietę sąrašus ir objektus, turėtumėte naudoti ciklą ir įtraukti tik tuos laukus, kurių Jums reikia.
Pavyzdžiui, užuot tiesiogiai iškvietę {{ order.lineItems }}, naudokite šį formatą konkretiems laukams iškviesti. Šiuose pavyzdžiuose yra visi laukai, kurie būtų įtraukti tiesiogiai iškviečiant sąrašą arba objektą. Nukopijuokite ir įklijuokite reikiamus laukus.
Tekstas
{% for li in order.lineItems %}
{% comment %}li.contract - omitted{% endcomment %}