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.

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:

Laukų lygio operatorių, kuriuos galima naudoti programėlėje „Shopify Flow“, sąrašas.
OperatoriusAprašymasPavyzdys
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

Nulinės vertės ir tuščių operatorių sąrašas „Shopify Flow“ sąlygose.
OperatoriusAprašymasSąlyga „Teisinga / klaidinga“
Tuščias arba neegzistuojaTikrina, 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 egzistuojaTikrina, 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š.

Sąrašo operatorių lentelė „Shopify Flow“ sąlygose.
OperatoriusAprašymasNaudojimo pavyzdys
At least one ofPatikrina, 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:

  1. Jei bendra kaina didesnė nei 1 000 $ ir klientas sutinka gauti rinkodaros pranešimus, jis pažymimas žyma Gold.
  2. 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.
  3. Jei bendra kaina yra mažesnė nei 500 $, bet didesnė nei 200 $, ir klientas sutinka gauti rinkodaros pranešimus, jis pažymimas žyma Bronze.

Darbo eigos, kuri tikrina bendrą kliento išleistą sumą ir prideda žymas, pavyzdys

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 eigos, kurioje naudojama IR sąlyga, pavyzdys

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.

Darbo eigos, kurioje naudojama ARBA sąlyga, pavyzdys

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 Redaguoti kodą 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 Redaguoti kodą 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.

Darbo eigos, kuri pažymi užsakymą naudojant RHS duomenis, kad patikrintų, ar kliento sąskaitos pateikimo ir pristatymo šalis yra ta pati, pavyzdys.

Š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ų:

Sąlygos konfigūracijos skydelio pavyzdys, kuriame rodomas patikrinimas dėl bent vienos produkto žymos.

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ąlygos konfigūracijos skydelio pavyzdys, kuriame rodomas patikrinimas, ar nėra produkto žymos.

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.

Sąlygos konfigūracijos skydelio pavyzdys, kuriame rodomas patikrinimas dėl bent vienos produkto žymos ir productType.

Norėdami sukurti šią sąlygą, turėtumėte:

  1. Pirmajam kriterijui pasirinkite order / lineItems / product / tags.
  2. Sąraše lineItems pasirinkite Pridėti to paties elemento kriterijus. Pastaba: netinkamo sąrašo elemento pasirinkimas čia yra dažna klaida.
  3. 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.
  4. Norėdami sujungti abu kriterijus, pasirinkite IR.
  5. Abiem kriterijams įveskite reikšmes presale ir clothing.