Shopify Flow -muuttujat
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.
Flow käyttää eri Liquid-versiota kuin Shopify-teemat, ja se voi käyttää mitä tahansa GraphQL Admin API:n kautta saatavilla olevia muuttujia.
Useimpien mallimuuttujien nimet itse itsensä selittäviä (englanniksi). Esimerkiksi muuttuja, joka näyttää tuotteen nimen (product name), on {{ product.title }}
. Kun viesti lähetetään, tämä muuttuja korvautuu tilatun tuotteen nimellä: Large Coffee Mug
.
Muuttujien lisääminen toimintoihin
Voit lisätä muuttujia kaikkiin tekstikenttiin, joissa on Lisää muuttuja -linkki. Klikkaa haluamasi kentän alapuolella olevaa Lisää muuttuja -linkkiä ja valitse sitten muuttuja luettelosta.
Lisää muuttuja -luettelon mallimuuttujat suodatetaan siten, että näet vain ne muuttujat, joita sovelletaan valitsemaasi käynnistimeen. Kun olet valinnut haluamasi muuttujan luettelosta, järjestelmä muotoilee sen oikein ja lisää sen tekstiruutuun.
Flow tukee lähes kaikkia GraphQL Admin API -kenttiä.
Liquid-muuttujat
Jos olet kehittäjä, jolla on kokemusta Liquid-koodin kirjoittamisesta, voit kirjoittaa Liquidin avulla muuttujia tai muokata lisäämiäsi muuttujia Lisää muuttuja -linkin avulla. Lue lisää kohdassa GraphQL Admin API -ohjeet.
Ehdolliset ja iteraatiotunnisteet
Voit lisätä Liquid-muuttujatunnisteita työnkulkuviesteihin manuaalisesti. Näiden tunnisteiden avulla voit sisällyttää viesteihisi enemmän tietoa.
Voit esimerkiksi käyttää for loop
-objektia, kun haluat iteroida objektiluettelon, kuten esimerkiksi tilauksen rivikohtien, läpi. Näillä tunnisteilla voit luoda viestejä, jotka sisältävät tietoja, kuten tuotteen nimen, SKU-koodin, hinnan ja kunkin rivikohdan määrän tilauksessa. Samalla säästät vastaanottajilta vaivan, jonka tietojen hakeminen Shopify Administa aiheuttaisi.
Flow tukee seuraavia ehdollisia Liquid-tunnisteita (tai toiminnonkulkutunnisteita):
- if
- unless
- elsif/else
- case/when
- ja/tai (monta eri ehtoa)
Flow tukee myös seuraavia Liquid-iteraatiotunnisteita:
Suodattimet
Flow tukee seuraavia Liquid-suodattimia:
Suodattimen nimi | Suodattimen tyyppi |
---|---|
abs | Math |
append | Merkkijono |
at_least | Math |
at_most | Math |
capitalize | Merkkijono |
ceil | Math |
concat | Array |
päivämäärä | Lisätunniste |
oletus | Lisätunniste |
divided_by | Math |
downcase | Merkkijono |
escape | Merkkijono |
ensimmäinen | Array |
floor | Math |
join | Array |
last | Array |
lstrip | Merkkijono |
kartta | Array |
minus | Math |
modulo | Math |
newline_to_br | Merkkijono |
plus | Math |
prepend | Merkkijono |
poista | Merkkijono |
remove_first | Merkkijono |
korvaa | Merkkijono |
replace_first | Merkkijono | reverse | Array |
round | Math |
rstrip | Merkkijono |
koko | Array |
slice | Merkkijono |
lajittele | Array |
split | Merkkijono |
strip | Merkkijono |
strip_html | Merkkijono |
strip_newlines | Merkkijono |
kertaa | Math |
truncate | Merkkijono |
truncatewords | Merkkijono |
uniq | Array |
upcase | Merkkijono |
url_encode | Merkkijono |
where | Array |
Esimerkkejä muuttujista
Jos esimerkiksi haluat luoda työnkulun, joka lähettää sähköpostiviestin työntekijälle, kun asiakas tekee ostoksen, 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 Viestiosioon.
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. |
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.
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. |
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.
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! |
For-silmukka esimerkkejä:
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.
Syöttää | Tulos |
---|---|
Tilauksen yhteenveto: {% for a in order.lineItems %} SKU: {{a.sku}} ( {{a.quantity}} ), {% endfor %} |
Tilauksen yhteenveto: 8987097979 (50) 8877778887 (3) 888998898B (1) |
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.
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 |
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
.
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
Shopify Flow ei tue matriisien ja objektien siirtämistä seuraavista syistä:
- Muiden kuin välttämättömien tietojen tuottaminen on vanhentunut GraphQL API:ssa, ja se saattaa luoda suuria kyselyjä, joiden vuoksi työnkulkusi epäonnistuu.
- Kun uusia ominaisuuksia otetaan käyttöön, lisätään uudet API-kenttiä, jotka saattavat katkaista työnkulkusi.
Jos liikaa tietoja lähetetään automaattisesti, työnkulku epäonnistuu. Sen sijaan, että kutsut matriiseja ja objekteja suoraan, ohita matriisi 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 matriisia tai objektia suoraan. Kopioi ja liitä tarvittavat kentät.
{% for li in order.lineItems %}
{% comment %}li.contract - omitted{% endcomment %}
{% for ca in li.customAttributes %}
{{ ca.key }}
{{ ca.value }}
{% endfor %}
{% for da in li.discountAllocations %}
{{ da.allocatedAmountSet.presentmentMoney.amount }}
{{ da.allocatedAmountSet.presentmentMoney.currencyCode }}
{{ da.allocatedAmountSet.shopMoney.amount }}
{{ da.allocatedAmountSet.shopMoney.currencyCode }}
{% endfor %}
{{ li.discountedTotalSet.presentmentMoney.amount }}
{{ li.discountedTotalSet.presentmentMoney.currencyCode }}
{{ li.discountedTotalSet.shopMoney.amount }}
{{ li.discountedTotalSet.shopMoney.currencyCode }}
{{ li.discountedUnitPriceSet.presentmentMoney.amount }}
{{ li.discountedUnitPriceSet.presentmentMoney.currencyCode }}
{{ li.discountedUnitPriceSet.shopMoney.amount }}
{{ li.discountedUnitPriceSet.shopMoney.currencyCode }}
{% comment %}li.duties - omitted {% endcomment %}
{{ li.fulfillableQuantity }}
{{ li.fulfillmentService.callbackUrl }}
{{ li.fulfillmentService.fulfillmentOrdersOptIn }}
{{ li.fulfillmentService.handle }}
{{ li.fulfillmentService.id }}
{{ li.fulfillmentService.inventoryManagement }}
{% comment %}rest of location omitted{% endcomment %}
{{ li.fulfillmentService.location.name }}
{{ li.fulfillmentService.productBased }}
{{ li.fulfillmentService.serviceName }}
{% for sm in li.fulfillmentService.shippingMethods %}
{{ sm.code }}
{{ sm.label }}
{% endfor %}
{{ li.fulfillmentService.type }}
{{ li.fulfillmentStatus }}
{{ li.id }}
{{ li.image.altText }}
{{ li.image.height }}
{{ li.image.id }}
{% comment %}li.image.metafield omitted{% endcomment %}
{% comment %}li.image.privateMetafield omitted{% endcomment %}
{{ li.image.width }}
{{ li.merchantEditable }}
{{ li.name }}
{{ li.nonFulfillableQuantity }}
{{ li.originalTotalSet.presentmentMoney.amount }}
{{ li.originalTotalSet.presentmentMoney.currencyCode }}
{{ li.originalTotalSet.shopMoney.amount }}
{{ li.originalTotalSet.shopMoney.currencyCode }}
{{ li.originalUnitPriceSet.presentmentMoney.amount }}
{{ li.originalUnitPriceSet.presentmentMoney.currencyCode }}
{{ li.originalUnitPriceSet.shopMoney.amount }}
{{ li.originalUnitPriceSet.shopMoney.currencyCode }}
{% comment %}rest of product omitted{% endcomment %}
{{ li.product.title }}
{{ li.quantity }}
{{ li.refundableQuantity }}
{{ li.requiresShipping }}
{{ li.restockable }}
{{ li.sellingPlan.name }}
{{ li.sku }}
{% for tl in li.taxLines %}
{{ tl.priceSet.presentmentMoney.amount | json }}
{{ tl.priceSet.presentmentMoney.currencyCode | json }}
{{ tl.priceSet.shopMoney.amount | json }}
{{ tl.priceSet.shopMoney.currencyCode | json }}
{{ tl.rate | json }}
{{ tl.ratePercentage | json }}
{{ tl.title | json }}
{% endfor %}
{{ li.taxable }}
{{ li.title }}
{{ li.totalDiscountSet.presentmentMoney.amount }}
{{ li.totalDiscountSet.presentmentMoney.currencyCode }}
{{ li.totalDiscountSet.shopMoney.amount }}
{{ li.totalDiscountSet.shopMoney.currencyCode }}
{{ li.unfulfilledDiscountedTotalSet.presentmentMoney.amount }}
{{ li.unfulfilledDiscountedTotalSet.presentmentMoney.currencyCode }}
{{ li.unfulfilledDiscountedTotalSet.shopMoney.amount }}
{{ li.unfulfilledDiscountedTotalSet.shopMoney.currencyCode }}
{{ li.unfulfilledOriginalTotalSet.presentmentMoney.amount }}
{{ li.unfulfilledOriginalTotalSet.presentmentMoney.currencyCode }}
{{ li.unfulfilledOriginalTotalSet.shopMoney.amount }}
{{ li.unfulfilledOriginalTotalSet.shopMoney.currencyCode }}
{{ li.unfulfilledQuantity }}
{% comment %}rest of variant omitted{% endcomment %}
{{ li.variant.title }}
{{ li.variantTitle }}
{{ li.vendor }}
{% endfor %}
{
"lineItems": [
{% for li in order.lineItems %}
{% if forloop.first != true %},{% endif %}
{
"contract": {
{% comment %}rest of contract omitted{% endcomment %}
"id": {{ li.contract.id | json }}
},
"customAttributes": [
{% for ca in li.customAttributes %}
{% if forloop.first != true %},{% endif %}
{
"key":{{ ca.key | json }},
"value":{{ ca.value | json }}
}
{% endfor %}
],
"discountAllocations": [
{% for da in li.discountAllocations %}
{% if forloop.first != true %},{% endif %}
"allocatedAmountSet": {
"presentmentMoney" : {
"amount": {{ da.allocatedAmountSet.presentmentMoney.amount | json }},
"currencyCode": {{ da.allocatedAmountSet.presentmentMoney.currencyCode | json }}
},
"shopMoney": {
"amount": {{ da.allocatedAmountSet.shopMoney.amount | json }},
"currencyCode": {{ da.allocatedAmountSet.shopMoney.currencyCode | json }}
}
}
{% endfor %}
],
"discountedTotalSet": {
"presentmentMoney" : {
"amount": {{ li.discountedTotalSet.presentmentMoney.amount | json }},
"currencyCode": {{ li.discountedTotalSet.presentmentMoney.currencyCode | json }}
},
"shopMoney": {
"amount": {{ li.discountedTotalSet.shopMoney.amount | json }},
"currencyCode": {{ li.discountedTotalSet.shopMoney.currencyCode | json }}
}
},
"discountedUnitPriceSet": {
"presentmentMoney" : {
"amount": {{ li.discountedUnitPriceSet.presentmentMoney.amount | json }},
"currencyCode": {{ li.discountedUnitPriceSet.presentmentMoney.currencyCode | json }}
},
"shopMoney": {
"amount": {{ li.discountedUnitPriceSet.shopMoney.amount | json }},
"currencyCode": {{ li.discountedUnitPriceSet.shopMoney.currencyCode | json }}
}
},
"duties": [
{% for duty li.duties %}
{% if forloop.first != true %},{% endif %}
{
{% comment %}rest of duties omitted{% endcomment %}
"id": {{ duty.id | json }}
}
{% endfor %}
],
"fulfillableQuantity": {{ li.fulfillableQuantity | json }},
"fulfillmentService": {
"callbackUrl":{{ li.fulfillmentService.callbackUrl | json }},
"fulfillmentOrdersOptIn": {{ li.fulfillmentService.fulfillmentOrdersOptIn | json }},
"handle": {{ li.fulfillmentService.handle | json }},
"id": {{ li.fulfillmentService.id | json }},
"inventoryManagement": {{ li.fulfillmentService.inventoryManagement | json }},
{% comment %}fulfillmentService.inventoryManagement - omitted {% endcomment %}
"productBased": {{ li.fulfillmentService.productBased | json }},
"serviceName": {{ li.fulfillmentService.serviceName | json }},
"shippingMethods": [
{% for sm in li.fulfillmentService.shippingMethods %}
{% if forloop.first != true %},{% endif %}
{
"code": {{ sm.code | json }},
"label": {{ sm.label | json }}
}
{% endfor %}
],
"type": {{ li.fulfillmentService.type | json }}
},
"fulfillmentStatus": {{ li.fulfillmentStatus | json }},
"id": {{ li.id | json }},
"image": {
"altText": {{ li.image.altText | json }},
"height": {{ li.image.height | json }},
"id": {{ li.image.id | json }},
{% comment %}li.image.metafield omitted{% endcomment %}
{% comment %}li.image.privateMetafield omitted{% endcomment %}
"width":{{ li.image.width | json }}
},
"merchantEditable": {{ li.merchantEditable | json }},
"name": {{ li.name | json }},
"nonFulfillableQuantity": {{ li.nonFulfillableQuantity | json }},
"originalTotalSet": {
"presentmentMoney" : {
"amount": {{ li.originalTotalSet.presentmentMoney.amount | json }},
"currencyCode": {{ li.originalTotalSet.presentmentMoney.currencyCode | json }}
},
"shopMoney": {
"amount": {{ li.originalTotalSet.shopMoney.amount | json }},
"currencyCode": {{ li.originalTotalSet.shopMoney.currencyCode | json }}
}
},
"originalUnitPriceSet": {
"presentmentMoney" : {
"amount": {{ li.originalUnitPriceSet.presentmentMoney.amount | json }},
"currencyCode": {{ li.originalUnitPriceSet.presentmentMoney.currencyCode | json }}
},
"shopMoney": {
"amount": {{ li.originalUnitPriceSet.shopMoney.amount | json }},
"currencyCode": {{ li.originalUnitPriceSet.shopMoney.currencyCode | json }}
}
},
"product": {
{% comment %}rest of Product omitted{% endcomment %}
"title": {{ li.product.title | json }}
},
"quantity": {{ li.quantity | json }},
"refundableQuantity": {{ li.refundableQuantity | json }},
"requiresShipping": {{ li.requiresShipping | json }},
"restockable": {{ li.restockable | json }},
"sellingPlan": {
"name": {{ li.sellingPlan.name | json }}
},
"sku": {{ li.sku | json }},
"taxLines": [
{% for tl in li.taxLines %}
{% if forloop.first != true %},{% endif %}
{
"priceSet": {
"presentmentMoney" : {
"amount": {{ tl.priceSet.presentmentMoney.amount | json }},
"currencyCode": {{ tl.priceSet.presentmentMoney.currencyCode | json }}
},
"shopMoney": {
"amount": {{ tl.priceSet.shopMoney.amount | json }},
"currencyCode": {{ tl.priceSet.shopMoney.currencyCode | json }}
}
},
"rate": {{ tl.rate | json }},
"ratePercentage": {{ tl.ratePercentage | json }},
"title": {{ tl.title | json }}
}
{% endfor %}
],
"taxable":{{ li.taxable | json }},
"title":{{ li.title | json }},
"totalDiscountSet": {
"presentmentMoney" : {
"amount": {{ li.totalDiscountSet.presentmentMoney.amount | json }},
"currencyCode": {{ li.totalDiscountSet.presentmentMoney.currencyCode | json }}
},
"shopMoney": {
"amount": {{ li.totalDiscountSet.shopMoney.amount | json }},
"currencyCode": {{ li.totalDiscountSet.shopMoney.currencyCode | json }}
}
},
"unfulfilledDiscountedTotalSet": {
"presentmentMoney" : {
"amount": {{ li.unfulfilledDiscountedTotalSet.presentmentMoney.amount | json }},
"currencyCode": {{ li.unfulfilledDiscountedTotalSet.presentmentMoney.currencyCode | json }}
},
"shopMoney": {
"amount": {{ li.unfulfilledDiscountedTotalSet.shopMoney.amount | json }},
"currencyCode": {{ li.unfulfilledDiscountedTotalSet.shopMoney.currencyCode | json }}
}
},
"unfulfilledOriginalTotalSet": {
"presentmentMoney" : {
"amount": {{ li.unfulfilledOriginalTotalSet.presentmentMoney.amount | json }},
"currencyCode": {{ li.unfulfilledOriginalTotalSet.presentmentMoney.currencyCode | json }}
},
"shopMoney": {
"amount": {{ li.unfulfilledOriginalTotalSet.shopMoney.amount | json }},
"currencyCode": {{ li.unfulfilledOriginalTotalSet.shopMoney.currencyCode | json }}
}
},
"unfulfilledQuantity": {{ li.unfulfilledQuantity | json }},
"variant": {
{% comment %}rest of variant omitted {% endcomment %}
"title": {{ li.variant.title | json }}
},
"variantTitle": {{ li.variantTitle | json }},
"vendor": {{ li.vendor | json }}
}
{% endfor %}
]
}