Uvjeti u aplikaciji Shopify Flow

Uvjeti nastavljaju tijek rada kada se ispune određena pravila, poput početka izjave „ako-onda” (if-then). Kada postavljate uvjet, birate kriterije iz polja u API-ju GraphQL Admin API (poput product.title), logičkog operatora (poput equal to) te vrijednosti za usporedbu (poput Blue jeans). Kada tijek rada procjenjuje uvjet, Flow provjerava podudara li se vrijednost definirana u tijeku rada s vrijednošću vraćenom za vašu trgovinu te rezultate prikazuje u pokretanju tijeka rada. Za bolje razumijevanje polja i vrijednosti dostupnih za definiranje uvjeta saznajte kako pregledati podatke o trgovini.

Saznajte više o osnovama uvjeta.

Vrste podataka koje se upotrebljavaju u aplikaciji Flow

Kada postavljate uvjet, odabirete kriterije iz polja dostupnih u API-ju Admin API, a Flow procjenjuje vrijednost vraćenu za vašu trgovinu.

Flow podržava sljedeće vrste podataka:

  • Broj s pomičnim zarezom (Float): Vrijednosti s pomičnim zarezom su brojevi s decimalama. Na primjer, 4,25.
  • Cijeli broj (Integer): Cjelobrojne su vrijednosti cijeli brojevi koji nemaju decimale. Na primjer, 42.
  • Datum (Date): Vrijednosti datuma numerički su prikaz datuma. Na primjer, 01012021.
  • Niz (String): Vrijednosti su niza tekstualne. Pri usporedbi vrijednosti niza ne razlikuju se velika i mala slova.
  • Booleov tip (Boolean): Booleove vrijednosti su „točno” (true) ili „netočno” (false).
  • Numeriranje (Enum): Vrijednosti enuma su skupovi podataka koji omogućuju da varijabla bude skup unaprijed definiranih konstanti.

Logički operatori

Logički operatori definiraju kako se primjenjuje vaš uvjet. Uvjetima se mogu provjeriti jednostavna svojstva, primjerice premašuje li ukupni iznos narudžbe određeni iznos ili prihvaća li korisnik marketing. Logičkim se operatorima također mogu provjeriti i složenija svojstva.

Operatori mogu biti operatori na razini polja, poput jednako (equal to) ili nije jednako (not equal to), ili operatori popisa, poput barem jedan od (at least one of) ili nijedan od (none of).

Operatori na razini polja

Operatori na razini polja upotrebljavaju se za usporedbu 2 vrijednosti. Flow može upotrebljavati sljedeće operatore:

Popis operatora na razini polja dostupnih u aplikaciji Shopify Flow.
OperatorOpisPrimjer
Jednako Uspoređuje vrijednosti kako bi se provjerilo jesu li jednake. Vrijednost za order.currentTotalDiscountsSet.shopMoney.amount dohvaća se iz podataka vaše trgovine i uspoređuje s drugom vrijednosti, 50.

Ako su ukupni popusti narudžbe točno 50, uvjet je ispunjen.
Nije jednako Uspoređuje vrijednosti kako bi se provjerilo jesu li različite. Vrijednost za order.currentTotalDiscountsSet.shopMoney.amount dohvaća se iz podataka vaše trgovine i uspoređuje s drugom vrijednosti, 50.

Ako ukupni popusti narudžbe nisu točno 50, uvjet je ispunjen.
Veće od i Veće ili jednako Uspoređuje vrijednosti kako bi se provjerilo je li prva vrijednost veća od, odnosno veća ili jednaka drugoj vrijednosti. Vrijednost za order.currentTotalDiscountsSet.shopMoney.amount dohvaća se iz podataka vaše trgovine i uspoređuje s drugom vrijednosti, 50.

Ako je vrijednost ukupnih popusta narudžbe 137, uvjet je ispunjen jer je 137 veće od 50.
Manje od i Manje ili jednako Uspoređuje vrijednosti kako bi se provjerilo je li prva vrijednost manja od druge, odnosno je li manja ili jednaka drugoj vrijednosti. Vrijednost za order.currentTotalDiscountsSet.shopMoney.amount dohvaća se iz podataka vaše trgovine i uspoređuje s drugom vrijednosti, 50.

Ako su ukupni popusti narudžbe 47, uvjet je ispunjen jer je 47 manje ili jednako 50.
Barem jedan od Provjerava je li polje jednako bilo kojoj vrijednosti na navedenom popisu. Vrijednosti se moraju unijeti pojedinačno nakon čega treba pritisnuti tipku Enter (slično kao kod oznaka). Korištenje na praznom nizu vraća rezultat netočno (false). Vrijednost za order.lineitem.product.title uspoređuje se s: pineapple, guava, kiwi.

Ako je naziv proizvoda linije artikla guava, uvjet je ispunjen jer se riječ „guava” nalazi na popisu koji ste naveli.
Nijedan od Provjerava da polje nije jednako nijednoj vrijednosti s navedenog popisa. Vrijednost za order.lineitem.product.title uspoređuje se s: pineapple, guava, kiwi.

Ako je naziv proizvoda linije artikla raspberry, uvjet je ispunjen jer se riječ „raspberry” ne nalazi na popisu koji ste naveli.
Uključuje Uspoređuje vrijednosti kako bi se provjerilo uključuje li prva unesena vrijednost podatke iz druge unesene vrijednosti. Vrijednost za order.lineitem.product.title uspoređuje se s: berry.

Ako je naziv proizvoda linije artikla strawberry, uvjet je ispunjen jer je „berry” dio riječi „strawberry”.
Ne uključuje Uspoređuje vrijednosti kako bi se provjerilo da prva unesena vrijednost ne uključuje podatke iz druge unesene vrijednosti. Vrijednost za order.lineitem.product.title uspoređuje se s: berry.

Ako je naziv proizvoda u liniji artikla apple, uvjet je istinit jer „berry” nije uključeno u „apple”.
Započinje s Uspoređuje vrijednosti kako bi se provjerilo započinje li prva vrijednost s podacima iz druge vrijednosti. Vrijednost za order.shippingAddress.country uspoređuje se s: United.

Ako je zemlja u adresi za dostavu narudžbe United Kingdom, uvjet je istinit jer „United Kingdom” počinje s „United”.
Ne započinje s Uspoređuje vrijednosti kako bi se provjerilo da prva vrijednost ne započinje s podacima iz druge vrijednosti. Vrijednost za order.shippingAddress.country uspoređuje se s: United.

Ako je zemlja u adresi za dostavu narudžbe Canada, uvjet je istinit jer „United Kingdom” ne počinje s „Canada”.
Završava s Uspoređuje vrijednosti kako bi se provjerilo završava li prva vrijednost s podacima iz druge vrijednosti. Vrijednost za order.lineitems.product.title uspoređuje se s: pie.

Ako je naziv proizvoda u liniji artikla key lime pie, uvjet je istinit jer „key lime pie” završava s „pie”.
Ne završava s Uspoređuje vrijednosti kako bi se provjerilo da prva vrijednost ne završava s podacima iz druge vrijednosti. Vrijednost za order.lineitems.product.title uspoređuje se s: pie.

Ako je naziv proizvoda u liniji artikla chocolate cake, uvjet je istinit jer „chocolate cake” ne završava s „pie”.

Operatori za null i prazne vrijednosti

Popis operatora za null i prazne vrijednosti u uvjetima za Shopify Flow.
OperatorOpisUvjet točno/netočno
Prazno je ili ne postojiProvjerava je li polje prazno (nema vrijednost) ili ne postoji (vrijednost je null). Vraća točno kada je polje prazno ili je njegova vrijednost null, a netočno ako je prisutno.
Nije prazno i postojiProvjerava je li polje prisutno te nije prazno odnosno null. Vraća točno kada polje nije prazno i postoji, a netočno kada je prazno.

Operatori popisa

Operatori popisa kombiniraju se s operatorima na razini polja kako bi vam omogućili provjeru uvjeta za podatke uključene u popise.

Kao u primjeru „barem jedan od”, možda ćete htjeti provjeriti sadrži li narudžba određeni proizvod (koji se nalazi u order.lineItems) s određenom oznakom (popis pod order.lineItems.product.tags). U oba slučaja u primjeru se upotrebljava operator popisa barem jedan od.

Aplikacija Flow pruža tri operatora za rad s popisima: Barem jedan od, Nijedan od i Svi od.

Tablica operatora popisa u uvjetima za Shopify Flow.
OperatorOpisPrimjer upotrebe
Barem jedan odProvjerava odgovara li bilo koja stavka na popisu navedenom uvjetu.

Vraća true ako bilo koja stavka na popisu odgovara. Ako je popis prazan ili nijedna stavka ne odgovara, vraća false.
Provjerite sadrži li narudžba proizvod s određenom oznakom pomoću Barem jedan od order line items.product.tags jednak je tagname.
Nijedan odProvjerava da nijedna stavka na popisu ne odgovara navedenom uvjetu.

Vraća true ako nijedna stavka ne odgovara uvjetu. Ako je popis prazan, vraća true.
Provjerite nema li proizvod oznaku presale pomoću opcije None of product tags is equal to presale.

Česta je pogreška pokušaj negiranja operatora upotrebom opcije is not equal to. Upotrebom te dvostruke negacije, None of product tags is not equal to presale, uvjet postaje teško razumljiv i nevažeći.
Sve odProvjerava odgovaraju li sve stavke na popisu navedenom uvjetu.

Vraća true ako svaka stavka na popisu odgovara uvjetu.
Provjerite imaju li sve stavke u narudžbi određenog prodavatelja proizvoda pod nazivom Acme upotrebom opcije All of order line items have a product.vendor equal to Acme.

Redoslijed uvjeta

Možete izraditi tijekove rada koji imaju više uvjeta, od kojih svaki može rezultirati različitim radnjama. Redoslijed uvjeta je važan. Provjera uvjeta počinje na početku tijeka rada i sustavno prolazi kroz svaki uvjet. Provjera se zaustavlja kada je uvjet ispunjen.

Ovaj primjer upotrebljava više uvjeta kako bi se provjerilo ispunjava li korisnik uvjete za program vjernosti na temelju ukupnog iznosa koji je potrošio u trgovini. Uvjeti se provjeravaju redoslijedom kojim su prikazani:

  1. Ako je ukupna cijena veća od 1000 $ i korisnik pristane na primanje marketinških poruka, označite ga oznakom Gold.
  2. Ako je ukupna cijena manja od 1000 $, ali veća od 500 $ i korisnik pristane na primanje marketinških poruka, označite ga oznakom Silver.
  3. Ako je ukupna cijena manja od 500 $, ali veća od 200 $ i korisnik pristane na primanje marketinških poruka, označite ga oznakom Bronze.

Primjer tijeka rada koji provjerava ukupni iznos potrošnje korisnika i dodaje oznake

Kombiniranje više kriterija u jednom uvjetu

Pri izradi uvjeta možete postaviti nekoliko kriterija. Možete odabrati kako će se ovi zasebni kriteriji kombinirati kako bi se utvrdilo je li ukupni uvjet istinit ili lažan.

Ako su ispunjeni svi kriteriji

Odabir operatora AND rezultira potvrdnim odgovorom samo ako je svaki postavljeni kriterij istinit.

Na primjer, izradite tijek rada za označavanje korisnika koji se nalaze u Kanadi i potroše više od 500 $ na jednu narudžbu.

Primjer tijeka rada koji upotrebljava uvjet AND

Tijek rada označava korisnika samo ako se korisnik nalazi u Kanadi i potroši više od 500 $ u narudžbi. Ako je bilo koji od tih uvjeta lažan, korisnik se ne označava.

Ako je ispunjen bilo koji kriterij

Odabir operatora OR rezultira potvrdnim odgovorom ako je barem jedan od postavljenih kriterija istinit.

Na primjer, izradite tijek rada za označavanje narudžbi kod kojih je preporuka o rizičnosti Otkaži ili Istraži. Sve dok je barem jedan od tih uvjeta istinit, narudžba se označava.

Primjer tijeka rada koji upotrebljava uvjet OR

Statički i dinamički podaci u uvjetima

Druga vrijednost u uvjetu obično je statična, ručno unesena vrijednost (kao što je product.title == "your title"). Ova vrijednost ostaje ista pri svakom pokretanju tijeka rada.

Također možete upotrijebiti dinamičke vrijednosti ako polje za drugu vrijednost prikazuje ikonu Uredi kôd. Dinamičke vrijednosti povlače se iz podataka vaše trgovine pri svakom pokretanju tijeka rada. Za upotrebu dinamičke vrijednosti kliknite ikonu Uredi kôd i odaberite vrijednost u odnosu na koju želite izvršiti provjeru. Dinamičke vrijednosti nisu dostupne za sva polja.

Na primjer, izradite tijek rada koji označava narudžbu ako se zemlja u adresi za naplatu narudžbe podudara sa zemljom u adresi za dostavu.

Primjer tijeka rada koji označava narudžbu pomoću RHS podataka za provjeru podudaraju li se zemlja za naplatu i dostavu korisnika.

U ovom se primjeru i prva i druga vrijednost povlače iz podataka vaše trgovine, umjesto ručnog određivanja statičkog niza u odnosu na koji bi se provjeravala druga vrijednost. Ako je zemlja u adresi za naplatu koju je naveo korisnik jednaka zemlji koju je korisnik naveo u adresi za dostavu, uvjet je istinit i narudžba se označava.

Ponekad ćete možda trebati upotrijebiti dinamičke podatke pogrešne vrste. Na primjer, možda ćete trebati usporediti broj pohranjen kao niz s drugim brojem. U tom slučaju možete upotrijebiti opciju Pokreni kôd za konvertiranje podataka u ispravnu vrstu.

Predlošci

Većina predložaka u biblioteci predložaka sadrži uvjet.

Primjeri uvjeta

Provjera odgovara li barem jedna stavka na popisu uvjetu

Ovaj primjer prikazuje tipičan uvjet koji provjerava odgovara li barem jedna stavka na popisu određenoj vrijednosti.

U ovom slučaju uvjet provjerava ima li barem jedan od proizvoda u narudžbi oznaku presale. Da biste izradili ovaj uvjet, odabrali biste order / lineItems / product / tags. Prema zadanim postavkama aplikacija Flow odabire barem jedan od kao logički operator:

Primjer konfiguracijske ploče za uvjet, koji prikazuje provjeru za barem jednu oznaku proizvoda.

Dijelovi sa stavkom barem jedan od su operatori popisa i upotrebljavaju se za obradu podudaranja u više stavki na popisu. Dio je jednako je operator na razini polja koji utvrđuje podudara li se jedna stavka na popisu.

Provjera da nijedna stavka na popisu ne odgovara uvjetu

Ovaj primjer prikazuje tipičan uvjet koji provjerava da nijedna stavka na popisu ne odgovara određenoj vrijednosti. Jedan od čestih problema na koji treba paziti jest da popisi mogu biti prazni. Kada je popis prazan, uvjet će obraditi operator popisa (u ovom slučaju nijedan od).

U ovom slučaju uvjet provjerava da nijedna oznaka proizvoda nije jednaka foo:

Primjer konfiguracijske ploče za uvjet, koji prikazuje provjeru da nijedna oznaka proizvoda ne odgovara.

Uvjet će vratiti true ako (1) nema oznaka proizvoda ili (2) nijedna oznaka nije foo. U suprotnom će vratiti false.

Provjera podudara li se stavka na popisu s više kriterija

Ovaj primjer prikazuje tipičan uvjet kojim se provjerava podudara li se barem jedna stavka na popisu s dva zasebna kriterija.

U ovom slučaju uvjet provjerava ima li jedan od proizvoda u narudžbi oznaku presale i ima li atribut productType vrijednost clothing.

Primjer konfiguracijske ploče uvjeta koji prikazuje provjeru barem jedne oznake proizvoda i atributa productType.

Da biste izradili ovaj uvjet, učinite sljedeće:

  1. Za prvi kriterij odaberite order / lineItems / product / tags.
  2. Na popisu lineItems odaberite Add criteria for same item. Napomena: odabir pogrešne stavke popisa na ovom je mjestu česta pogreška.
  3. Odaberite lineItems_item kao objekt najviše razine, a zatim product / productType` za drugi kriterij. Napomena: odabir pogrešnog objekta na ovom je mjestu također česta pogreška.
  4. Odaberite AND kako biste kombinirali ta dva kriterija.
  5. Unesite vrijednosti presale i clothing za dva kriterija.