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.
Ezen az oldalon
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:
| Operátor | Leírás | Pé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
| Operátor | Leírás | Igaz/Hamis feltétel |
|---|---|---|
| Üres vagy nem létezik | Ellenő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étezik | Ellenő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.
| Operátor | Leírás | Példa a használatra |
|---|---|---|
| Legalább az egyik | Ellenő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 sem | Ellenő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.
|
| Mindegyik | Ellenő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:
- 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
Goldcímkével. - 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
Silvercímkével. - 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
Bronzecímkével.

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.

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.

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 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
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.

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:

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:

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.

A feltétel létrehozásához:
- Az első kritériumhoz válassza a order / lineItems / product / tags lehetőséget.
- 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.
- 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.
- Válassza az ÉS lehetőséget a két kritérium kombinálásához.
- Adja meg a
presaleés aclothingértékeket a két kritériumhoz.