Liquid-muuttujat ovat Liquidissä määritettyjä paikkamerkkejä, jotka korvataan GraphQL Admin API -rajapinnan arvoilla, kun työnkulku suoritetaan. Muuttujat voivat kuvata työnkuluissasi mukana olevien asiakkaiden, tilausten ja tuotteiden attribuutteja, kuten tilausnumeroa, tilauksen hintaa tai asiakkaan nimeä. Muuttujia voidaan käyttää ehdoissa työnkulun logiikan ohjaamiseen tai tietojen tulostamiseen toiminnosta.
Muuttujien lisääminen työnkulkuihin Liquidin avulla
Voit lisätä Liquid-muuttujia mihin tahansa tekstikenttään, jossa on Lisää muuttuja -linkki. Klikkaa kyseisen kentän alla olevaa Lisää muuttuja -linkkiä ja valitse sitten muuttuja luettelosta.
Lisää muuttuja -luettelon muuttujat suodatetaan niin, että käytät vain muuttujia, jotka palautetaan nykyistä vaihetta edeltävistä vaiheista, kuten käynnistimistä. Esimerkiksi Tilaus luotu -käynnistin tarjoaa Admin APIsta tilaus- ja kaupparesursseja, jotka voidaan lisätä muuttujina. Kun olet valinnut muuttujan luettelosta, se lisätään tekstiruutuun oikein muotoiltuna Liquid-koodina.
Voit myös kirjoittaa Liquid-koodia suoraan tekstikenttään. Voit esimerkiksi käyttää muuttujaa {{ order.name }} näyttämään tilauksen nimen Shopifyn ohjausnäkymästä, kuten tilaus-123.
Koska Flow käyttää Admin APIa Liquid-koodissa käytettävien tietojen noutamiseen, muuttujien syntaksissa käytetään kamelinnotkeaa kirjoitustapaa. Kamelinnotkeassa kirjoitustavassa muuttujien ensimmäinen sana alkaa pienellä kirjaimella ja seuraavat sanat alkavat isolla kirjaimella, kuten firstName tai canMarkAsPaid. Jos esimerkiksi haluat käyttää tuotteen luontipäivämäärää, kirjoita {{ product.createdAt }}. Jos käytät Liquid-syntaksia Shopify-teemassa, jossa ei käytetä kamelinnotkeaa kirjoitustapaa, kirjoittaisit {{ product.created_at }}.
Ehdolliset ja iteroivat Liquid-tagit
Liquid-tageja voidaan käyttää muuttujien kanssa seuraavien toimintojen suorittamiseen:
Ehdollisten lauseiden kirjoittaminen, kuten sen määrittäminen, onko tilauksen kokonaissumma suurempi kuin 100 dollaria.
Objektiluettelon iterointi, kuten kunkin tilauksen rivikohdan tietojen tulostaminen.
Voit käyttää Liquid-tageja näiden lauseiden kirjoittamiseen ja objektien iterointiin.
Seuraava Liquid-koodi näyttää esimerkiksi tilausnumeron, jos tilauksen kokonaissumma on suurempi kuin 100 dollaria:
{% if order.totalPriceSet.shopMoney.amount > 100 %}
Order number: {{ order.name }}
{% endif %}
Voit myös käyttää for-silmukkaa objektiluettelon, kuten tilauksen rivikohtien, iterointiin. Seuraava Liquid-koodi näyttää esimerkiksi tilauksen kunkin rivikohdan nimen:
{% for li in order.lineItems %}
{{ li.title }}
{% endfor %}
Flow tukee seuraavia Liquid-ehtolauseiden (tai ohjausrakenteiden) tageja:
Ennen muuttujien muuntamista suodattimien avulla on syytä huomioida seuraavat seikat:
Flow ei tue pistenotaatiota, joka on käytettävissä joissakin suodattimissa. Esimerkiksi Flow tukee muotoa {{ order.lineItems | size }}, mutta ei muotoa {{ order.lineItems.size }}.
Flow ei tue pistenotaatiota metakentille. Et voi esimerkiksi käyttää muotoa {{ order.metafields.custom.hold_note }}. Sen sijaan sinun on käsiteltävä metakentät silmukassa esimerkkien mukaisesti.
Flow ei tue indeksien käyttöä luettelon kohteiden käyttämiseen. Et voi esimerkiksi käyttää muotoa {{ order.lineItems[0].title }}. Sen sijaan sinun on käsiteltävä rivikohdat silmukassa esimerkkien mukaisesti.
Päivämääräsuodattimet
Tavallisten Liquid-suodattimien lisäksi Flow tarjoaa päivämääräsuodattimia, joilla voi hakea toiseen päivämäärään suhteutetun päivämäärän Ajastettu aika -käynnistimen ja Nouda tiedot -ominaisuuksien tukemiseksi. Nämä suodattimet ovat: date_minus ja date_plus. Esimerkki:
Päivämäärän palauttaminen, joka on yhden päivän päässä tulevaisuudessa: {{ "now" | date_plus: "1 day" }}
Päivämäärän palauttaminen, joka on yhden päivän päässä menneisyydessä: {{ "now" | date_minus: "1 day" }}
Nämä suodattimet hyväksyvät keston yksiköksi sanat `second` (sekunti), `minute` (minuutti), `day` (päivä), `week` (viikko), `month` (kuukausi) ja `year` (vuosi) sekä yksikössä (esim. `second`) että monikossa (esim. `seconds`). Voit myös antaa seuraavan tyyppisiä mukautettavia yksiköitä:
Kokonaisluku, joka edustaa sekuntien määrää: {{ "now" | date_minus: 3600 }}, jossa 3600 vastaa yhtä tuntia.
ISO 8601 -kestomerkkijono: {{ "now" | date_minus: "P1Y2D" }}, jossa P1Y2D tarkoittaa yhtä vuotta ja kahta päivää.
Kryptografiset suodattimet
Flow tarjoaa salausteknisiä suodattimia hajautukseen ja hajautuspohjaisten viestin todennuskoodien (HMAC) luomiseen. Nämä suodattimet ovat hyödyllisiä yksilöllisten tunnisteiden ja tarkistussummien luomisessa tai integroinnissa kolmannen osapuolen järjestelmiin, jotka edellyttävät tiettyjä hajautusmuotoja.
Hajautussuodattimet
Shopify Flow tukee seuraavanlaisia hajautussuodattimia:
blake3 – Luo BLAKE3-hajautuksen (suositellaan yleiseen käyttöön).
Yleisiin hajautustarkoituksiin ja uusiin toteutuksiin kannattaa käyttää blake3-suodatinta, sillä se tarjoaa paremman tehokkuuden ja tietoturvan vanhempiin algoritmeihin verrattuna. Suodattimet sha256, sha1 ja md5 ovat kuitenkin käytettävissä yhteensopivuuden varmistamiseksi kolmannen osapuolen järjestelmien kanssa.
Haluat tulostaa työnkulkuun liittyvän asiakkaan, tilauksen ja tuotteen URL-osoitteet.
# 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>
Tunnisteluettelon muuntaminen metakentäksi
Haluat muuntaa tunnistejoukon metakentäksi, joka on yksirivisten tekstikenttien luettelo. Luot työnkulun, joka käyttää Tuote lisätty kauppaan -käynnistintä, ja käytät Päivitä tuotteen metakenttä -toimintoa. Lisäät Päivitä tuotteen metakenttä -toiminnon Arvo-osioon seuraavan Liquid-koodin. Tässä esimerkissä oletetaan, että sinun tarvitsee määrittää arvot vain kerran tuotetta luotaessa ja että tuotteella on kaksi oleellista tunnistetta: color:red ja color:orange.
Haluat luoda työnkulun, joka lähettää sähköpostia työntekijälle, kun asiakas käyttää yli 500 $ tilaukseen. Luot työnkulun Tilaus luotu -käynnistimellä, asetat ehdon, joka on tosi, jos tilauksen kokonaissumma on yli 500 $, ja käytät Lähetä sisäinen sähköposti -toimintoa. Käytät Lähetä sisäinen sähköposti -toiminnon Viesti-osiossa seuraavia muuttujia.
Esimerkki muuttujien käytöstä asiakastietojen antamiseen.
Syöte
Tuloste
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 }}.
Lähetä henkilökohtainen kiitosviesti Jeanne Dupontille (jeanne@example.com) 763,42 $:n tilauksen tekemisestä.
Dynaamisen sähköpostiviestin kirjoittaminen vähissä olevasta tuotteesta
Päätät, että sinun on ilmoitettava henkilöstön jäsenelle, kun tuotteen varastomäärä on vähissä ja sitä on tilattava lisää. Luot työnkulun, joka alkaa Varastomäärä muuttunut -käynnistimellä, ja asetat ehdon, joka on tosi, jos edellinen varastomäärä on enintään 10. Käytät Lähetä sisäinen sähköposti -toiminnon Viesti-osiossa seuraavia muuttujia.
Esimerkki muuttujien käytöstä tuotteen tietojen antamiseen.
Syöte
Tuloste
Please reorder {{ product.title }}. Email owner@store.com to verify that they've received the purchase order.
Tilaa uudestaan tuotetta High Waist Leggings - Black. Varmista sähköpostitse osoitteesta owner@example.com, että he ovat vastaanottaneet ostotilauksen.
Haluat peruuttaa tilaukset, joilla on korkea riskitaso, mutta haluat henkilöstösi peruuttavan tilauksen manuaalisesti. Luot työnkulun, joka alkaa Tilaus luotu -käynnistimellä, ja asetat ehdon, joka on tosi, jos tilauksen riskitaso on korkea. Käytät Lähetä sisäinen sähköposti -toiminnon Viesti-osiossa seuraavia muuttujia.
Esimerkki muuttujien käytöstä vilpillistä tilausta koskevien tietojen antamiseen.
Syöte
Tuloste
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!
Shopify-kauppamme on vastaanottanut tilauksen, jolla on suuri petosriski. Haluaisimme peruuttaa tämän tilauksen välittömästi ennen kuin se siirtyy tuotantoon:
#1001
Dupont, Jeanne
jeanne@example.com
Vahvista uusi tilauksen tila. Kiitos!
Tilauksen rivikohtien tulostaminen for-silmukalla
Kun tilaus vastaanotetaan, voi olla hyödyllistä lähettää viesti, joka sisältää tilatut tuotteet. Voit tehdä tämän käyttämällä for-silmukkaa, joka suorittaa koodilohkon toistuvasti. Muuttujia tukevat tekstikentät tukevat myös for-silmukoita ja forloop-objektia.
Haluat esimerkiksi luoda työnkulun, joka palauttaa luettelon kaikista tilauksen SKU-koodeista ja määristä. Käytät Lähetä sisäinen sähköposti -toiminnon Viesti-osiossa seuraavia muuttujia.
Esimerkki for-silmukan käytöstä tilaustietojen antamiseen.
Syöte
Tuloste
Order summary:
{% for a in order.lineItems %}
{{a.sku}} ( {{a.quantity}} )
{% endfor %}
Tulosta tilauksen rivikohdat lisätietojen kanssa for-silmukan avulla
Päätät lisätä sähköpostiin enemmän tietoja, kuten tuotteen nimen, SKU-koodit, yksikköhinnan ja asiakkaan toimitustiedot. Käytät Lähetä sisäinen sähköposti -toiminnon Viesti-osiossa seuraavia muuttujia.
Esimerkki for-silmukan käytöstä laajempien tilaustietojen antamiseen.
Syöte
Tuloste
Order summary:
{% for a in order.lineItems %}
Product: {{a.title}}
SKU: {{a.sku}}
Price (per unit): ${{a.originalUnitPriceSet.shopMoney.amount}}
Quantity: {{a.quantity}}
{% endfor %}
Tilauksen yhteenveto:
Tuote: High Waist Leggings - Black
SKU: 8987097979
Hinta (yksikköä kohti): 8,49 $
Määrä: 5
Tuote: Athletic Socks - Blue
SKU: 888998898B
Hinta (yksikköä kohti): 5,61 $
Määrä: 2
Tulosta joitakin rivikohtia yhdistämällä for-silmukka ja if-lause
Sinun on seurattava tietyn myyjän toimittamia myytyjä tuotteita. Käytät Lähetä sisäinen sähköposti -toiminnon Viesti-osiossa seuraavia muuttujia ja sisällytät if-lauseen for-silmukkaan.
Esimerkki for-silmukan ja if-lauseen käytöstä tiettyjen myyjien tilaustietojen antamiseen.
Syöte
Tuloste
Acme product sold:
{% for x in order.lineItems %}
{% if x.vendor == 'acme-vendor' %}
Product name: {{x.title}}
SKU: {{x.sku}}
{% endif %}
{% endfor %}
Acme-tuote myyty:
Tuotteen nimi: High Waist Leggings - Black
SKU: 8987097979
Monimutkaiset tieto-objektit Shopify Flow'ssa
Flow'n avulla voit käyttää lähes kaikkia GraphQL Admin API:n tietoja. Tähän sisältyy monimutkaisia tieto-objekteja, kuten luetteloita ja objekteja. Näiden objektien käyttämiselle on kuitenkin joitakin rajoituksia. Tässä osiossa esitellään nämä rajoitukset ja annetaan esimerkkejä niiden kanssa työskentelystä.
Sen sijaan, että kutsuisit luetteloita ja objekteja suoraan, sinun tulisi käydä luettelo läpi silmukalla ja sisällyttää siihen vain haluamasi kentät.
Sen sijaan, että kutsuisit esimerkiksi suoraan {{ order.lineItems }}, käytä seuraavaa muotoa tiettyjen kenttien kutsumiseen. Nämä esimerkit sisältävät kaikki kentät, jotka sisällytettäisiin kutsumalla luetteloa tai objektia suoraan. Kopioi ja liitä tarvitsemasi kentät.
Teksti
{% for li in order.lineItems %}
{% comment %}li.contract - omitted{% endcomment %}