Sąlygos programėlėje „Shopify Flow“
Sąlygos tęsia darbo eigą, kai įvykdomos tam tikros taisyklės, pavyzdžiui, kaip teiginio „jei-tada“ pradžia. Kai nustatote sąlygą, pasirenkate kriterijus iš laukų, esančių GraphQL Admin API (pvz., product.title), loginį operatorių (pvz., equal to) ir reikšmę, su kuria reikia palyginti (pvz., Blue jeans). Kai darbo eiga įvertina sąlygą, „Flow“ palygina darbo eigoje apibrėžtą reikšmę su Jūsų parduotuvės grąžinta reikšme, o tada pateikia rezultatus darbo eigos vykdymo lange. Kad geriau suprastumėte laukus ir reikšmes, kuriuos galima naudoti sąlygoms apibrėžti, sužinokite, kaip peržiūrėti parduotuvės duomenis.
Sužinokite daugiau apie sąlygų pagrindus.
Šiame puslapyje
Duomenų tipai, naudojami su „Flow“
Kai nustatote sąlygą, pasirenkate kriterijų iš laukų, esančių Admin API, o „Flow“ atlieka vertinimą pagal Jūsų parduotuvės grąžintą reikšmę.
„Flow“ palaiko šiuos duomenų tipus:
- Float: „Float“ reikšmės yra skaičiai su dešimtaine dalimi. Pavyzdžiui, 4,25.
- Integer: „Integer“ reikšmės yra sveikieji skaičiai be dešimtainės dalies. Pavyzdžiui, 42.
- Data: datos reikšmės yra skaitinė datos išraiška. Pavyzdžiui, 01012021.
- Eilutė: eilutės reikšmės yra tekstas. Lyginant eilutės reikšmes į raidžių dydį neatsižvelgiama.
- Loginė reikšmė: loginės reikšmės yra „true“ arba „false“.
- Enum: „Enum“ reikšmės yra duomenų rinkiniai, leidžiantys kintamajam įgyti reikšmę iš iš anksto nustatyto konstantų rinkinio.
Loginiai operatoriai
Loginiai operatoriai apibrėžia, kaip taikoma Jūsų sąlyga. Sąlygomis galima patikrinti paprastas ypatybes, pavyzdžiui, ar užsakymo bendra suma viršija tam tikrą sumą arba ar klientas sutinka gauti rinkodaros pranešimus. Loginiais operatoriais taip pat galima patikrinti sudėtingesnes ypatybes.
Operatoriai gali būti laukų lygio operatoriai, pvz., equal to arba not equal to, arba sąrašų operatoriai, pvz., at least one of arba none of.
Laukų lygio operatoriai
Laukų lygio operatoriai naudojami 2 reikšmėms palyginti. „Flow“ gali naudoti šiuos operatorius:
| Operatorius | Aprašymas | Pavyzdys |
|---|---|---|
| Equal to | Palygina reikšmes, kad patikrintų, ar jos yra vienodos. |
Reikšmė order.currentTotalDiscountsSet.shopMoney.amount gaunama iš Jūsų parduotuvės duomenų ir palyginama su antrąja reikšme, 50.Jei bendra užsakymo nuolaidų suma tiksliai lygi 50, sąlyga yra teisinga. |
| Not equal to | Palygina reikšmes, kad patikrintų, ar jos nėra vienodos. |
Reikšmė order.currentTotalDiscountsSet.shopMoney.amount gaunama iš Jūsų parduotuvės duomenų ir palyginama su antrąja reikšme, 50.Jei bendra užsakymo nuolaidų suma nėra tiksliai lygi 50, sąlyga yra teisinga. |
| Greater than ir Greater than or equal to | Palygina reikšmes, kad patikrintų, ar pirmoji reikšmė yra didesnė arba didesnė ar lygi antrajai reikšmei. |
Reikšmė order.currentTotalDiscountsSet.shopMoney.amount gaunama iš Jūsų parduotuvės duomenų ir palyginama su antrąja reikšme, 50.Jei bendra užsakymo nuolaidų suma yra 137, sąlyga yra teisinga, nes 137 yra daugiau nei 50. |
| Less than ir Less than or equal to | Palygina reikšmes, kad patikrintų, ar pirmoji reikšmė yra mažesnė arba mažesnė ar lygi antrajai reikšmei. |
Reikšmė order.currentTotalDiscountsSet.shopMoney.amount gaunama iš Jūsų parduotuvės duomenų ir palyginama su antrąja reikšme, 50.Jei bendra užsakymo nuolaidų suma yra 47, sąlyga yra teisinga, nes 47 yra mažiau arba lygu 50. |
| At least one of | Patikrina, ar lauko reikšmė lygi bet kuriai pateikto sąrašo reikšmei. Reikšmes reikia įvesti po vieną, po kiekvienos paspaudžiant „Enter“ klavišą (panašiai kaip žymas). Pritaikius tuščiam masyvui, sąlyga bus įvertinta kaip neteisinga. |
Reikšmė order.lineitem.product.title palyginama su: pineapple, guava, kiwi.Jei prekių pozicijos produkto pavadinimas yra guava, sąlyga yra teisinga, nes „guava“ yra įtraukta į Jūsų pateiktą sąrašą. |
| Not any of | Patikrina, ar lauko reikšmė nėra lygi jokiai iš pateikto sąrašo reikšmių. |
Reikšmė order.lineitem.product.title palyginama su: pineapple, guava, kiwi.Jei prekių pozicijos produkto pavadinimas yra raspberry, sąlyga yra teisinga, nes „raspberry“ nėra įtraukta į Jūsų pateiktą sąrašą. |
| Includes | Patikrina, ar vienoje teksto eilutėje yra kita teksto eilutė. |
Reikšmė order.lineitem.product.title palyginama su: berry.Jei prekių pozicijos produkto pavadinimas yra strawberry, sąlyga yra teisinga, nes „berry“ yra įtraukta į „strawberry“. |
| Does not include | Patikrina, ar vienoje teksto eilutėje nėra kitos teksto eilutės. |
order.lineitem.product.title reikšmė lyginama su: berry.Jei prekių pozicijos produkto pavadinimas yra apple, sąlyga yra teisinga, nes „berry“ nėra įtraukta į „apple“. |
| Prasideda nuo | Palygina reikšmes, kad patikrintų, ar pirmoji reikšmė prasideda antroje reikšmėje nurodytais duomenimis. |
order.shippingAddress.country reikšmė lyginama su: United.Jei užsakymo pristatymo adreso šalis yra United Kingdom, sąlyga yra teisinga, nes „United Kingdom“ prasideda žodžiu „United“. |
| Neprasideda nuo | Palygina reikšmes, kad patikrintų, ar pirmoji reikšmė neprasideda antroje reikšmėje nurodytais duomenimis. |
order.shippingAddress.country reikšmė lyginama su: United.Jei užsakymo pristatymo adreso šalis yra Canada, sąlyga yra teisinga, nes „United Kingdom“ neprasideda žodžiu „Canada“. |
| Baigiasi | Palygina reikšmes, kad patikrintų, ar pirmoji reikšmė baigiasi antroje reikšmėje nurodytais duomenimis. |
order.lineitems.product.title reikšmė lyginama su: pie.Jei prekių pozicijos produkto pavadinimas yra key lime pie, sąlyga yra teisinga, nes „key lime pie“ baigiasi žodžiu „pie“. |
| Nesibaigia | Palygina reikšmes, kad patikrintų, ar pirmoji reikšmė nesibaigia antroje reikšmėje nurodytais duomenimis. |
order.lineitems.product.title reikšmė lyginama su: pie.Jei prekių pozicijos produkto pavadinimas yra chocolate cake, sąlyga yra teisinga, nes „chocolate cake“ nebaigiasi žodžiu „pie“. |
Nulinės vertės arba tušti operatoriai
| Operatorius | Aprašymas | Sąlyga „Teisinga / klaidinga“ |
|---|---|---|
| Tuščias arba neegzistuoja | Tikrina, ar laukas tuščias (neturi reikšmės), ar neegzistuoja (yra null). |
Grąžina teisinga, kai laukas yra tuščias arba null, ir klaidinga, jei jis yra.
|
| Netuščias ir egzistuoja | Tikrina, ar laukas yra ir nėra tuščias arba null. | Grąžina true, kai laukas nėra tuščias ir egzistuoja, ir false, kai jis yra tuščias. |
Sąrašo operatoriai
Sąrašo operatoriai yra derinami su lauko lygio operatoriais, kad galėtumėte tikrinti sąlygas, taikomas sąrašuose esantiems duomenims.
Kaip pavyzdyje „bent vienas“, Jums gali prireikti patikrinti, ar užsakyme yra konkretus produktas (esantis order.lineItems) su konkrečia žyma (sąrašas order.lineItems.product.tags). Abiem atvejais pavyzdyje naudojamas sąrašo operatorius bent vienas iš.
Flow pateikia 3 operatorius darbui su sąrašais: Bent vienas iš, Nė vienas iš ir Visi iš.
| Operatorius | Aprašymas | Naudojimo pavyzdys |
|---|---|---|
| At least one of | Patikrina, ar kuris nors sąrašo elementas atitinka nurodytą sąlygą. Pateikiama true (teisinga), jei kuris nors elementas sąraše atitinka sąlygą. Jei sąrašas tuščias arba jokie elementai neatitinka sąlygos, pateikiama false (klaidinga). | Patikrinkite, ar užsakyme yra produktas su konkrečia žyma, naudodami sąlygą Bent viena iš užsakymo prekių pozicijų.produkto.žymų yra lygi žymos pavadinimui. |
| Nė vienas iš | Patikrina, ar joks sąrašo elementas neatitinka nurodytos sąlygos. Pateikiama true, jei nė vienas elementas neatitinka sąlygos. Jei sąrašas tuščias, pateikiama true. | Patikrinkite, ar produktas neturi žymos presale, naudodami None of product tags is equal to presale.Dažnai daroma klaida bandant paneigti operatorių naudojant is not equal to. Naudojant šį dvigubą neiginį, None of product tags is not equal to presale, sąlygą tampa sunku suprasti ir ji tampa neteisinga.
|
| Visi iš | Patikrina, ar visi sąrašo elementai atitinka nurodytą sąlygą. Pateikiama true, jei kiekvienas elementas sąraše atitinka sąlygą. | Patikrinkite, ar visos užsakymo prekių pozicijos turi konkretų produkto pardavėją, pavadintą Acme, naudodami sąlygą Visos užsakymo prekių pozicijos turi produkto pardavėją, lygų Acme. |
Sąlygų tvarka
Galite kurti darbo eigas, kuriose yra kelios sąlygos, ir kiekviena iš jų gali lemti skirtingus veiksmus. Sąlygų tvarka yra svarbi. Sąlygos pradedamos tikrinti nuo darbo eigos pradžios ir nuosekliai pereinama per kiekvieną iš jų. Tikrinimas sustabdomas, kai sąlyga yra patenkinama.
Šiame pavyzdyje naudojamos kelios sąlygos, siekiant patikrinti, ar klientas atitinka lojalumo programos reikalavimus, atsižvelgiant į bendrą jo parduotuvėje išleistą sumą. Sąlygos tikrinamos tokia tvarka, kokia jos pateiktos:
- Jei bendra kaina didesnė nei 1 000 $ ir klientas sutinka gauti rinkodaros pranešimus, jis pažymimas žyma
Gold. - Jei bendra kaina yra mažesnė nei 1 000 $, bet didesnė nei 500 $, ir klientas sutinka gauti rinkodaros pranešimus, jis pažymimas žyma
Silver. - Jei bendra kaina yra mažesnė nei 500 $, bet didesnė nei 200 $, ir klientas sutinka gauti rinkodaros pranešimus, jis pažymimas žyma
Bronze.

Kelių kriterijų derinimas vienoje sąlygoje
Kurdami sąlygą, galite nustatyti kelis kriterijus. Galite pasirinkti, kaip šie atskiri kriterijai turėtų būti derinami, kad būtų nustatyta, ar bendra sąlyga yra teisinga, ar klaidinga.
Jei atitinka visi kriterijai
Pasirinkus IR, teigiamas atsakymas gaunamas tik tuo atveju, jei visi Jūsų nustatyti kriterijai yra teisingi.
Pavyzdžiui, sukuriate darbo eigą, skirtą priskirti žymas klientams, kurie yra Kanadoje ir per vieną užsakymą išleidžia daugiau nei 500 $.

Darbo eiga priskiria klientui žymą tik tuo atveju, jei klientas yra Kanadoje ir jo užsakymo suma yra didesnė nei 500 $. Jei bent viena iš šių sąlygų yra klaidinga, tuomet klientui žyma nepriskiriama.
Jei įvykdytas bet kuris kriterijus
Pasirinkus ARBA, sąlyga laikoma įvykdyta, jei teisingas yra bent vienas Jūsų nustatytas kriterijus.
Pavyzdžiui, Jūs sukuriate darbo eigą, skirtą žymėti užsakymus, kurių rekomendacija dėl rizikos yra „Atšaukti“ arba „Ištirti“. Jei bent viena iš šių sąlygų yra teisinga, užsakymui priskiriama žyma.

Statiniai ir dinaminiai duomenys sąlygose
Paprastai antroji reikšmė sąlygoje yra statinė, rankiniu būdu įvesta reikšmė (pvz., product.title == „jūsų pavadinimas“). Ši reikšmė išlieka tokia pati kiekvieną kartą, kai paleidžiama darbo eiga.
Taip pat galite naudoti dinamines reikšmes, jei antrosios reikšmės lauke rodoma piktograma. Dinaminės reikšmės paimamos iš Jūsų parduotuvės duomenų kiekvieną kartą, kai paleidžiama darbo eiga. Norėdami naudoti dinaminę reikšmę, spustelėkite
piktogramą ir pasirinkite reikšmę, su kuria norite palyginti. Dinaminės reikšmės galimos ne visiems laukams.
Pavyzdžiui, Jūs sukuriate darbo eigą, kuri pažymi užsakymą, jei jo sąskaitos pateikimo adreso šalis sutampa su pristatymo adreso šalimi.

Šiame pavyzdyje tiek pirmoji, tiek antroji reikšmės paimamos iš Jūsų parduotuvės duomenų, o ne rankiniu būdu nurodoma statinė eilutė, su kuria būtų lyginama antroji reikšmė. Jei kliento nurodyta sąskaitos pateikimo adreso šalis sutampa su pristatymo adreso šalimi, sąlyga yra teisinga, o užsakymui priskiriama žyma.
Kartais Jums gali prireikti naudoti netinkamo tipo dinaminius duomenis. Pavyzdžiui, Jums gali tekti palyginti skaičių, saugomą kaip eilutę, su kitu skaičiumi. Tokiu atveju galite naudoti parinktį Run code, kad konvertuotumėte duomenis į tinkamą tipą.
Šablonai
Dauguma šablonų bibliotekos šablonų turi sąlygą.
Sąlygų pavyzdžiai
Patikrinimas, ar bent vienas elementas sąraše atitinka sąlygą
Šiame pavyzdyje rodoma tipinė sąlyga, kuri tikrina, ar bent vienas elementas sąraše atitinka tam tikrą reikšmę.
Šiuo atveju sąlyga patikrina, ar vienas iš produktų užsakyme turi žymą presale. Norėdami sukurti šią sąlygą, turėtumėte pasirinkti order / lineItems / product / tags. Pagal numatytuosius nustatymus Flow parenka bent vienas iš kaip loginį operatorių:

Dalys bent vienas iš yra sąrašo operatoriai ir yra naudojamos atitikmenų paieškai keliuose sąrašo elementuose. Dalis lygu yra lauko lygio operatorius, kuris nustato, ar atitinka vienas sąrašo elementas.
Patikrinimas, ar nė vienas elementas sąraše neatitinka sąlygos
Šiame pavyzdyje rodoma tipinė sąlyga, kuri tikrina, ar nė vienas sąrašo elementas neatitinka tam tikros reikšmės. Viena dažna problema, į kurią reikia atsižvelgti, yra ta, kad sąrašai gali būti tušti. Kai sąrašas tuščias, sąlygą apdoros sąrašo operatorius (šiuo atveju nė vienas iš).
Šiuo atveju sąlyga patikrina, ar nė viena iš produkto žymų nėra lygi „foo“:

Sąlyga grąžins true, jei (1) nėra produkto žymų arba (2) nė viena žyma nėra „foo“. Priešingu atveju ji grąžins false.
Patikrinimas, ar sąrašo elementas atitinka kelis kriterijus
Šiame pavyzdyje rodoma tipinė sąlyga, kuri tikrina, ar bent vienas elementas sąraše atitinka du atskirus kriterijus.
Šiuo atveju sąlyga patikrina, ar vienas iš produktų užsakyme turi žymą presale ir ar jo productType yra clothing.

Norėdami sukurti šią sąlygą, turėtumėte:
- Pirmajam kriterijui pasirinkite order / lineItems / product / tags.
- Sąraše lineItems pasirinkite Pridėti to paties elemento kriterijus. Pastaba: netinkamo sąrašo elemento pasirinkimas čia yra dažna klaida.
- Kaip aukščiausio lygio objektą pasirinkite lineItems_item, o tada antrajam kriterijui – product / productType`. Pastaba: netinkamo objekto pasirinkimas čia taip pat yra dažna klaida.
- Norėdami sujungti abu kriterijus, pasirinkite IR.
- Abiem kriterijams įveskite reikšmes
presaleirclothing.