Tingimused Shopify Flow's
Tingimused jätkavad töövoogu, kui teatud reeglid on täidetud (näiteks if-then-lause algus). Kui seadistad tingimuse, valid kriteeriumid GraphQL Admin API väljadest (näiteks product.title), loogikaoperaatori (näiteks võrdub) ja väärtuse, millega võrrelda (näiteks Sinised teksad). Kui töövoog hindab tingimust, kontrollib Flow töövoos määratud väärtust sinu poe tagastatud väärtuse suhtes ning kuvab seejärel tulemused töövoo käivituses. Selleks, et tingimuste määratlemiseks saadaolevaid välju ja väärtusi paremini mõista, uuri, kuidas poe andmeid eelvaadata.
Uuri lisateavet tingimuste põhitõdede kohta.
Sellel lehel
Flow's kasutatavad andmetüübid
Kui määrad tingimuse, valid kriteeriumi Admin API saadaolevate väljade hulgast ja Flow hindab seda sinu poe tagastatud väärtuse põhjal.
Flow toetab järgmisi andmetüüpe:
- Ujukomaarv (Float): ujukomaarvud on kümnendmurrud. Näiteks 4.25.
- Täisarv (Integer): täisarvud on ilma komakohata arvud. Näiteks 42.
- Kuupäev (Date): kuupäevaväärtused on kuupäeva arvulised esitused. Näiteks 01012021.
- Sõne (String): sõneväärtused on tekst. Sõneväärtusi kasutavad võrdlused ei ole tõstutundlikud.
- Tõeväärtus (Boolean): tõeväärtused on kas tõesed (true) või väärad (false).
- Loend (Enum): loendiväärtused on andmehulgad, mis võimaldavad muutujal olla eelmääratletud konstantide kogum.
Loogikaoperaatorid
Loogikaoperaatorid määravad, kuidas tingimust rakendatakse. Tingimustega saab kontrollida lihtsaid omadusi, näiteks kas tellimuse kogusumma ületab teatud summat või kas klient on turundusega nõus. Loogikaoperaatoritega saab kontrollida ka keerulisemaid omadusi.
Operaatorid võivad olla kas väljataseme operaatorid, näiteks võrdub või ei võrdu, või loendioperaatorid, näiteks vähemalt üks järgmistest või mitte ükski järgmistest.
Väljataseme operaatorid
Väljataseme operaatoreid kasutatakse kahe väärtuse võrdlemiseks. Rakendus Flow kasutab järgmisi operaatoreid:
| Operaator | Kirjeldus | Näide |
|---|---|---|
| Võrdub | Võrdleb väärtusi, et kontrollida, kas need on samad. |
Atribuudi order.currentTotalDiscountsSet.shopMoney.amount väärtus hangitakse sinu poe andmetest ja seda võrreldakse teise väärtusega, milleks on 50.Kui tellimuse allahindluste kogusumma võrdub täpselt 50-ga, on tingimus tõene. |
| Ei võrdu | Võrdleb väärtusi, et kontrollida, kas need on erinevad. |
Atribuudi order.currentTotalDiscountsSet.shopMoney.amount väärtus hangitakse sinu poe andmetest ja seda võrreldakse teise väärtusega, milleks on 50.Kui tellimuse allahindluste kogusumma ei võrdu täpselt 50-ga, on tingimus tõene. |
| Suurem kui ja Suurem või võrdne | Võrdleb väärtusi, et kontrollida, kas esimene väärtus on teisest suurem, või sellest suurem või sellega võrdne. |
Atribuudi order.currentTotalDiscountsSet.shopMoney.amount väärtus hangitakse sinu poe andmetest ja seda võrreldakse teise väärtusega, milleks on 50.Kui tellimuse allahindluste kogusumma on 137, on tingimus tõene, sest 137 on suurem kui 50. |
| Väiksem kui ja Väiksem või võrdne | Võrdleb väärtusi, et kontrollida, kas esimene väärtus on teisest väiksem, või sellest väiksem või sellega võrdne. |
Atribuudi order.currentTotalDiscountsSet.shopMoney.amount väärtus hangitakse sinu poe andmetest ja seda võrreldakse teise väärtusega, milleks on 50.Kui tellimuse allahindluste kogusumma on 47, on tingimus tõene, sest 47 on väiksem või võrdne 50-ga. |
| Vähemalt üks järgmistest | Kontrollib, kas väli võrdub mõne esitatud loendis oleva väärtusega. Väärtused tuleb sisestada eraldi ja vajutada pärast iga väärtust sisestusklahvi (nagu siltide puhul). Tühja massiivi korral on tulemus väär. |
Atribuudi order.lineitem.product.title väärtust võrreldakse järgmistega: pineapple, guava, kiwi.Kui reaüksuse toote pealkiri on guava, on tingimus tõene, sest „guava“ sisaldub esitatud loendis. |
| Mitte ükski järgmistest | Kontrollib, kas väli ei võrdu ühegi esitatud loendis oleva väärtusega. |
Atribuudi order.lineitem.product.title väärtust võrreldakse järgmistega: pineapple, guava, kiwi.Kui reaüksuse toote pealkiri on raspberry, on tingimus tõene, sest „raspberry“ ei sisaldu esitatud loendis. |
| Sisaldab | Võrdleb väärtusi, et kontrollida, kas esimene sisendväärtus sisaldab teise sisendväärtuse andmeid. |
Atribuudi order.lineitem.product.title väärtust võrreldakse järgmisega: berry.Kui reaüksuse toote pealkiri on strawberry, on tingimus tõene, sest „berry“ sisaldub sõnas „strawberry“. |
| Ei sisalda | Võrdleb väärtusi, et kontrollida, kas esimene sisendväärtus ei sisalda teise sisendväärtuse andmeid. |
Atribuudi order.lineitem.product.title väärtust võrreldakse järgmisega: berry.Kui reaüksuse toote pealkiri on apple, on tingimus tõene, sest „berry“ ei sisaldu sõnas „apple“. |
| Algab | Võrdleb väärtusi, et kontrollida, kas esimene väärtus algab teises väärtuses olevate andmetega. |
Atribuudi order.shippingAddress.country väärtust võrreldakse järgmisega: United.Kui tellimuse tarneaadressi riik on United Kingdom, on tingimus tõene, sest „United Kingdom“ algab sõnaga „United“. |
| Ei alga | Võrdleb väärtusi, et kontrollida, kas esimene väärtus ei alga teises väärtuses olevate andmetega. |
Atribuudi order.shippingAddress.country väärtust võrreldakse järgmisega: United.Kui tellimuse tarneaadressi riik on Canada, on tingimus tõene, sest „United Kingdom“ ei alga sõnaga „Canada“. |
| Lõpeb | Võrdleb väärtusi, et kontrollida, kas esimene väärtus lõpeb teises väärtuses olevate andmetega. |
Atribuudi order.lineitems.product.title väärtust võrreldakse järgmisega: pie.Kui reaüksuse toote pealkiri on key lime pie, on tingimus tõene, sest „key lime pie“ lõpeb sõnaga „pie“. |
| Ei lõpe | Võrdleb väärtusi, et kontrollida, kas esimene väärtus ei lõpe teises väärtuses olevate andmetega. |
Atribuudi order.lineitems.product.title väärtust võrreldakse järgmisega: pie.Kui reaüksuse toote pealkiri on chocolate cake, on tingimus tõene, sest „chocolate cake“ ei lõpe sõnaga „pie“. |
Null- või tühiväärtuste operaatorid
| Operaator | Kirjeldus | Tõene/väär tingimus |
|---|---|---|
| Tühi või ei eksisteeri | Kontrollib, kas väli on tühi (sellel puudub väärtus) või ei eksisteeri (on null). |
Tagastab true, kui väli on tühi või null, ning false, kui see on olemas.
|
| Pole tühi ja on olemas | Kontrollib, kas väli on olemas ja pole tühi ega null. | Tagastab true, kui väli pole tühi ja on olemas, ning false, kui see on tühi. |
Loendioperaatorid
Loendioperaatoreid kombineeritakse väljataseme operaatoritega, mis võimaldab sul kontrollida loendites sisalduvate andmete tingimusi.
Nagu näites „vähemalt üks“, võid soovida kontrollida, kas tellimus sisaldab konkreetset toodet (asub asukohas order.lineItems), millel on konkreetne silt (loend asukohas order.lineItems.product.tags). Mõlemal juhul kasutatakse näites loendioperaatorit vähemalt üks.
Flow pakub loenditega töötamiseks kolme operaatorit: Vähemalt üks (At least one of), Mitte ükski (None of) ja Kõik (All of).
| Operaator | Kirjeldus | Kasutusnäide |
|---|---|---|
| Vähemalt üks järgmistest | Kontrollib, kas mõni loendis olev üksus vastab määratud tingimusele. Tagastab väärtuse true, kui mõni loendi üksus vastab tingimusele. Kui loend on tühi või ükski üksus ei vasta, tagastab väärtuse false. | Kontrolli, kas tellimus sisaldab kindla sildiga toodet, kasutades operaatorit At least one of order line items.product.tags is equal to tagname. |
| Mitte ükski | Kontrollib, et ükski loendis olev üksus ei vastaks määratud tingimusele. Tagastab väärtuse true, kui ükski üksus ei vasta tingimusele. Kui loend on tühi, tagastab väärtuse true. | Kontrolli, et tootel poleks silti presale, kasutades tingimust None of product tags is equal to presale.Levinud viga on proovida operaatorit eitada, kasutades tingimust ei võrdu (is not equal to). Selline topelteitus – None of product tags is not equal to presale – muudab tingimuse raskesti arusaadavaks ja kehtetuks.
|
| Kõik | Kontrollib, et kõik loendis olevad üksused vastaksid määratud tingimusele. Tagastab väärtuse true, kui kõik loendis olevad üksused vastavad tingimusele. | Kontrolli, kas kõigi tellimuse reaüksuste toote tarnija on Acme, kasutades tingimust All of order line items have a product.vendor equal to Acme. |
Tingimuste järjestamine
Saad luua mitme tingimusega töövooge, millest igaüks võib käivitada erinevaid toiminguid. Tingimuste järjestus on oluline. Tingimuste kontroll algab töövoo algusest ja kulgeb süstemaatiliselt läbi iga tingimuse. Kontroll peatub, kui tingimus on täidetud.
Selles näites kasutatakse mitut tingimust, et kontrollida, kas klient vastab lojaalsusprogrammi nõuetele poest tehtud ostude kogusumma põhjal. Tingimusi kontrollitakse nende kuvamise järjekorras:
- Kui koguhind on suurem kui 1000 $ ja klient on nõus turundusmaterjale saama, siis lisa talle silt
Gold. - Kui koguhind on alla 1000 $, kuid üle 500 $ ja klient on nõus turundusmaterjale saama, siis lisa talle silt
Silver. - Kui koguhind on alla 500 $, kuid üle 200 $ ja klient on nõus turundusmaterjale saama, siis lisa talle silt
Bronze.

Mitme kriteeriumi kombineerimine ühes tingimuses
Tingimuse koostamisel saad määrata mitu kriteeriumi. Saad valida, kuidas need erinevad kriteeriumid tuleks kombineerida, et teha kindlaks, kas üldine tingimus on tõene või väär.
Kui kõik kriteeriumid on täidetud
Valik AND annab tõese tulemuse ainult siis, kui kõik sinu määratud kriteeriumid on tõesed.
Näiteks lood sa töövoo sildi lisamiseks klientidele, kes asuvad Kanadas ja kulutavad ühele tellimusele üle 500 $.

Töövoog lisab kliendile sildi ainult siis, kui ta asub Kanadas ja tema tellimuse summa ületab 500 $. Kui emb-kumb nendest tingimustest on väär, ei lisata kliendile silti.
Kui mõni kriteeriumidest on täidetud
Valik OR annab tõese tulemuse, kui mis tahes sinu määratud kriteeriumidest on tõene.
Näiteks lood sa töövoo, mis lisab sildi tellimustele, mille riskisoovitus on Cancel (tühista) või Investigate (uurida). Kuni üks nendest tingimustest on tõene, saab tellimus sildi.

Staatilised ja dünaamilised andmed tingimustes
Tavaliselt on tingimuse teine väärtus staatiline, käsitsi sisestatud väärtus (nt product.title == "your title"). See väärtus jääb töövoo igal käivitusel samaks.
Dünaamilisi väärtusi saad kasutada ka siis, kui teise väärtuse väli kuvab ikooni . Dünaamilised väärtused võetakse sinu poe andmetest iga kord, kui töövoog käivitub. Dünaamilise väärtuse kasutamiseks klõpsa ikoonil
ja vali väärtus, millega soovid kontrollida. Dünaamilised väärtused pole kõikidel väljadel saadaval.
Lood näiteks töövoo, mis lisab tellimusele sildi, kui tellimuse arveldusaadressi riik on sama, mis selle tarneaadressi riik.

Selles näites võetakse poe andmetest nii esimene kui ka teine väärtus, mitte ei määrata teise väärtuse kontrollimiseks käsitsi staatilist sõnet. Kui kliendi esitatud arveldusaadressi riik on sama kui riik, mille klient esitas tarneaadressis, siis on tingimus tõene ja tellimus saab sildi.
Aeg-ajalt võib sul olla tarvis kasutada valet tüüpi dünaamilisi andmeid. Näiteks võib tekkida vajadus võrrelda sõnena talletatud arvu teise arvuga. Sel juhul saad kasutada valikut Käivita kood (Run code), et konverteerida andmed õigesse tüüpi.
Mallid
Enamik mallide teegis olevaid malle sisaldab tingimust.
Näidistingimused
Kontrolli, kas vähemalt üks loendi üksus vastab tingimusele
Selles näites kuvatakse tüüpiline tingimus, mis kontrollib, kas vähemalt üks loendi üksus vastab kindlale väärtusele.
Sel juhul kontrollib tingimus, kas mõnel tellimuses oleval tootel on silt presale. Selle tingimuse koostamiseks vali order / lineItems / product / tags. Vaikimisi valib Flow loogikaoperaatoriks väärtuse vähemalt üks neist (at least one of):

Osad vähemalt üks neist (at least one of) on loendioperaatorid ja neid kasutatakse vastavuse otsimiseks mitmes loendiüksuses. Osa on võrdne (is equal to) on väljataseme operaator, mis määrab, kas üksik loendiüksus sobib.
Kontrolli, kas ükski loendi üksus ei vasta tingimusele
Selles näites kuvatakse tüüpiline tingimus, mis kontrollib, kas ükski loendi üksus ei vasta kindlale väärtusele. Üks levinud probleem, millega tuleb arvestada, on see, et loendid võivad olla tühjad. Kui loend on tühi, käsitleb tingimust loendioperaator (antud juhul mitte ükski ehk none of).
Sel juhul kontrollib tingimus, kas ükski tootesilt ei ole võrdne väärtusega foo:

Tingimus tagastab väärtuse true, kui 1) tootesilte pole või 2) ükski siltidest pole foo. Vastasel juhul tagastab see väärtuse false.
Kontrolli, kas loendi üksus vastab mitmele kriteeriumile
Selles näites kuvatakse tüüpiline tingimus, mis kontrollib, kas vähemalt üks loendi üksus vastab kahele eraldiseisvale kriteeriumile.
Sel juhul kontrollib tingimus, kas mõnel tellimuses oleval tootel on silt presale ja kas selle productType on clothing.

Selle tingimuse koostamiseks pead tegema järgmist.
- Vali esimeseks kriteeriumiks order / lineItems / product / tags.
- Vali loendis lineItems suvand Add criteria for same item (Lisa sama üksuse kriteerium). Märkus. Vale loendiüksuse valimine on siin levinud viga.
- Vali ülataseme objektiks lineItems_item ja teiseks kriteeriumiks product / productType`. Märkus. Ka vale objekti valimine on siin levinud viga.
- Kahe kriteeriumi ühendamiseks vali AND.
- Sisesta kahe kriteeriumi väärtusteks
presalejaclothing.