Pogoji v Shopify Flow

Pogoji nadaljujejo potek dela, ko so izpolnjena določena pravila, na primer začetek stavka »če-potem«. Ko nastavite pogoj, izberete merila iz polj v GraphQL Admin API (na primer product.title), logični operator (na primer je enako) in vrednost za preverjanje (na primer Blue jeans). Ko potek dela ovrednoti pogoj, Flow preveri vrednost, določeno v poteku dela, v primerjavi z vrednostjo, vrnjeno za vašo trgovino, nato pa prikaže rezultate v zagonu poteka dela. Za lažje razumevanje polj in vrednosti, ki so na voljo za določanje pogojev, si preberite, kako uporabiti predogled podatkov trgovine.

Več informacij o razumevanju osnov pogojev.

Vrste podatkov, ki se uporabljajo z aplikacijo Flow

Ko nastavite pogoj, izberete merilo iz polj, ki so na voljo v vmesniku Admin API, aplikacija Flow pa ga ovrednoti glede na vrednost, vrnjeno za vašo trgovino.

Aplikacija Flow podpira naslednje vrste podatkov:

  • Float: Vrednosti float so števila z decimalno vrednostjo. Na primer 4,25.
  • Integer: Vrednosti integer so cela števila, ki nimajo decimalne vrednosti. Na primer 42.
  • Date: Vrednosti datuma so številčna predstavitev datuma. Na primer 01012021.
  • String: Vrednosti niza so besedilo. Pri primerjavah, ki uporabljajo vrednosti nizov, se ne razlikuje med velikimi in malimi črkami.
  • Boolean: Logične vrednosti (boolean) so resnične (true) ali neresnične (false).
  • Enum: Vrednosti enum so nabori podatkov, ki omogočajo, da je spremenljivka nabor vnaprej določenih konstant.

Logični operatorji

Logični operatorji določajo, kako se uporabi vaš pogoj. Pogoji lahko preverijo preproste lastnosti, na primer, ali je znesek naročila nad določenim zneskom ali ali stranka sprejema trženje. Logični operatorji lahko preverjajo tudi bolj zapletene lastnosti.

Operatorji so lahko operatorji na ravni polja, kot sta je enako ali ni enako, ali operatorji seznama, kot sta vsaj eden od ali nobeden od.

Operatorji na ravni polja

Operatorji na ravni polja se uporabljajo za primerjavo 2 vrednosti. Aplikacija Flow lahko uporabi naslednje operatorje:

Seznam operatorjev na ravni polja, ki so na voljo v storitvi Shopify Flow.
OperatorOpisPrimer
Je enako Primerja vrednosti in preveri, ali so enake. Vrednost za order.currentTotalDiscountsSet.shopMoney.amount je pridobljena iz podatkov vaše trgovine in primerjana z drugo vrednostjo, 50.

Če so skupni popusti naročila natančno 50, je pogoj izpolnjen.
Ni enako Primerja vrednosti in preveri, ali niso enake. Vrednost za order.currentTotalDiscountsSet.shopMoney.amount je pridobljena iz podatkov vaše trgovine in primerjana z drugo vrednostjo, 50.

Če skupni popusti naročila niso natančno 50, je pogoj izpolnjen.
Je večje kot in Je večje ali enako kot Primerja vrednosti in preveri, ali je prva vrednost večja kot oziroma večja ali enaka kot druga vrednost. Vrednost za order.currentTotalDiscountsSet.shopMoney.amount je pridobljena iz podatkov vaše trgovine in primerjana z drugo vrednostjo, 50.

Če je vrednost skupnih popustov naročila 137, je pogoj izpolnjen, saj je 137 več kot 50.
Manj kot in Manj kot ali enako Primerja vrednosti in preveri, ali je prva vrednost manjša od druge vrednosti oziroma manjša ali enaka drugi vrednosti. Vrednost za order.currentTotalDiscountsSet.shopMoney.amount je pridobljena iz podatkov vaše trgovine in primerjana z drugo vrednostjo, 50.

Če so skupni popusti naročila 47, je pogoj izpolnjen, saj je 47 manjše ali enako 50.
Vsaj eden od Preveri, ali je polje enako kateri koli vrednosti na podanem seznamu. Vrednosti je treba vnesti posamično in pritisniti tipko Enter (podobno kot pri oznakah). Če to možnost uporabite za prazen seznam, je rezultat preverjanja neresničen (false). Vrednost za order.lineitem.product.title se primerja z: pineapple, guava, kiwi.

Če je ime izdelka postavke guava, je pogoj izpolnjen, saj je »guava« na seznamu, ki ste ga navedli.
Nobeden od Preveri, ali polje ni enako nobeni od vrednosti na podanem seznamu. Vrednost za order.lineitem.product.title se primerja z: pineapple, guava, kiwi.

Če je ime izdelka postavke raspberry, je pogoj izpolnjen, saj »raspberry« ni na seznamu, ki ste ga navedli.
Vključuje Primerja vrednosti in preveri, ali kateri koli vnos prve vrednosti vključuje podatke iz vnosa druge vrednosti. Vrednost za order.lineitem.product.title se primerja z: berry.

Če je ime izdelka postavke strawberry, je pogoj izpolnjen, saj je »berry« vključeno v »strawberry«.
Ne vključuje Primerja vrednosti in preveri, ali kateri koli vnos prve vrednosti ne vključuje podatkov iz vnosa druge vrednosti. Vrednost za order.lineitem.product.title se primerja z: berry.

Če je ime izdelka postavke apple, je pogoj resničen, saj »berry« ni vključeno v »apple«.
Se začne z Primerja vrednosti in preveri, ali se prva vrednost začne s podatki v drugi vrednosti. Vrednost za order.shippingAddress.country se primerja z: United.

Če je država v naslovu za dostavo naročila United Kingdom, je pogoj resničen, saj se »United Kingdom« začne z »United«.
Se ne začne z Primerja vrednosti in preveri, ali se prva vrednost ne začne s podatki v drugi vrednosti. Vrednost za order.shippingAddress.country se primerja z: United.

Če je država v naslovu za dostavo naročila Canada, je pogoj resničen, saj se »United Kingdom« ne začne s »Canada«.
Se konča z Primerja vrednosti in preveri, ali se prva vrednost konča s podatki v drugi vrednosti. Vrednost za order.lineitems.product.title se primerja s: pie.

Če je ime izdelka postavke key lime pie, je pogoj resničen, saj se »key lime pie« konča s »pie«.
Se ne konča z Primerja vrednosti in preveri, ali se prva vrednost ne konča s podatki v drugi vrednosti. Vrednost za order.lineitems.product.title se primerja s: pie.

Če je ime izdelka postavke chocolate cake, je pogoj resničen, saj se »chocolate cake« ne konča s »pie«.

Operatorji za ničelne (null) ali prazne (empty) vrednosti

Seznam operatorjev za ničelne (null) in prazne (empty) vrednosti v pogojih Shopify Flow.
OperatorOpisPogoj za resnično/neresnično
Je prazno ali ne obstajaPreveri, ali je polje prazno (nima vrednosti) ali ne obstaja (je null). Vrne true, ko je polje prazno ali null, in false, če je polje prisotno.
Ni prazno in obstajaPreveri, ali je polje prisotno in ni prazno oziroma null. Vrne true, ko polje ni prazno in obstaja, ter false, ko je prazno.

Operatorji seznamov

Operatorji seznamov se združijo z operatorji na ravni polj, kar vam omogoča preverjanje pogojev za podatke, ki so vključeni na seznamih.

Kot v primeru »vsaj eden«, boste morda želeli preveriti, ali naročilo vsebuje določen izdelek (ki se nahaja v order.lineItems) z določeno oznako (seznam pod order.lineItems.product.tags). V obeh primerih se uporablja operator seznama vsaj eden od.

Flow nudi tri operatorje za delo s seznami: Vsaj eden od, Nobeden od in Vsi od.

Tabela operatorjev seznamov v pogojih za Shopify Flow.
OperatorOpisPrimer uporabe
Vsaj eden odPreveri, ali se kateri koli element na seznamu ujema z določenim pogojem.

Vrne true, če se ujema kateri koli element na seznamu. Če je seznam prazen ali se ne ujema noben element, vrne false.
Preverite, ali naročilo vsebuje izdelek z določeno oznako z uporabo At least one of order line items.product.tags is equal to tagname.
Nobeden odPreveri, ali se z določenim pogojem ne ujema noben element na seznamu.

Vrne true, če se z določenim pogojem ne ujema noben element. Če je seznam prazen, vrne true.
Preverite, ali izdelek nima oznake presale, tako da uporabite None of product tags is equal to presale.

Pogosta napaka je poskus negacije operatorja z uporabo is not equal to. Zaradi te dvojne negacije, None of product tags is not equal to presale, je pogoj težko razumljiv in neveljaven.
VsiPreveri, ali se vsi elementi na seznamu ujemajo z določenim pogojem.

Vrne true, če se s pogojem ujema vsak element na seznamu.
Preverite, ali imajo vse postavke v naročilu določenega prodajalca izdelkov z imenom Acme, z uporabo All of order line items have a product.vendor equal to Acme.

Razvrščanje pogojev

Ustvarite lahko poteke dela, ki imajo več pogojev, od katerih lahko vsak privede do drugačnih dejanj. Vrstni red pogojev je pomemben. Preverjanje pogojev se začne na začetku poteka dela in sistematično nadaljuje skozi vsak pogoj. Preverjanje se ustavi, ko je pogoj izpolnjen.

Ta primer uporablja več pogojev za preverjanje, ali je stranka upravičena do programa zvestobe na podlagi skupnega zneska, ki ga je porabila v trgovini. Pogoji se preverijo v vrstnem redu, v katerem so prikazani:

  1. Če je skupna cena višja od 1.000 USD in stranka soglaša s prejemanjem trženjskih sporočil, ji dodajte oznako Gold.
  2. Če je skupna cena nižja od 1.000 USD in višja od 500 USD ter stranka soglaša s prejemanjem trženjskih sporočil, ji dodajte oznako Silver.
  3. Če je skupna cena nižja od 500 USD in višja od 200 USD ter stranka soglaša s prejemanjem trženjskih sporočil, ji dodajte oznako Bronze.

Primer poteka dela, ki preveri skupen znesek porabe stranke in doda oznake

Združevanje več meril v enem pogoju

Pri ustvarjanju pogoja lahko nastavite več meril. Izberete lahko, kako naj se ta ločena merila združijo, da se določi, ali je celotni pogoj izpolnjen (true) ali ne (false).

Če so izpolnjena vsa merila

Z izbiro možnosti AND bo rezultat resničen samo, če je vsako merilo, ki ga nastavite, resnično.

Ustvarite na primer potek dela, ki označi stranke v Kanadi, ki za posamezno naročilo porabijo več kot 500 USD.

Primer poteka dela, ki uporablja pogoj in (AND)

Potek dela označi stranko le, če se ta nahaja v Kanadi in pri naročilu porabi več kot 500 USD. Če katerikoli od teh pogojev ni resničen, stranka ne prejme oznake.

Če je izpolnjeno katero koli merilo

Z izbiro možnosti OR bo rezultat resničen, če je katero koli merilo, ki ga nastavite, resnično.

Ustvarite na primer potek dela, ki označi naročila s priporočilom tveganja Cancel (Preklic) ali Investigate (Preiskava). Dokler je vsaj eden od teh pogojev resničen, se naročilo označi.

Primer poteka dela, ki uporablja pogoj ali (OR)

Statični in dinamični podatki v pogojih

Običajno je druga vrednost v pogoju statična, ročno vnesena vrednost (kot na primer product.title == "your title"). Ta vrednost ostane enaka ob vsakem zagonu poteka dela.

Če polje za drugo vrednost prikazuje ikono Uredi kodo, lahko uporabite tudi dinamične vrednosti. Dinamične vrednosti se pridobijo iz podatkov vaše trgovine ob vsakem zagonu poteka dela. Če želite uporabiti dinamično vrednost, kliknite ikono Uredi kodo in izberite vrednost, s katero želite izvesti preverjanje. Dinamične vrednosti niso na voljo za vsa polja.

Ustvarite na primer potek dela, ki označi naročilo, če se država v naslovu za izdajo računa ujema z državo v naslovu za dostavo.

Primer poteka dela, ki označi naročilo z uporabo podatkov na desni strani (RHS) za preverjanje, ali sta država za izdajo računa in država za dostavo stranke enaki.

V tem primeru se prva in druga vrednost pridobita iz podatkov vaše trgovine, namesto da bi ročno določili statični niz za preverjanje druge vrednosti. Če je država v naslovu za izdajo računa, ki ga je navedla stranka, enaka državi v naslovu za dostavo, potem je pogoj resničen in naročilo prejme oznako.

Občasno boste morda morali uporabiti dinamične podatke, ki so napačne vrste. Morda boste na primer morali primerjati številko, shranjeno kot niz, z drugo številko. V tem primeru lahko z možnostjo Run code (Izvedi kodo) pretvorite podatke v pravo vrsto.

Predloge

Večina predlog v knjižnici predlog vsebuje pogoj.

Primeri pogojev

Preverite, ali se vsaj en element na seznamu ujema s pogojem

Ta primer prikazuje tipičen pogoj, ki preveri, ali se vsaj en element na seznamu ujema z določeno vrednostjo.

V tem primeru pogoj preveri, ali ima eden od izdelkov v naročilu oznako presale. Za izgradnjo tega pogoja bi izbrali order / lineItems / product / tags. Flow privzeto izbere at least one of (vsaj enega od) kot logičnega operaterja:

Primer konfiguracijske plošče pogoja, ki prikazuje preverjanje za vsaj eno oznako izdelka.

Deli z at least one of so operaterji seznamov in se uporabljajo za upravljanje ujemanja med več elementi na seznamu. Del z is equal to je operater na ravni polja, ki določa, ali se posamezni element na seznamu ujema.

Preverite, ali noben element na seznamu ne ustreza pogoju

Ta primer prikazuje tipičen pogoj, ki preveri, ali noben od elementov na seznamu ne ustreza določeni vrednosti. Ena od pogostih težav, ki jo je treba upoštevati, je, da so seznami lahko prazni. Ko je seznam prazen, pogoj obravnava operater seznama (v tem primeru none of).

V tem primeru pogoj preveri, ali nobena od oznak izdelka ni enaka »foo«:

Primer konfiguracijske plošče pogoja, ki prikazuje preverjanje, ali za oznako izdelka ni zadetkov.

Pogoj bo vrnil vrednost true, če (1) ni nobenih oznak izdelka ali (2) nobena od oznak ni foo. V nasprotnem primeru bo vrnil vrednost false.

Preverjanje, ali element na seznamu ustreza več merilom

Ta primer prikazuje tipičen pogoj, ki preveri, ali vsaj en element na seznamu ustreza dvema ločenima meriloma.

V tem primeru pogoj preveri, ali ima eden od izdelkov v naročilu oznako izdelka presale in vrsto izdelka (productType) clothing.

Primer konfiguracijske plošče pogoja, ki prikazuje preverjanje za vsaj eno oznako izdelka in vrsto izdelka (productType).

Če želite ustvariti ta pogoj, naredite naslednje:

  1. Za prvo merilo izberite order / lineItems / product / tags.
  2. Na seznamu lineItems izberite Add criteria for same item. Opomba: izbira napačnega elementa s seznama na tem mestu je pogosta napaka.
  3. Izberite lineItems_item kot predmet na najvišji ravni in nato izberite product / productType` za drugo merilo. Opomba: izbira napačnega predmeta na tem mestu je prav tako pogosta napaka.
  4. Izberite AND, da združite obe merili.
  5. Za merili vnesite vrednosti presale in clothing.