Liquidi muutujad on Liquidis defineeritud kohatäited, mis asendatakse töövoo käivitamisel GraphQL Admin API väärtustega. Muutujad saavad kirjeldada sinu töövoogudes osalevate klientide, tellimuste ja toodete atribuute, nagu tellimuse number, tellimuse hind või kliendi nimi. Muutujaid saab kasutada tingimustes, et juhtida oma töövoo loogikat, või andmete väljastamiseks toimingust.
Saad Liquidi abil lisada muutujaid igale tekstiväljale, mis sisaldab linki Lisa muutuja. Klõpsa vastava välja all olevat linki Lisa muutuja ja vali seejärel loendist muutuja.
Loendis Lisa muutuja olevaid muutujaid on filtreeritud nii, et kasutad ainult neid muutujaid, mille on tagastanud praegusele sammule eelnevad sammud, näiteks käivitajad. Näiteks annab käivitaja Tellimus loodud Admin API-st tellimuse- ja poe ressursse, mida saab lisada muutujatena. Kui oled loendist muutuja valinud, lisatakse see tekstiväljale õigesti vormindatud Liquidina.
Liquidi saad kirjutada ka otse tekstiväljale. Näiteks võid kasutada muutujat {{ order.name }}, et kuvada Shopify administraatorist pärit tellimuse sõne, näiteks order-123.
Kuna Flow kasutab Liquidi andmete hankimiseks Admin API-t, kasutatakse muutujate süntaksis kaamelikirja (camel case). Kaamelikirjas muutujatel algab esimene sõna väikese tähega ja järgnevad sõnad suure tähega, näiteks firstName või canMarkAsPaid. Näiteks toote loomise kuupäeva juurde pääsemiseks sisesta {{ product.createdAt }}. Kui kasutad Liquidi süntaksit Shopify teemas, mis kaamelikirja ei kasuta, peaksid sisestama {{ product.created_at }}.
Liquidi tingimus- ja kordusmärgised
Liquidi märgiseid saab kasutada koos muutujatega järgmiste funktsioonide täitmiseks:
Tingimuslausete kirjutamine, näiteks selle kindlaksmääramiseks, kas tellimuse kogusumma on suurem kui 100 $.
Objektide loendi läbimine, näiteks tellimuse iga reaüksuse andmete väljastamine.
Nende lausete kirjutamiseks ja objektide läbimiseks saad kasutada Liquidi märgiseid.
Näiteks järgmine Liquid kuvab tellimuse numbri, kui tellimuse kogusumma on suurem kui 100 $:
{% if order.totalPriceSet.shopMoney.amount > 100 %}
Order number: {{ order.name }}
{% endif %}
Lisaks saad objektide loendi, näiteks tellimuse reaüksuste läbimiseks kasutada tsüklit for. Näiteks järgmine Liquid kuvab tellimuse iga reaüksuse nime:
{% for li in order.lineItems %}
{{ li.title }}
{% endfor %}
Flow toetab järgmisi Liquidi tingimus- (või juhtvoo) märgiseid:
Muutujate andmeid saad Liquidis teisendada filtrite abil. Flow toetab kõiki avatud lähtekoodiga Liquidi filtreid.
Näiteks järgmine Liquid eemaldab tellimuse nimest eesliite ja väljastab ülejäänu: {{ order.name | remove: "Order-" }}
Mida pidada meeles Liquidi muutujate kasutamisel filtrites
Enne muutujate teisendamist filtrite abil tutvu järgmise teabega:
Flow ei toeta punktnotatsiooni, mis on saadaval mõnede filtrite jaoks. Näiteks Flow toetab varianti {{ order.lineItems | size }}, kuid mitte {{ order.lineItems.size }}.
Flow ei toeta punktnotatsiooni metaväljade jaoks. Näiteks ei saa kasutada varianti {{ order.metafields.custom.hold_note }}. Selle asemel pead läbima metaväljad tsükliga, nagu on kirjeldatud näidetes.
Flow ei toeta indeksite kasutamist loendi üksustele juurde pääsemiseks. Näiteks ei saa kasutada varianti {{ order.lineItems[0].title }}. Selle asemel pead läbima reaüksused tsükliga, nagu on kirjeldatud näidetes.
Kuupäevafiltrid
Lisaks standardsetele Liquidi filtritele pakub Flow kuupäevafiltreid teise kuupäeva suhtes kuupäeva saamiseks, et toetada käivitajat Ajastatud aeg ja funktsioone Hangi andmed. Need filtrid on: date_minus ja date_plus. Näiteks:
Et tagastada kuupäev ühe päeva võrra tulevikus: {{ "now" | date_plus: "1 day" }}
Et tagastada kuupäev ühe päeva võrra minevikus: {{ "now" | date_minus: "1 day" }}
Need filtrid aktsepteerivad kestuse ühikuna väärtusi second, minute, day, week, month ja year nii ainsuses (näiteks second) kui ka mitmuses (näiteks seconds). Esitada saab ka järgmist tüüpi kohandatavaid ühikuid:
Täisarv, mis tähistab sekundite arvu: {{ "now" | date_minus: 3600 }}, kus 3600 võrdub 1 tunniga.
ISO8601 kestuse sõne: {{ "now" | date_minus: "P1Y2D" }}, kus P1Y2D tähendab 1 aastat ja 2 päeva.
Krüptograafilised filtrid
Flow pakub krüptograafilisi filtreid räsimiseks ja räsipõhiste sõnumite autentimiskoodide (HMAC) loomiseks. Need filtrid on kasulikud kordumatute identifikaatorite ja kontrollsummade loomisel või integreerimisel kolmandate osapoolte süsteemidega, mis nõuavad konkreetseid räsivorminguid.
Räsifiltrid
Shopify Flow toetab järgmist tüüpi räsifiltreid:
blake3 – loob BLAKE3 räsi (soovitatav üldiseks kasutuseks).
Üldisteks räsimise eesmärkideks ja uute rakenduste puhul peaksid kasutama blake3-e, kuna see pakub vanemate algoritmidega võrreldes paremat jõudlust ja turvalisust. Kolmanda osapoole süsteemidega ühilduvuse tagamiseks on aga saadaval ka sha256, sha1 ja md5.
Soovid väljastada töövoogu kaasatud kliendi, tellimuse ja toote URL-e.
# 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>
Siltide loendi teisendamine metaväljaks
Soovid teisendada siltide kogumi metaväljaks, mis on üherealiste tekstiväljade loend. Lood töövoo, kasutades käivitajat Product added to store (Toode on poodi lisatud), ja kasutad toimingut Update product metafield (Värskenda toote metavälja). Toimingu Update product metafield jaotisse Value (Väärtus) lisad järgmise Liquidi koodi. See näide eeldab, et pead määrama väärtused vaid üks kord, kui toode luuakse, ja et tootel on kaks asjakohast silti: color:red ja color:orange.
Näide Liquidi kasutamisest üherealise tekstivälja loendi määramiseks.
Soovid luua töövoo, et saata töötajale e-kiri, kui klient kulutab tellimusele üle 500 $. Lood töövoo, kasutades käivitajat Order created (Tellimus on loodud), seadistad tingimuse, mis on tõene, kui tellimuse kogusumma on üle 500 $, ja kasutad toimingut Send internal email (Saada asutusesisene e-kiri). Toimingu Send internal email jaotises Message (Sõnum) kasutad järgmisi muutujaid.
Näide muutuja kasutamisest kliendi andmete esitamiseks.
Sisend
Väljund
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 }}.
Saada isiklik tänukiri Jeanne Dupontile (jeanne@example.com) 763,42 $ suuruse tellimuse esitamise eest.
Dünaamilise e-kirja koostamine toote puhul, mille laoseis on väike
Otsustad, et pead teavitama töötajat, kui toote laoseis hakkab vähenema ja varude täiendamiseks on vaja esitada tellimus. Lood töövoo, mis algab käivitajaga Inventory quantity changed (Laokogus on muutunud), ning seadistad tingimuse, mis on tõene, kui eelnev laokogus on 10 või väiksem. Toimingu Send internal email (Saada asutusesisene e-kiri) jaotises Message (Sõnum) kasutad järgmisi muutujaid.
Näide muutuja kasutamisest üksuse andmete esitamiseks.
Sisend
Väljund
Please reorder {{ product.title }}. Email owner@store.com to verify that they've received the purchase order.
Telli uuesti High Waist Leggings - Black. Saada e-kiri aadressile owner@example.com, et veenduda ostutellimuse kättesaamises.
Dünaamilise e-kirja koostamine, et teavitada töötajaid petturlikust tellimusest
Soovid tühistada kõrge riskitasemega tellimused, kuid eelistad, et sinu töötajad tühistaksid need käsitsi. Lood töövoo, mis algab käivitajaga Order created (Tellimus on loodud), ja seadistad tingimuse, mis on tõene, kui tellimuse riskitase on kõrge. Toimingu Send internal email (Saada asutusesisene e-kiri) jaotises Message (Sõnum) kasutad järgmisi muutujaid.
Näide muutuja kasutamisest petturliku tellimuse kohta teabe esitamiseks.
Sisend
Väljund
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!
Meie Shopify pood on saanud kõrge pettuseriskiga tellimuse. Soovime selle tellimuse tühistada kohe, enne kui see tootmisse saadetakse:
#1001
Dupont, Jeanne
jeanne@example.com
Kinnita uus tellimuse olek. Aitäh!
Tellimuse reaüksuste väljastamine tsükli for abil
Kui tellimus on vastu võetud, võib olla kasulik saata sõnum, mis sisaldab tellitud tooteid. Seda saad teha, kasutades tsüklit for, mis käivitab korduvalt koodiplokki. Muutujaid toetavad tekstiväljad toetavad ka tsükleid for ja objekti forloop.
Näiteks soovid luua töövoo, mis tagastab kõigi tellimuses olevate SKU-de ja koguste loendi. Toimingu Send internal email (Saada asutusesisene e-kiri) jaotises Message (Sõnum) kasutad järgmisi muutujaid.
Näide tsükli for kasutamisest tellimuse teabe esitamiseks.
Sisend
Väljund
Order summary:
{% for a in order.lineItems %}
{{a.sku}} ( {{a.quantity}} )
{% endfor %}
Tellimuse reaüksuste väljastamine koos lisateabega tsükli for abil
Otsustad lisada e-kirjale rohkem teavet, sealhulgas toote nime, SKU-d, ühe üksuse hinna ja kliendi tarneteabe. Toimingu Send internal email (Saada asutusesisene e-kiri) jaotises Message (Sõnum) kasutad järgmisi muutujaid.
Näide for-tsükli kasutamisest üksikasjalikuma tellimuse teabe esitamiseks.
Sisend
Väljund
Order summary:
{% for a in order.lineItems %}
Product: {{a.title}}
SKU: {{a.sku}}
Price (per unit): ${{a.originalUnitPriceSet.shopMoney.amount}}
Quantity: {{a.quantity}}
{% endfor %}
Tellimuse kokkuvõte:
Toode: High Waist Leggings - Black
SKU: 8987097979
Hind (tüki kohta): 8,49 $
Kogus: 5
Toode: Athletic Socks - Blue
SKU: 888998898B
Hind (tüki kohta): 5,61 $
Kogus: 2
Väljasta mõned reaüksused, kombineerides for-tsükli if-lausega
Sul on vaja jälgida müüdud üksusi, mida tarnib konkreetne tarnija. Toimingu Send internal email jaotises Message kasuta järgmisi muutujaid ja lisa oma for-tsüklisse lause if.
Näide for-tsükli ja if-lause kasutamisest konkreetsete tarnijate kohta tellimuste teabe esitamiseks.
Sisend
Väljund
Acme product sold:
{% for x in order.lineItems %}
{% if x.vendor == 'acme-vendor' %}
Product name: {{x.title}}
SKU: {{x.sku}}
{% endif %}
{% endfor %}
Müüdud Acme toode:
Toote nimi: High Waist Leggings - Black
SKU: 8987097979
Keerukad andmeobjektid rakenduses Shopify Flow
Flow võimaldab juurdepääsu peaaegu igasugustele liidese GraphQL Admin API andmetele. See hõlmab keerukaid andmeobjekte, näiteks loendeid ja objekte. Nende objektidega tehtaval on aga mõned piirangud. Selles jaotises kirjeldatakse neid piiranguid ja tuuakse näiteid, kuidas nendega töötada.
Loendite ja objektide otsekutsumise asemel peaksid loendit tsüklina läbima ja kaasama ainult need väljad, mida soovid.
Selle asemel, et kutsuda otse {{ order.lineItems }}, kasuta spetsiifiliste väljade kutsumiseks järgmist vormingut. Need näited hõlmavad kõiki välju, mis kaasneksid loendi või objekti otsekutsumisega. Kopeeri ja kleebi vajalikud väljad.
Tekst
{% for li in order.lineItems %}
{% comment %}li.contract - omitted{% endcomment %}