Liquid-muuttujat Shopify Flow'ssa

Muuttujat ovat paikkamerkkejä, jotka korvataan todellisilla arvoilla, kun työnkulku ajetaan. Muuttujat kuvaavat työnkulkuihin liittyvien asiakkaiden, tilausten ja tuotteiden ominaisuudet. Esimerkiksi tilausnumerolle, tilauksen hinnalle, asiakkaan nimelle jne. on oma muuttujansa. Muuttujia voidaan käyttää ehdoissa työnkulun logiikan hallintaa tai toiminnon tietojen tuottamista varten.

Tietoja Liquidista

Liquid on mallikieli, jolla päästään toimintojen muuttujiin ja kirjoitetaan koodia Flow'ssa. Flow käyttää Liquid-versiota, joka seuraa tarkimmin avoimen lähdekoodin kirjastoa. Shopify-teemat käyttävät toista Liquid-versiota, mutta tämä Liquid-versio koskee teemoja ja sisältää paljon enemmän suodattimia ja tunnisteita kuin Flow tukee sekä erilaista syntaksia muuttujiin pääsemiseksi.

Liquid-muuttujat

Voit lisätä Liquid-muuttujia kaikkiin tekstikenttiin, joissa on Lisää muuttuja -linkki. Napsauta haluamasi kentän alapuolella olevaa Lisää muuttuja -linkkiä ja valitse sitten muuttuja luettelosta.

kuva, jossa näkyy, mitkä kentät hyväksyvät Liquidin

Lisää muuttuja -luettelon muuttujat suodatetaan siten, että näet vain ne muuttujat, jotka palaavat nykyistä vaihetta edeltävillä vaiheilla, kuten käynnistimillä. Esimerkiksi Tilaus luotu -käynnistin antaa tilaus- ja kaupparesursseja, joiden avulla voit käyttää tilaukseen tai kaupan asetuksiin liittyviä muuttujia, jotka ovat käytettävissä GraphQL Admin APIssa. Kun olet valinnut haluamasi muuttujan luettelosta, järjestelmä muotoilee sen oikein ja lisää sen tekstiruutuun.

Voit kirjoittaa Liquidin myös suoraan tekstilohkoon. Voit esimerkiksi käyttää muuttujaa {{ order.name }} näyttämään Shopify Adminissa näkyvän tilausmerkkijonon, kuten tilaus-123.

Koska Flow käyttää GraphQL Admin APIa Liquidissa käyttämiesi tietojen noutamiseen, muuttujan syntaksissa käytetään "camel case" -kirjoitustyyliä. Jos esimerkiksi haluat päästä päivämäärään, jolloin tuote luotiin, syötä {{ product.createdAt }}. Jos käytät Liquid-syntaksia Shopify-teemassa, syötä {{ product.created_at }}.

Ehdolliset ja toiston Liquid-tunnisteet

Saatat joskus haluta käyttää Liquid-tunnisteita, jotta voit tehdä seuraavasti:

  • Kirjoita ehdolliset lausekkeet, kuten määritä, onko tilauksen kokonaissumma yli 100 dollaria
  • Toista objektiluettelon läpi, esimerkiksi tuottamalla kunkin rivikohdan tiedot tilaukseen

Liquid-tunnisteiden avulla voit kirjoittaa nämä lausekkeet ja toistaa objektien läpi.

Esimerkiksi seuraava Liquid näyttää tilausnumeron, jos tilauksen kokonaissumma on yli 100 dollaria:

{% if order.totalPriceSet.shopMoney.amount > 100 %}
  Order number: {{ order.name }}
{% endif %}

Voit myös käyttää for-silmukkaa, jonka avulla voit toistaa objektiluettelon läpi esimerkiksi tilauksen rivikohdat. Esimerkiksi seuraava Liquid näyttää kunkin rivikohdan nimen tilauksessa:

{% for li in order.lineItems %}
  {{ li.title }}
{% endfor %}

Flow tukee seuraavia ehdollisia Liquid-tunnisteita (tai toiminnonkulkutunnisteita):

Flow tukee myös seuraavia Liquid-iteraatiotunnisteita:

Suodattimet

Suodattimien avulla voit muuntaa tietoja Liquidissa. Flow tukee kaikkia avoimen lähdekoodin Liquid-suodattimia.

Esimerkiksi seuraava Liquid poistaa etuliitteen tilauksen nimestä ja tuottaa sen, mitä jää jäljelle: {{ order.name | remove: "Order-" }}

Normaalien Liquid-suodattimien lisäksi Flow tarjoaa päivämääräsuodattimia, joilla toiseen päivämäärään liittyvän päivämäärän saa tukemaan Asetettu aika -käynnistintä ja Hanki tietoja -ominaisuuksia. Nämä suodattimet ovat seuraavat: date_minus ja date_plus.

Jos haluat palauttaa päivämäärän, joka on yhden päivän verran tulevaisuudessa:{{ "now" | date_plus: "1 day" }}

Jos haluat palauttaa päivämäärän, joka on yhden päivän verran menneisyydessä:{{ "now" | date_minus: "1 day" }}

Nämä suodattimet hyväksyvät kestoyksiköksi yksiköt second, minute, day, week, month ja year sekä yksikkömuodossa (kuten second) että monikkomuodossa (kuten seconds). Tämän muodon lisäksi voit antaa myös kokonaisluvun (sekuntien määrän). Esimerkiksi:{{ "now" | date_minus: 3600 }}

Voit myös antaa ISO8601-kestomerkkijonon, jossa P1Y2D tarkoittaa yhtä vuotta ja kahta päivää:{{ "now" | date_minus: "P1Y2D" }}

Seikkoja, jotka liittyvät Liquid-muuttujien käyttöön suodattimissa

  • Flow ei tue joissakin suodattimissa käytettävissä olevaa pisteellistä merkintätapaa. Flow tukee esimerkiksi muotoa {{ order.lineItems | size }} mutta ei muotoa {{ order.lineItems.size }}.
  • Flow ei tue metakenttien pisteellistä merkintätapaa. Esimerkiksi {{ order.metafields.custom.hold_note }} ei ole käytettävissä. Sen sijaan sinun on tehtävä silmukka metakenttien yli, kuten esimerkeissä on kuvattu.
  • Flow ei tue indeksien käyttöä luettelon kohteiden käyttämiseen. Et voi esimerkiksi käyttää {{ order.lineItems[0].title }}. Sen sijaan sinun on tehtävä silmukka rivikohteiden yli, esimerkeissä kuvattujen mukaisesti.

Esimerkit

Jotta saat paremman tunteen Liquid-muuttujien käytöstä, ota huomioon seuraavat esimerkit.

Resurssien tulos-URL-osoitteet

Haluat tulostaa työnkulkuun liittyvät 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>

Tunnisteiden luettelon konvertoiminen metakentäksi

Haluat muuntaa tunnistejoukon metakentiksi, joka on yksirivisten tekstikenttien luettelo.Voit luoda työnkulun käyttämällä Tuote lisätty kauppaan -käynnistintä ja käyttämällä Päivitä tuotteen metakenttä -toimintoa.Päivitä tuotteen metakenttä -toiminnon Arvo-osiossa lisäät seuraavan liquid-koodin.Tässä esimerkissä oletetaan, että arvot täytyy asettaa vain kerran, kun tuote on luotu ja että tuotteella on kaksi merkityksellistä tunnistetta: color:red ja color:orange.

Esimerkki liquid-kentästä, jossa on yksirivisen tekstikentän luettelo.
SyöttääTulos
{% capture mf_value %}
{%- for tags_item in product.tags -%}
{%- if tags_item contains "color:" -%}
"{{- tags_item | remove_first: "color:" | strip -}}",
{%- endif -%}
{%- endfor -%}
{% endcapture -%}
[{{mf_value | remove_last: ","}}]
["punainen", "oranssi"]

Kirjoita tilaukseen dynaaminen sähköpostiviesti

Haluat luoda työnkulun, joka lähettää sähköpostiviestin työntekijälle, kun asiakas tekee tilauksen, jonka kokonaissumma on yli 500 dollaria. Jos haluat luoda työnkulun, jossa käytät Tilaus luotu -käynnistintä, määritä ehto, joka on tosi, jos tilauksen kokonaissumma on yli 500 dollaria, ja käytä Lähetä sisäinen sähköpostiviesti -toimintoa. Syötä seuraavat muuttujat Lähetä sisäinen sähköposti -toiminnon Viesti-osioon.

Esimerkki muuttujan käytöstä tietojen lähettämistä varten asiakkaalle.
SyöttääTulos
Lähetä henkilökohtainen kiitos asiakkaalle {{ order.customer.firstName }} {{ order.customer.lastName }}({{ order.customer.email }}) tilauksesta, jonka arvo on {{ order.totalPriceSet.shopMoney.amount }} dollaria.Lähetä henkilökohtainen kiitos asiakkaalle Jeanne Dupont (jeanne@example.com) tilauksesta, jonka arvo on 763,42 dollaria.

Kirjoita dynaaminen sähköpostiviesti tuotteesta, jonka varasto on vähissä

Haluat ilmoittaa henkilöstön jäsenelle, kun tuotevarasto on vähissä ja varastoa täytyy tilata lisää. Sinun täytyy luoda työnkulku, joka käynnistyy Varastomäärä muuttunut -käynnistimellä, ja asettaa ehto, joka on tosi, jos varastomäärä ennen on pienempi tai yhtä suuri kuin 10. Syötä seuraavat muuttujat Lähetä sisäinen sähköposti -toiminnon Viestiosioon.

Esimerkki muuttujan käytöstä tuotetietojen lähettämisessä varten.
SyöttääTulos
Tilaa uudelleen {{ product.title }}. Varmista lähettämällä sähköpostia osoitteeseen owner@store.com, että ostotilaus on vastaanotettu.Tilaa uudelleen korkeavyötäröiset leggingsit – musta. Varmista lähettämällä sähköpostia osoitteeseen owner@example.com, että ostotilaus on vastaanotettu.

Kirjoita dynaaminen sähköpostiviesti ilmoittaaksesi henkilöstölle vilpillisestä tilauksesta

Haluat peruuttaa tilaukset, joissa on suuri riskitaso, mutta haluat, että henkilöstö peruuttaa tilauksen manuaalisesti. Luot työnkulun, joka alkaa Tilaus luotu -käynnistimellä, ja asetat ehdon, joka on tosi, jos tilauksen riskitaso on yhtä suuri. Syötä seuraavat muuttujat Lähetä sisäinen sähköposti -toiminnon Viestiosioon.

Esimerkki muuttujasta, joka antaa tietoja vilpillisestä tilauksesta.
SyöttääTulos
Shopify-kauppamme on saanut tilauksen, jonka petosriski korkea. Haluaisimme peruuttaa tämän tilauksen heti, ennen kuin se lähetetään tuotantoon:

{{ order.name }}
{{ order.billingAddress.lastName }}, {{ order.billingAddress.firstName }}
{{ order.email }}

Vahvistathan uuden tilauksen tilan. Kiitos!
Shopify-kauppamme on saanut tilauksen, jonka petosriski korkea. Haluaisimme peruuttaa tämän tilauksen heti, ennen kuin se lähetetään tuotantoon:

#1001
Dupont, Jeanne
jeanne@example.com

Vahvistathan uuden tilauksen tilan. Kiitos!

Tilauksen rivikohtien tulostaminen for-silmukalla

Kun tilaus on vastaanotettu, kannattaa lähettää viesti, jossa on lueteltu tilatut tuotteet. Voit tehdä tämän käyttämällä for loop -silmukkaa, joka suorittaa koodilohkon toistuvasti. Tekstikentät, jotka tukevat muuttujia, tukevat myös for loops -silmukoita ja forloops object -objekteja.

Esimerkiksi jos haluat luoda työnkulun, joka tuottaa luettelon kaikista tilauksen SKU-koodeista sekä lukumääristä. Syötä seuraavat muuttujat Lähetä sisäinen sähköposti -toiminnon Viestiosioon.

Esimerkki silmukan käytöstä tilaustietojen toimittamiseen.
SyöttääTulos
Tilauksen yhteenveto:
{% for a in order.lineItems %}
SKU: {{a.sku}} ( {{a.quantity}} ),
{% endfor %}
Tilauksen yhteenveto:
8987097979 (50)
8877778887 (3)
888998898B (1)

Tulosta tilauksen rivikohdat käyttämällä for-silmukkaa, jossa on lisätietoja

Voit lisätä sähköpostiviestiin lisätietoja, kuten tuotenimen, SKU-koodit, tuotteen hinnan ja asiakkaan toimitustiedot. Syötä seuraavat muuttujat Lähetä sisäinen sähköposti -toiminnon Viestiosioon.

Esimerkki silmukan käytöstä kattavampien tilaustietojen toimittamiseen.
SyöttääTulos
Tilauksen yhteenveto:
{% for a in order.lineItems %}
Tuote: {{a.title}}
SKU-koodi:{{a.sku}}
Hinta (yksikköä kohti): {{a.originalUnitPriceSet.shopMoney.amount}} $
Määrä: {{a.quantity}}
{% endfor %}
Tilauksen yhteenveto:
Tuote: Korkeavyötäröiset leggingsit - musta
SKU-koodi: 8987097979
Hinta (yksikköä kohti): 8,49 $
Määrä: 5
Tuote: Urheilusukat - sininen
SKU-koodi: 888998898B
Hinta (yksikköä kohti): 5,61 $
Määrä: 2

Tuota joitakin rivikohtia yhdistämällä for-silmukka if-lausekkeella

Sinun täytyy seurata tietyn myyjän toimittamia tuotteita. Syötä seuraavat muuttujat Lähetä sisäinen sähköposti -toiminnon Viestiosioon ja sisällytä if -lause sinun for loop.

Esimerkki silmukan ja jos-lausekkeen käytöstä tilaustietojen toimittamista varten tietyille myyjille.
SyöttääTulos
Acme-tuote myyty:
{% for x in order.lineItems %}
{% if x.vendor == 'acme-vendor' %}
Tuotteen nimi: {{x.title}}
SKU-koodi: {{x.sku}}
{% endif %}
{% endfor %}
Acme-tuote myyty:
Tuotteen nimi: Korkeavyötäröiset leggingsit - musta
SKU-koodi: 8987097979

Monimutkaiset dataobjektit Shopify Flow'ssa

Flown avulla voit käyttää lähes kaikkia GraphQL Admin API :ssa olevia tietoja, mukaan lukien monimutkaisia tieto-objekteja, kuten luetteloita ja objekteja. Näillä objekteilla on kuitenkin joitakin rajoituksia. Osiossa kerrotaan näistä rajoituksista ja annetaan esimerkkejä siitä, miten niiden kanssa voi työskennellä.

Sen sijaan, että kutsut luetteloja ja objekteja suoraan, tee silmukka luettelon yli ja sisällytä vain haluamasi kentät.

Sen sijaan, että {{ order.lineItems }} kutsutaan suoraan, kutsu tiettyjä kenttiä seuraavaa muotoa käyttämällä. Nämä esimerkit sisältävät kaikki kentät, jotka tulisi sisällyttää kutsumalla luetteloa tai objektia suoraan. Kopioi ja liitä tarvittavat kentät.

Etkö löydä hakemaasi vastausta? Autamme mielellämme.