Feltételek a Shopify Flow-ban

A feltételek akkor léptetik tovább a munkafolyamatot, ha bizonyos szabályok teljesülnek; ez egy ha-akkor utasítás kezdetéhez hasonló. Egy feltétel beállításakor kritériumokat kell kiválasztani a GraphQL Admin API mezőiből (például product.title), egy logikai operátort (például egyenlő), és egy értéket az összehasonlításhoz (például Kék farmer). Amikor egy munkafolyamat kiértékel egy feltételt, a Flow összehasonlítja a munkafolyamatban meghatározott értéket az üzletből származó értékkel, majd megjeleníti az eredményeket a munkafolyamat futtatása során. A feltételek meghatározásához rendelkezésre álló mezők és értékek jobb megértéséhez olvassa el, hogyan tekintheti meg az üzletadatok előnézetét.

További információ a feltételek alapjairól.

A Flow által használt adattípusok

Amikor beállít egy feltételt, kiválaszt egy kritériumot a(z) Admin API-ban elérhető mezők közül, a Flow pedig az üzletéből visszaadott érték alapján értékeli ki azt.

A Flow a következő adattípusokat támogatja:

  • Lebegőpontos szám: A lebegőpontos értékek tizedesjegyet tartalmazó számok. Például: 4,25.
  • Egész szám: Az egész szám értékek olyan egész számok, amelyek nem tartalmaznak tizedesjegyet. Például: 42.
  • Dátum: A dátumértékek a dátum numerikus ábrázolásai. Például: 01012021.
  • Karakterlánc: A karakterlánc-értékek szövegesek. A karakterlánc-értékeken végzett összehasonlítások nem tesznek különbséget a kis- és nagybetűk között.
  • Logikai érték: A logikai értékek vagy igazak, vagy hamisak.
  • Enum: Az enum értékek olyan adathalmazok, amelyek lehetővé teszik, hogy egy változó egy előre meghatározott állandókból álló készletből vegyen fel értéket.

Logikai operátorok

A logikai operátorok határozzák meg a feltétel alkalmazásának módját. A feltételek egyszerű tulajdonságokat is ellenőrizhetnek, például azt, hogy egy rendelés végösszege meghalad-e egy bizonyos értéket, vagy hogy a vásárló elfogadja-e a marketinganyagokat. A logikai operátorok összetettebb tulajdonságokat is ellenőrizhetnek.

Az operátorok lehetnek mezőszintű operátorok, például egyenlő vagy nem egyenlő, illetve listaoperátorok, például legalább az egyik vagy egyik sem.

Mezőszintű operátorok

A mezőszintű operátorok két érték összehasonlítására szolgálnak. A Flow a következő operátorokat használhatja:

A Shopify Flow alkalmazásban elérhető mezőszintű operátorok listája.
OperátorLeírásPélda
Egyenlő Összehasonlítja az értékeket annak ellenőrzésére, hogy azonosak-e. A rendszer lekéri az order.currentTotalDiscountsSet.shopMoney.amount értékét az üzlet adataiból, majd összehasonlítja azt a második értékkel, amely 50.

Ha a rendelés összes kedvezménye pontosan 50, akkor a feltétel igaz.
Nem egyenlő Összehasonlítja az értékeket annak ellenőrzésére, hogy nem azonosak-e. A rendszer lekéri az order.currentTotalDiscountsSet.shopMoney.amount értékét az üzlet adataiból, majd összehasonlítja azt a második értékkel, amely 50.

Ha a rendelés összes kedvezménye nem pontosan 50, akkor a feltétel igaz.
Nagyobb mint és Nagyobb vagy egyenlő Összehasonlítja az értékeket annak ellenőrzésére, hogy az első érték nagyobb-e, vagy nagyobb vagy egyenlő-e a második értéknél. A rendszer lekéri az order.currentTotalDiscountsSet.shopMoney.amount értékét az üzlet adataiból, majd összehasonlítja azt a második értékkel, amely 50.

Ha a rendelés összes kedvezményének értéke 137, akkor a feltétel igaz, mivel a 137 nagyobb, mint 50.
Kisebb mint és Kisebb vagy egyenlő Összehasonlítja az értékeket annak ellenőrzésére, hogy az első érték kisebb-e, vagy kisebb vagy egyenlő-e a második értéknél. A rendszer lekéri az order.currentTotalDiscountsSet.shopMoney.amount értékét az üzlet adataiból, majd összehasonlítja azt a második értékkel, amely 50.

Ha a rendelés összes kedvezménye 47, akkor a feltétel igaz, mivel a 47 kisebb vagy egyenlő, mint 50.
Legalább az egyik Ellenőrzi, hogy a mező egyenlő-e a megadott lista bármelyik értékével. Az értékeket egyenként kell megadni, és mindegyik után le kell nyomni az Enter billentyűt (hasonlóan a címkékhez). Üres tömbön való használata hamis kiértékelést eredményez. A rendszer az order.lineitem.product.title értékét a következőkkel hasonlítja össze: pineapple, guava, kiwi.

Ha a sorelem termékneve guava, akkor a feltétel igaz, mivel a „guava” szerepel a megadott listában.
Egyik sem Ellenőrzi, hogy a mező nem egyenlő a megadott lista egyik értékével sem. A rendszer az order.lineitem.product.title értékét a következőkkel hasonlítja össze: pineapple, guava, kiwi.

Ha a sorelem termékneve raspberry, akkor a feltétel igaz, mivel a „raspberry” nem szerepel a megadott listában.
Tartalmazza Összehasonlítja az értékeket, hogy ellenőrizze, az első bemeneti érték tartalmazza-e a második bemeneti értéket. A rendszer az order.lineitem.product.title értékét a következővel hasonlítja össze: berry.

Ha a sorelem termékneve strawberry, akkor a feltétel igaz, mivel a „berry” szerepel a „strawberry” szóban.
Nem tartalmazza Összehasonlítja az értékeket, hogy ellenőrizze, az első bemeneti érték nem tartalmazza-e a második bemeneti értéket. Az order.lineitem.product.title értéke a következővel van összehasonlítva: berry.

Ha a sorelem termékneve apple, akkor a feltétel igaz, mivel a „berry” nem szerepel az „apple” szóban.
Ezzel kezdődik Összehasonlítja az értékeket, és ellenőrzi, hogy az első érték a második értékkel kezdődik-e. Az order.shippingAddress.country értéke a következővel van összehasonlítva: United.

Ha a rendelés szállítási címének országa United Kingdom, akkor a feltétel igaz, mivel a „United Kingdom” a „United” szóval kezdődik.
Nem ezzel kezdődik Összehasonlítja az értékeket, és ellenőrzi, hogy az első érték nem a második értékkel kezdődik-e. Az order.shippingAddress.country értéke a következővel van összehasonlítva: United.

Ha a rendelés szállítási címének országa Canada, akkor a feltétel igaz, mivel a „United Kingdom” nem a „Canada” szóval kezdődik.
Ezzel végződik Összehasonlítja az értékeket, és ellenőrzi, hogy az első érték a második értékkel végződik-e. Az order.lineitems.product.title értéke a következővel van összehasonlítva: pie.

Ha a sorelem termékneve key lime pie, akkor a feltétel igaz, mivel a „key lime pie” a „pie” szóra végződik.
Nem ezzel végződik Összehasonlítja az értékeket, és ellenőrzi, hogy az első érték nem a második értékkel végződik-e. Az order.lineitems.product.title értéke a következővel van összehasonlítva: pie.

Ha a sorelem termékneve chocolate cake, akkor a feltétel igaz, mivel a „chocolate cake” nem a „pie” szóra végződik.

Null vagy üres operátorok

A Shopify Flow-feltételekben használt null és üres operátorok listája.
OperátorLeírásIgaz/Hamis feltétel
Üres vagy nem létezikEllenőrzi, hogy egy mező üres-e (nincs értéke), vagy nem létezik (null). Igaz értéket ad vissza, ha a mező üres vagy null, és hamis értéket, ha létezik.
Nem üres és létezikEllenőrzi, hogy egy mező létezik-e, és nem üres vagy null. Igaz értéket ad vissza, ha a mező nem üres és létezik, és hamis értéket, ha üres.

Listaoperátorok

A listaoperátorok a mezőszintű operátorokkal kombinálva lehetővé teszik a listákban szereplő adatokra vonatkozó feltételek ellenőrzését.

Ahogyan a „legalább egy” példában is, előfordulhat, hogy ellenőrizni szeretné, hogy egy rendelés tartalmaz-e egy adott terméket (amely az order.lineItems alatt található) egy adott címkével (egy lista az order.lineItems.product.tags alatt). Mindkét esetben a példa a legalább egy listaoperátort használja.

A Flow 3 operátort biztosít a listákkal való munkához: Legalább egy, Egyik sem és Mindegyik.

A Shopify Flow-feltételekben használt listaoperátorok táblázata.
OperátorLeírásPélda a használatra
Legalább az egyikEllenőrzi, hogy a listában szereplő bármely tétel megfelel-e a megadott feltételnek.

A visszatérési érték true (igaz), ha a listában szereplő bármely tétel megfelel a feltételnek. Ha a lista üres, vagy egyetlen tétel sem felel meg, a visszatérési érték false (hamis).
Ellenőrizze, hogy egy rendelés tartalmaz-e adott címkével ellátott terméket a(z) At least one of order line items.product.tags is equal to tagname használatával.
Egyik semEllenőrzi, hogy a listában szereplő tételek egyike sem felel meg a megadott feltételnek.

A visszatérési érték true (igaz), ha egyik tétel sem felel meg a feltételnek. Ha a lista üres, a visszatérési érték szintén true (igaz).
Ellenőrizze, hogy a termék nem rendelkezik-e a presale címkével a None of product tags is equal to presale (A termékcímkék egyike sem egyenlő a „presale” címkével) feltétel használatával.

Gyakori hiba az operátor tagadásának megkísérlése a nem egyenlő (is not equal to) használatával. Ezzel a kettős tagadással a None of product tags is not equal to presale (A termékcímkék egyike sem nem egyenlő a „presale” címkével) feltétel nehezen érthetővé és érvénytelenné válik.
MindegyikEllenőrzi, hogy a listában szereplő összes tétel megfelel-e a megadott feltételnek.

A visszatérési érték true (igaz), ha a listában lévő összes tétel megfelel a feltételnek.
Ellenőrizze, hogy egy rendelésben szereplő összes tételnek egy adott, Acme nevű termékszállítója van-e, a(z) All of order line items have a product.vendor equal to Acme használatával.

Feltételek sorrendje

Létrehozhat olyan munkafolyamatokat, amelyek több feltételt tartalmaznak, és ezek mindegyike különböző műveleteket eredményezhet. A feltételek sorrendje számít. A feltételek ellenőrzése a munkafolyamat elején kezdődik, és szisztematikusan halad végig az összes feltételen. Az ellenőrzés leáll, amint egy feltétel teljesül.

Ez a példa több feltételt használ annak ellenőrzésére, hogy egy vásárló jogosult-e hűségprogramra az üzletben elköltött teljes összeg alapján. A feltételek ellenőrzése a megjelenítésük sorrendjében történik:

  1. Ha a végösszeg nagyobb, mint 1000 USD, és a vásárló beleegyezik a marketinganyagok fogadásába, akkor címkézze fel a Gold címkével.
  2. Ha a végösszeg kevesebb, mint 1000 USD, de több, mint 500 USD, és a vásárló beleegyezik a marketinganyagok fogadásába, akkor címkézze fel a Silver címkével.
  3. Ha a végösszeg kevesebb, mint 500 USD, de több, mint 200 USD, és a vásárló beleegyezik a marketinganyagok fogadásába, akkor címkézze fel a Bronze címkével.

Példa egy olyan munkafolyamatra, amely ellenőrzi a vásárló teljes költési összegét, és címkéket ad hozzá

Több kritérium kombinálása egy feltételben

Egy feltétel létrehozásakor több kritériumot is beállíthat. Kiválaszthatja, hogy ezeket a különálló kritériumokat hogyan kell kombinálni annak megállapításához, hogy a teljes feltétel igaz vagy hamis-e.

Ha minden kritérium teljesül

Az ÉS kiválasztása csak akkor eredményez igaz választ, ha minden beállított kritérium igaz.

Például létrehozhat egy munkafolyamatot olyan vásárlók címkézésére, akik Kanadában tartózkodnak, és egyetlen rendelés alkalmával több mint 500 USD-t költenek.

Példa egy ÉS feltételt használó munkafolyamatra

A munkafolyamat csak akkor címkézi meg a vásárlót, ha a vásárló Kanadában tartózkodik, és a rendelésének értéke meghaladja az 500 dollárt. Ha ezen feltételek egyike nem teljesül, akkor a vásárló nem kap címkét.

Ha bármely kritérium teljesül

A VAGY kiválasztása igaz értéket eredményez, ha a beállított kritériumok bármelyike igaz.

Például létrehozhat egy munkafolyamatot, amely azokat a rendeléseket címkézi meg, amelyek kockázati ajánlása Törlés vagy Kivizsgálás. Ha ezen feltételek közül legalább az egyik igaz, akkor a rendelés címkét kap.

Példa egy VAGY feltételt használó munkafolyamatra

Statikus és dinamikus adatok a feltételekben

Jellemzően a feltétel második értéke egy statikus, manuálisan megadott érték (például product.title == „egy adott cím”). Ez az érték a munkafolyamat minden futtatásakor ugyanaz marad.

Dinamikus értékeket is használhat, ha a második érték mezőjében megjelenik egy Kód szerkesztése ikon. A dinamikus értékek az Ön üzletének adataiból származnak a munkafolyamat minden futtatásakor. Dinamikus érték használatához kattintson a Kód szerkesztése ikonra, és válassza ki az összehasonlításhoz használni kívánt értéket. A dinamikus értékek nem minden mező esetében érhetők el.

Például létrehozhat egy munkafolyamatot, amely megcímkéz egy rendelést, ha a rendelés számlázási címében szereplő ország megegyezik a szállítási címében szereplő országgal.

Példa egy rendelést címkéző munkafolyamatra, amely dinamikus adatokkal ellenőrzi, hogy a vásárló számlázási és szállítási országa megegyezik-e.

Ebben a példában az első és a második érték is az Ön üzletének adataiból származik, ahelyett, hogy manuálisan adna meg egy statikus karakterláncot a második érték összehasonlításához. Ha a vásárló által a számlázási címen megadott ország megegyezik a szállítási címen megadottal, akkor a feltétel igaz, és a rendelés címkét kap.

Időnként előfordulhat, hogy olyan dinamikus adatokat kell használnia, amelyek típusa nem megfelelő. Előfordulhat például, hogy egy karakterláncként tárolt számot kell összehasonlítania egy másik számmal. Ebben az esetben a Kódfuttatás opcióval konvertálhatja az adatokat a megfelelő típusra.

Sablonok

A sablonkönyvtárban található legtöbb sablon tartalmaz feltételt.

Példafeltételek

Annak ellenőrzése, hogy egy listában legalább egy elem megfelel-e egy feltételnek

Ez a példa egy tipikus feltételt mutat be, amely azt ellenőrzi, hogy egy listában legalább egy elem megfelel-e egy bizonyos értéknek.

Ebben az esetben a feltétel azt ellenőrzi, hogy a rendelésben szereplő termékek közül legalább az egyik rendelkezik-e presale címkével. A feltétel létrehozásához válassza ki a következőt: order / lineItems / product / tags. Alapértelmezés szerint a Flow a legalább az egyik logikai operátort választja:

Példa egy feltétel konfigurációs paneljére, amely legalább egy termékcímke ellenőrzését mutatja.

A legalább az egyik rész egy listaoperátor, amely a több listaelem közötti egyezések kezelésére szolgál. Az egyenlő rész egy mezőszintű operátor, amely azt határozza meg, hogy egyetlen listaelem egyezik-e.

Annak ellenőrzése, hogy egy listában egyetlen elem sem felel meg egy feltételnek

Ez a példa egy tipikus feltételt mutat be, amely azt ellenőrzi, hogy egy listában egyik elem sem felel meg egy bizonyos értéknek. Gyakori, figyelembe veendő probléma, hogy a listák üresek lehetnek. Ha egy lista üres, a feltételt a listaoperátor (ebben az esetben a egyik sem) kezeli.

Ebben az esetben a feltétel azt ellenőrzi, hogy a termékcímkék egyike sem egyenlő a „foo” értékkel:

Példa egy feltétel konfigurációs paneljére, amely azt ellenőrzi, hogy egyik termékcímke sem felel meg a kritériumnak.

A feltétel akkor ad vissza igaz értéket, ha (1) nincsenek termékcímkék, vagy (2) egyik címke sem „foo”. Egyébként hamis értéket ad vissza.

Annak ellenőrzése, hogy egy lista egy eleme megfelel-e több kritériumnak

Ez a példa egy tipikus feltételt mutat be, amely azt ellenőrzi, hogy egy listában legalább egy elem megfelel-e két különálló kritériumnak.

Ebben az esetben a feltétel azt ellenőrzi, hogy egy rendelésben lévő termékek közül legalább az egyik rendelkezik-e presale címkével, és a terméktípusa clothing.

Példa egy feltétel konfigurációs paneljére, amely legalább egy termékcímke és egy terméktípus (productType) ellenőrzését jeleníti meg.

A feltétel létrehozásához:

  1. Az első kritériumhoz válassza a order / lineItems / product / tags lehetőséget.
  2. Válassza a Kritériumok hozzáadása ugyanahhoz a tételhez lehetőséget a lineItems listán. Megjegyzés: Gyakori hiba a rossz listaelem kiválasztása ezen a ponton.
  3. Válassza a lineItems_item elemet legfelső szintű objektumként, majd a második kritériumhoz a product / productType` lehetőséget. Megjegyzés: A rossz objektum kiválasztása itt szintén gyakori hiba.
  4. Válassza az ÉS lehetőséget a két kritérium kombinálásához.
  5. Adja meg a presale és a clothing értékeket a két kritériumhoz.