Uslovi u aplikaciji Shopify Flow

Uslovi nastavljaju tok posla kada su ispunjena određena pravila, kao što je početak iskaza „ako–onda“. Kada postavite uslov, birate kriterijume iz polja u API-ju GraphQL Admin API (kao što je product.title), logički operator (kao što je jednako sa) i vrednost sa kojom se upoređuje (kao što je Blue jeans). Kada tok posla proceni uslov, aplikacija Flow proverava vrednost definisanu u toku posla u odnosu na vrednost vraćenu za vašu prodavnicu, a zatim prikazuje rezultate u izvršavanju toka posla. Da biste bolje razumeli polja i vrednosti dostupne za definisanje uslova, saznajte kako da pregledate podatke prodavnice.

Saznajte više o razumevanju osnova uslova.

Tipovi podataka koji se koriste u aplikaciji Flow

Kada postavite uslov, birate kriterijum iz polja dostupnih u API-ju Admin API i aplikacija Flow procenjuje na osnovu vrednosti vraćene za vašu prodavnicu.

Aplikacija Flow podržava sledeće vrste podataka:

  • Float: Float vrednosti su brojevi sa decimalnim iznosom. Na primer, 4,25.
  • Integer: Integer vrednosti su celi brojevi koji nemaju decimalni iznos. Na primer, 42.
  • Date: Date vrednosti predstavljaju numerički prikaz datuma. Na primer, 01012021.
  • String: String vrednosti predstavljaju tekst. Poređenja koja koriste string vrednosti ne prave razliku između malih i velikih slova.
  • Boolean: Boolean vrednosti su tačno (true) ili netačno (false).
  • Enum: Enum vrednosti su skupovi podataka koji omogućavaju da promenljiva bude skup unapred definisanih konstanti.

Logički operatori

Logički operatori definišu način primene vašeg uslova. Uslovi mogu da proveravaju jednostavna svojstva, kao što je to da li je ukupan iznos porudžbine iznad određenog iznosa ili da li kupac prihvata marketing. Logički operatori takođe mogu da proveravaju složenija svojstva.

Operatori mogu biti operatori na nivou polja, kao što su je jednako ili nije jednako, ili operatori liste, kao što su barem jedno od ili nijedno od.

Operatori na nivou polja

Operatori na nivou polja se koriste za upoređivanje 2 vrednosti. Flow može da koristi sledeće operatore:

Lista operatora na nivou polja dostupnih u aplikaciji Shopify Flow.
OperatorOpisPrimer
Je jednako Upoređuje vrednosti kako bi se proverilo da li su iste. Vrednost za order.currentTotalDiscountsSet.shopMoney.amount se preuzima iz podataka vaše prodavnice i upoređuje sa drugom vrednošću, 50.

Ako su ukupni popusti na porudžbinu tačno 50, onda je uslov tačan.
Nije jednako Upoređuje vrednosti kako bi se proverilo da li se razlikuju. Vrednost za order.currentTotalDiscountsSet.shopMoney.amount se preuzima iz podataka vaše prodavnice i upoređuje sa drugom vrednošću, 50.

Ako ukupni popusti porudžbine nisu tačno 50, onda je uslov tačan.
Veće od i Veće ili jednako Upoređuje vrednosti kako bi se proverilo da li je prva vrednost veća od druge vrednosti, ili veća ili jednaka njoj. Vrednost za order.currentTotalDiscountsSet.shopMoney.amount se preuzima iz podataka vaše prodavnice i upoređuje sa drugom vrednošću, 50.

Ako je vrednost ukupnih popusta porudžbine 137, onda je uslov tačan, jer je 137 veće od 50.
Manje od i Manje ili jednako Upoređuje vrednosti kako bi se proverilo da li je prva vrednost manja od druge vrednosti, ili manja ili jednaka njoj. Vrednost za order.currentTotalDiscountsSet.shopMoney.amount se preuzima iz podataka vaše prodavnice i upoređuje sa drugom vrednošću, 50.

Ako su ukupni popusti porudžbine 47, onda je uslov tačan, jer je 47 manje ili jednako 50.
Barem jedno od Proverava da li je polje jednako bilo kojoj vrednosti iz navedene liste. Vrednosti moraju biti unete pojedinačno uz pritisak na taster Enter nakon svake (slično kao kod oznaka). Upotreba na praznom nizu rezultira netačnom evaluacijom. Vrednost za order.lineitem.product.title se upoređuje sa: pineapple, guava, kiwi.

Ako je naziv proizvoda stavke guava, onda je uslov tačan, jer se „guava“ nalazi na listi koju ste naveli.
Nijedno od Proverava da li je polje različito od svih vrednosti na navedenoj listi. Vrednost za order.lineitem.product.title se upoređuje sa: pineapple, guava, kiwi.

Ako je naziv proizvoda stavke raspberry, onda je uslov tačan, jer se „raspberry“ ne nalazi na listi koju ste naveli.
Sadrži Upoređuje vrednosti kako bi se proverilo da li neka od prvih unetih vrednosti sadrži podatke iz druge unete vrednosti. Vrednost za order.lineitem.product.title se upoređuje sa: berry.

Ako je naziv proizvoda stavke strawberry, onda je uslov tačan, jer „strawberry“ sadrži „berry“.
Ne sadrži Upoređuje vrednosti kako bi se proverilo da li prva uneta vrednost ne sadrži podatke iz druge unete vrednosti. Vrednost za order.lineitem.product.title se upoređuje sa: berry.

Ako je naziv proizvoda stavke apple, onda je uslov tačan, jer „apple“ ne sadrži „berry“.
Počinje sa Upoređuje vrednosti kako bi se proverilo da li prva vrednost počinje podacima iz druge vrednosti. Vrednost za order.shippingAddress.country se upoređuje sa: United.

Ako je zemlja za adresu za dostavu porudžbine United Kingdom, onda je uslov tačan, jer „United Kingdom“ počinje sa „United“.
Ne počinje sa Upoređuje vrednosti kako bi se proverilo da prva vrednost ne počinje podacima iz druge vrednosti. Vrednost za order.shippingAddress.country se upoređuje sa: United.

Ako je zemlja za adresu za dostavu porudžbine Canada, onda je uslov tačan, jer „United Kingdom“ ne počinje sa „Canada“.
Završava se sa Upoređuje vrednosti kako bi se proverilo da li se prva vrednost završava podacima iz druge vrednosti. Vrednost za order.lineitems.product.title se upoređuje sa: pie.

Ako je naziv proizvoda stavke key lime pie, onda je uslov tačan, jer se „key lime pie“ završava sa „pie“.
Ne završava se sa Upoređuje vrednosti kako bi se proverilo da se prva vrednost ne završava podacima iz druge vrednosti. Vrednost za order.lineitems.product.title se upoređuje sa: pie.

Ako je naziv proizvoda stavke chocolate cake, onda je uslov tačan, jer se „chocolate cake“ ne završava sa „pie“.

Nulti (Null) ili prazni operatori

Lista nultih i praznih operatora u uslovima za Shopify Flow.
OperatorOpisUslov tačno/netačno
Prazno je ili ne postojiProverava da li je polje prazno (nema vrednost) ili ne postoji (vrednost je null). Vraća true kada je polje prazno ili null i false ako je prisutno.
Nije prazno i postojiProverava da li je polje prisutno i nije prazno ili null. Vraća true kada polje nije prazno i postoji, a false kada je prazno.

Operatori liste

Operatori liste se kombinuju sa operatorima na nivou polja da bi vam omogućili proveru uslova u podacima unutar listi.

Kao u primeru „barem jedan“, možda ćete želeti da proverite da li porudžbina sadrži određeni proizvod (koji se nalazi u order.lineItems) sa određenom oznakom (lista u order.lineItems.product.tags). U oba slučaja, primer koristi operator liste at least one of.

Shopify Flow pruža tri operatora za rad sa listama: At least one of (Barem jedan od), None of (Nijedan od) i All of (Svi od).

Tabela operatora liste u uslovima za Shopify Flow.
OperatorOpisPrimeri korišćenja
Barem jedno odProverava da li se bilo koja stavka na listi podudara sa navedenim uslovom.

Vraća true ako se podudara bilo koja stavka na listi. Ako je lista prazna ili se nijedna stavka ne podudara, vraća false.
Proverite da li porudžbina sadrži proizvod sa određenom oznakom koristeći uslov At least one of order line items.product.tags is equal to tagname.
None ofProverava da se nijedna stavka na listi ne podudara sa navedenim uslovom.

Vraća true ako se nijedna stavka ne podudara sa uslovom. Ako je lista prazna, vraća true.
Proverite da li proizvod nema oznaku presale koristeći Nijedna od product tags nije jednaka presale.

Česta greška je pokušaj negiranja operatora korišćenjem opcije is not equal to (nije jednako). Korišćenjem ove logičke dvostruke negacije, Nijedna od product tags nije nejednaka presale, uslov postaje i teško razumljiv i nevažeći.
All ofProverava da li se sve stavke na listi podudaraju sa navedenim uslovom.

Vraća true ako se svaka stavka na listi podudara sa uslovom.
Proverite da li sve stavke u porudžbini imaju određenog dobavljača proizvoda pod nazivom Acme koristeći All of order line items have a product.vendor equal to Acme.

Redosled uslova

Možete da kreirate tokove posla koji imaju više uslova, od kojih svaki može rezultirati različitim radnjama. Redosled uslova je bitan. Provera uslova počinje na početku toka posla i sistematično se nastavlja kroz svaki uslov. Provera se zaustavlja kada je uslov ispunjen.

Ovaj primer koristi više uslova da proveri da li kupac ispunjava uslove za program lojalnosti na osnovu ukupnog iznosa koji je potrošio u prodavnici. Uslovi se proveravaju onim redosledom kojim su prikazani:

  1. Ako je ukupna cena veća od 1000 USD i kupac pristane da prima marketinške poruke, dodajte mu oznaku Gold.
  2. Ako je ukupna cena manja od 1000 USD, ali veća od 500 USD i kupac pristane da prima marketinške poruke, dodajte mu oznaku Silver.
  3. Ako je ukupna cena manja od 500 USD, ali veća od 200 USD i kupac pristane da prima marketinške poruke, dodajte mu oznaku Bronze.

Primer toka posla koji proverava ukupan iznos potrošnje kupca i dodaje oznake

Kombinovanje više kriterijuma u jedan uslov

Pri kreiranju uslova možete da postavite nekoliko kriterijuma. Možete da izaberete kako bi ovi odvojeni kriterijumi trebalo da se kombinuju da bi se odredilo da li je celokupan uslov tačan (true) ili netačan (false).

Ako su svi kriterijumi ispunjeni

Izborom opcije AND dobija se rezultat tačno (true) samo ako je svaki kriterijum koji ste postavili tačan.

Na primer, kreirate tok posla za označavanje kupaca koji se nalaze u Kanadi i potroše više od 500 USD na jednu porudžbinu.

Primer toka posla koji koristi uslov AND

Ovaj tok posla označava kupca samo ako se kupac nalazi u Kanadi i potroši više od 500 USD u porudžbini. Ako je bilo koji od ovih uslova netačan, kupac neće biti označen.

Ako je ispunjen bilo koji kriterijum

Izborom opcije OR dobija se rezultat tačno (true) ako je barem jedan od kriterijuma koje ste postavili tačan.

Na primer, kreirate tok posla za označavanje porudžbina sa preporukom o riziku Cancel (Otkaži) ili Investigate (Istraži). Dokle god je jedan od tih uslova tačan, porudžbina je označena.

Primer toka posla koji koristi uslov OR

Statički i dinamički podaci u uslovima

Obično je druga vrednost u uslovu statička, ručno uneta vrednost (kao što je product.title == "vaš naslov"). Ova vrednost ostaje ista pri svakom izvršavanju toka posla.

Takođe možete da koristite dinamičke vrednosti ako polje za drugu vrednost prikazuje ikonicu Uredi kôd. Dinamičke vrednosti se preuzimaju iz podataka vaše prodavnice pri svakom izvršavanju toka posla. Da biste koristili dinamičku vrednost, kliknite na ikonicu Uredi kôd i izaberite vrednost koju želite da proverite. Dinamičke vrednosti nisu dostupne za sva polja.

Na primer, kreirate tok posla koji označava porudžbinu ako se zemlja na adresi za naplatu na porudžbini podudara sa zemljom na adresi za dostavu.

Primer toka posla koji označava porudžbinu koristeći RHS podatke za proveru da li su zemlja za naplatu i isporuku kupca iste.

U ovom primeru, i prva i druga vrednost se preuzimaju iz podataka vaše prodavnice, umesto ručnog navođenja statičkog stringa za drugu vrednost radi provere. Ako je zemlja na adresi za naplatu koju je naveo kupac ista kao i zemlja koju je kupac naveo na adresi za dostavu, onda je uslov ispunjen (true) i porudžbina se označava.

Ponekad će vam možda biti potrebno da koristite dinamičke podatke koji su pogrešnog tipa. Na primer, možda ćete morati da uporedite broj sačuvan kao string sa drugim brojem. U tom slučaju možete da koristite opciju Run code da biste konvertovali podatke u ispravan tip.

Šabloni

Većina šablona u biblioteci šablona sadrži uslov.

Primeri uslova

Proverite da li barem jedna stavka na listi ispunjava uslov

Ovaj primer prikazuje tipičan uslov koji proverava da li se barem jedna stavka na listi podudara s određenom vrednošću.

U ovom slučaju, uslov proverava da li jedan od proizvoda u porudžbini ima oznaku presale. Da biste napravili ovaj uslov, treba da izaberete order / lineItems / product / tags. Podrazumevano, Flow bira barem jedan od kao logički operator:

Primer konfiguracionog panela uslova, koji prikazuje proveru za barem jednu oznaku proizvoda.

Delovi sa barem jedan od su operatori liste i koriste se za upravljanje podudaranjem kroz više stavki liste. Deo sa je jednako je operator na nivou polja koji određuje da li se podudara pojedinačna stavka liste.

Proverite da li nijedna od stavki na listi ne ispunjava uslov

Ovaj primer prikazuje tipičan uslov koji proverava da li se nijedna od stavki na listi ne podudara s određenom vrednošću. Čest problem koji treba uzeti u obzir je to da liste mogu biti prazne. Kada je lista prazna, uslov će obraditi operator liste (u ovom slučaju nijedan od).

U ovom slučaju, uslov proverava da li nijedna od oznaka proizvoda nije jednaka vrednosti foo:

Primer konfiguracionog panela uslova, koji prikazuje proveru da ne postoji određena oznaka proizvoda.

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

Proverite da li stavka na listi ispunjava više kriterijuma

Ovaj primer prikazuje tipičan uslov koji proverava da li barem jedna stavka na listi ispunjava dva različita kriterijuma.

U ovom slučaju, uslov proverava da li jedan od proizvoda u porudžbini ima oznaku presale i da li ima productType sa vrednošću clothing.

Primer konfiguracionog panela uslova, koji prikazuje proveru za barem jednu oznaku proizvoda i jedan productType.

Da biste napravili ovaj uslov, treba da:

  1. Izaberete order / lineItems / product / tags za prvi kriterijum.
  2. Izaberete Add criteria for same item na listi lineItems. Napomena: izbor pogrešne stavke liste na ovom mestu je česta greška.
  3. Izaberete lineItems_item kao objekat najvišeg nivoa, a zatim product / productType` za drugi kriterijum. Napomena: izbor pogrešnog objekta ovde je takođe česta greška.
  4. Izaberete AND da biste kombinovali ova dva kriterijuma.
  5. Unesete vrednosti presale i clothing za ova dva kriterijuma.