Podmienky v aplikácii Shopify Flow

Podmienky umožňujú pokračovať v pracovnom postupe po splnení určitých pravidiel, podobne ako pri príkaze „if-then“. Pri nastavovaní podmienky si vyberáte kritériá z polí v rozhraní GraphQL Admin API (ako napríklad product.title), logický operátor (napríklad rovná sa) a hodnotu, s ktorou sa má porovnávať (napríklad Blue jeans). Keď pracovný postup vyhodnocuje podmienku, aplikácia Flow porovná hodnotu definovanú v pracovnom postupe s hodnotou vrátenou pre váš obchod a potom zobrazí výsledky v spustení pracovného postupu. Ak chcete lepšie porozumieť poliam a hodnotám dostupným na definovanie podmienok, prečítajte si viac o tom, ako zobraziť ukážku údajov obchodu.

Prečítajte si viac o základoch podmienok.

Dátové typy používané v aplikácii Flow

Pri nastavovaní podmienky si vyberáte kritériá z polí dostupných v rozhraní Admin API a aplikácia Flow ich vyhodnotí na základe hodnoty vrátenej pre váš obchod.

Aplikácia Flow podporuje nasledujúce typy údajov:

  • Desatinné číslo (Float): Tieto hodnoty sú čísla s desatinnou časťou. Napríklad 4,25.
  • Celé číslo (Integer): Tieto hodnoty sú celé čísla bez desatinnej časti. Napríklad 42.
  • Dátum (Date): Hodnoty dátumu sú číselnou reprezentáciou dátumu. Napríklad 01012021.
  • Reťazec (String): Hodnoty reťazca sú textové. Porovnávania pomocou hodnôt reťazca nerozlišujú veľké a malé písmená.
  • Booleovská hodnota (Boolean): Booleovské hodnoty sú buď pravda (true), alebo nepravda (false).
  • Výčet (Enum): Hodnoty výčtu sú množiny údajov, ktoré umožňujú premennej byť súborom vopred definovaných konštánt.

Logické operátory

Logické operátory určujú spôsob uplatnenia podmienky. Podmienky dokážu kontrolovať jednoduché vlastnosti, ako je napríklad to, či celková suma objednávky prekračuje určitú sumu, alebo či zákazník prijíma marketingové ponuky. Logické operátory dokážu kontrolovať aj zložitejšie vlastnosti.

Operátory môžu byť buď operátormi na úrovni poľa, napríklad rovná sa alebo nerovná sa, alebo operátormi zoznamu, ako napríklad aspoň jeden z alebo žiadny z.

Operátory na úrovni poľa

Operátory na úrovni poľa slúžia na porovnávanie dvoch hodnôt. V aplikácii Flow môžete použiť nasledujúce operátory:

Zoznam operátorov na úrovni poľa dostupných v aplikácii Shopify Flow.
OperátorPopisPríklad
Rovná sa Porovnáva hodnoty a zisťuje, či sú zhodné. Hodnota parametra order.currentTotalDiscountsSet.shopMoney.amount sa načíta z údajov vášho obchodu a porovná sa s druhou hodnotou, 50.

Ak sa celkové zľavy objednávky rovnajú presne hodnote 50, podmienka je splnená.
Nerovná sa Porovnáva hodnoty a zisťuje, či nie sú zhodné. Hodnota parametra order.currentTotalDiscountsSet.shopMoney.amount sa načíta z údajov vášho obchodu a porovná sa s druhou hodnotou, 50.

Ak sa celkové zľavy objednávky nerovnajú presne hodnote 50, podmienka je splnená.
Väčšie ako a Väčšie alebo rovné ako Porovnáva hodnoty a zisťuje, či je prvá hodnota väčšia, prípadne väčšia alebo rovná druhej hodnote. Hodnota parametra order.currentTotalDiscountsSet.shopMoney.amount sa načíta z údajov vášho obchodu a porovná sa s druhou hodnotou, 50.

Ak je hodnota celkových zliav objednávky 137, podmienka je splnená, pretože 137 je viac ako 50.
Menej ako a Menej ako alebo rovné Porovná hodnoty a zistí, či je prvá hodnota menšia ako druhá hodnota, prípadne či je menšia alebo sa jej rovná. Hodnota parametra order.currentTotalDiscountsSet.shopMoney.amount sa načíta z údajov vášho obchodu a porovná sa s druhou hodnotou, 50.

Ak sú celkové zľavy objednávky 47, podmienka je splnená, pretože 47 je menej alebo rovnako ako 50.
Aspoň jedno z Skontroluje, či sa pole rovná niektorej z hodnôt v zadanom zozname. Hodnoty treba zadať samostatne a stlačiť kláves Enter (podobne ako pri štítkoch). Ak sa použije na prázdne pole (array), podmienka sa vyhodnotí ako nepravdivá. Hodnota parametra order.lineitem.product.title sa porovnáva s hodnotami: pineapple, guava, kiwi.

Ak je názov produktu samostatnej položky guava, podmienka je splnená, pretože slovo „guava“ je uvedené v zadanom zozname.
Ani jedno z Skontroluje, či sa pole nerovná žiadnej z hodnôt v zadanom zozname. Hodnota parametra order.lineitem.product.title sa porovnáva s hodnotami: pineapple, guava, kiwi.

Ak je názov produktu samostatnej položky raspberry, podmienka je splnená, pretože slovo „raspberry“ sa v zadanom zozname nenachádza.
Obsahuje Porovná hodnoty a zistí, či zadaná prvá hodnota obsahuje údaje zo zadanej druhej hodnoty. Hodnota parametra order.lineitem.product.title sa porovnáva s hodnotou: berry.

Ak je názov produktu samostatnej položky strawberry, podmienka je splnená, pretože slovo „berry“ je súčasťou slova „strawberry“.
Neobsahuje Porovná hodnoty a zistí, či zadaná prvá hodnota neobsahuje údaje zo zadanej druhej hodnoty. Hodnota pre order.lineitem.product.title sa porovná s: berry.

Ak je názov produktu samostatnej položky apple, podmienka je pravdivá, pretože „berry“ nie je súčasťou slova „apple“.
Začína sa na Porovná hodnoty a zistí, či sa prvá hodnota začína na údaje v druhej hodnote. Hodnota pre order.shippingAddress.country sa porovná s: United.

Ak je krajinou dodacej adresy objednávky United Kingdom, podmienka je pravdivá, pretože „United Kingdom“ sa začína na „United“.
Nezačína sa na Porovná hodnoty a zistí, či sa prvá hodnota nezačína na údaje v druhej hodnote. Hodnota pre order.shippingAddress.country sa porovná s: United.

Ak je krajinou dodacej adresy objednávky Canada, podmienka je pravdivá, pretože „United Kingdom“ sa nezačína na „Canada“.
Končí sa na Porovná hodnoty a zistí, či sa prvá hodnota končí na údaje v druhej hodnote. Hodnota pre order.lineitems.product.title sa porovná s: pie.

Ak je názov produktu samostatnej položky key lime pie, podmienka je pravdivá, pretože „key lime pie“ sa končí na „pie“.
Nekončí sa na Porovná hodnoty a zistí, či sa prvá hodnota nekončí na údaje v druhej hodnote. Hodnota pre order.lineitems.product.title sa porovná s: pie.

Ak je názov produktu samostatnej položky chocolate cake, podmienka je pravdivá, pretože „chocolate cake“ sa nekončí na „pie“.

Operátory hodnoty null alebo prázdnej hodnoty

Zoznam operátorov hodnôt null a prázdnych hodnôt v podmienkach aplikácie Shopify Flow.
OperátorPopisPodmienka pravda/nepravda
Prázdne alebo neexistujeSkontroluje, či je pole prázdne (nemá žiadnu hodnotu) alebo neexistuje (je null). Vráti hodnotu pravda, ak je pole prázdne alebo null, a nepravda, ak pole existuje.
Nie je prázdne a existujeSkontroluje, či pole existuje a nie je prázdne ani null. Vráti hodnotu pravda, ak pole nie je prázdne a existuje, a nepravda, ak je prázdne.

Operátory zoznamu

Operátory zoznamu sa kombinujú s operátormi na úrovni poľa, čo vám umožňuje kontrolovať podmienky pre údaje zahrnuté v zoznamoch.

Podobne ako v príklade „aspoň jedno z“, možno budete chcieť skontrolovať, či objednávka obsahuje konkrétny produkt (nachádza sa v order.lineItems) s konkrétnym štítkom (zoznam v order.lineItems.product.tags). V oboch prípadoch sa v príklade používa operátor zoznamu aspoň jedno z.

Flow poskytuje 3 operátory na prácu so zoznamami: Aspoň jedno z, Žiadne z a Všetky z.

Tabuľka operátorov zoznamu v podmienkach aplikácie Shopify Flow.
OperátorPopisPríklad použitia
Aspoň jedno zSkontroluje, či niektorá položka v zozname spĺňa zadanú podmienku.

Vráti hodnotu true, ak niektorá položka v zozname spĺňa podmienku. Ak je zoznam prázdny alebo podmienku nespĺňa žiadna položka, vráti hodnotu false.
Pomocou možnosti At least one of order line items.product.tags is equal to tagname skontrolujte, či objednávka obsahuje produkt s konkrétnym štítkom.
Žiadne zSkontroluje, či žiadna z položiek v zozname nespĺňa zadanú podmienku.

Vráti hodnotu true, ak podmienku nespĺňa žiadna z položiek. Ak je zoznam prázdny, vráti hodnotu true.
Skontrolujte, či produkt nemá štítok presale pomocou operátora None of product tags is equal to presale.

Častou chybou je snaha o negáciu operátora pomocou is not equal to. Použitie tohto dvojitého záporu, None of product tags is not equal to presale, spôsobuje, že je podmienka ťažko pochopiteľná a neplatná.
VšetkySkontroluje, či všetky položky v zozname spĺňajú zadanú podmienku.

Vráti hodnotu true, ak podmienku spĺňa každá položka v zozname.
Skontrolujte, či všetky položky v objednávke majú konkrétneho dodávateľa produktu s názvom Acme, pomocou All of order line items have a product.vendor equal to Acme.

Poradie podmienok

Môžete vytvoriť pracovné postupy, ktoré majú viacero podmienok, pričom každá z nich môže viesť k iným akciám. Na poradí podmienok záleží. Kontrola podmienok sa začína na začiatku pracovného postupu a systematicky prechádza každou podmienkou. Kontrola sa zastaví po splnení podmienky.

Tento príklad používa viacero podmienok na kontrolu toho, či má zákazník nárok na vernostný program na základe celkovej sumy, ktorú v obchode minul. Podmienky sa kontrolujú v poradí, v akom sú zobrazené:

  1. Ak je celková cena vyššia ako 1 000 USD a zákazník súhlasí s prijímaním marketingu, označte ho štítkom Gold.
  2. Ak je celková cena nižšia ako 1 000 USD, ale vyššia ako 500 USD, a zákazník súhlasí s prijímaním marketingu, označte ho štítkom Silver.
  3. Ak je celková cena nižšia ako 500 USD, ale vyššia ako 200 USD, a zákazník súhlasí s prijímaním marketingu, označte ho štítkom Bronze.

Príklad pracovného postupu, ktorý kontroluje celkovú minutú sumu zákazníka a pridáva štítky

Kombinácia viacerých kritérií v jednej podmienke

Pri vytváraní podmienky môžete nastaviť niekoľko kritérií. Môžete si vybrať, ako sa majú tieto samostatné kritériá skombinovať, aby sa zistilo, či je celková podmienka pravdivá (true) alebo nepravdivá (false).

Ak sú splnené všetky kritériá

Výberom možnosti AND získate pravdivú odpoveď iba v prípade, že je pravdivé každé vami nastavené kritérium.

Napríklad vytvoríte pracovný postup na označenie zákazníkov, ktorí sa nachádzajú v Kanade a minú viac ako 500 USD na jednu objednávku.

Príklad pracovného postupu, ktorý používa podmienku a (and)

Pracovný postup označí zákazníka, len ak sa nachádza v Kanade a v rámci objednávky minie viac ako 500 USD. Ak je niektorá z týchto podmienok nepravdivá, zákazník sa neoznačí.

Ak je splnené akékoľvek kritérium

Výberom možnosti OR získate pravdivú odpoveď, ak je pravdivé aspoň jedno z vami nastavených kritérií.

Napríklad vytvoríte pracovný postup na označovanie objednávok s odporúčaním ohľadom rizika Cancel (Zrušiť) alebo Investigate (Preskúmať). Ak je aspoň jedna z týchto podmienok pravdivá, objednávka sa označí.

Príklad pracovného postupu, ktorý používa podmienku alebo (or)

Statické a dynamické údaje v podmienkach

Zvyčajne je druhou hodnotou v podmienke statická, manuálne zadaná hodnota (napríklad product.title == "váš názov"). Táto hodnota zostáva rovnaká pri každom spustení pracovného postupu.

Dynamické hodnoty môžete použiť aj v prípade, ak sa v poli pre druhú hodnotu zobrazuje ikona Upraviť kód. Dynamické hodnoty sa čerpajú z údajov vášho obchodu pri každom spustení pracovného postupu. Ak chcete použiť dynamickú hodnotu, kliknite na ikonu Upraviť kód a vyberte hodnotu, s ktorou ju chcete porovnať. Dynamické hodnoty nie sú k dispozícii pre všetky polia.

Napríklad vytvoríte pracovný postup, ktorý označí objednávku, ak sa krajina vo fakturačnej adrese objednávky zhoduje s krajinou v jej dodacej adrese.

Príklad pracovného postupu, ktorý označuje objednávku pomocou údajov RHS na kontrolu toho, či je fakturačná a dodacia krajina zákazníka rovnaká.

V tomto príklade sa prvá aj druhá hodnota čerpajú z údajov vášho obchodu namiesto toho, aby ste v prípade druhej hodnoty manuálne zadali statický reťazec na porovnanie. Ak je krajina vo fakturačnej adrese zadanej zákazníkom rovnaká ako krajina, ktorú zákazník zadal v dodacej adrese, podmienka je pravdivá a objednávka sa označí.

Občas možno budete musieť použiť dynamické údaje s nesprávnym typom. Možno budete chcieť napríklad porovnať číslo uložené ako reťazec s iným číslom. V tomto prípade môžete použiť možnosť Spustiť kód (Run code) na konverziu údajov na správny typ.

Šablóny

Väčšina šablón v knižnici šablón obsahuje podmienku.

Príklady podmienok

Kontrola toho, či aspoň jedna položka v zozname spĺňa podmienku

Tento príklad zobrazuje typickú podmienku, ktorá kontroluje, či aspoň jedna položka v zozname zodpovedá určitej hodnote.

V tomto prípade podmienka skontroluje, či má niektorý z produktov v objednávke štítok presale. Na vytvorenie tejto podmienky by ste zvolili možnosť order / lineItems / product / tags. V predvolenom nastavení vyberie Flow ako logický operátor aspoň jedno z:

Príklad konfiguračného panela podmienky zobrazujúci kontrolu aspoň jedného štítka produktu.

Časti aspoň jedno zoperátormi zoznamu a používajú sa na spracovanie zhôd naprieč viacerými položkami zoznamu. Časť sa rovná (is equal to) je operátor na úrovni poľa, ktorý určuje, či sa zhoduje jedna položka zoznamu.

Kontrola toho, či žiadna z položiek v zozname nespĺňa podmienku

Tento príklad zobrazuje typickú podmienku, ktorá kontroluje, či žiadna z položiek v zozname nezodpovedá určitej hodnote. Jedným bežným problémom, ktorý treba vziať do úvahy, je skutočnosť, že zoznamy môžu byť prázdne. Keď je zoznam prázdny, podmienku spracuje operátor zoznamu (v tomto prípade žiadne z).

V tomto prípade podmienka skontroluje, či sa žiadny zo štítkov produktu nerovná hodnote foo:

Príklad konfiguračného panela podmienky zobrazujúci kontrolu neprítomnosti štítka produktu.

Podmienka vráti hodnotu true, ak (1) neexistujú žiadne štítky produktu alebo (2) žiadny zo štítkov nie je foo. V opačnom prípade vráti hodnotu false.

Kontrola, či položka v zozname spĺňa viacero kritérií

Tento príklad zobrazuje typickú podmienku, ktorá kontroluje, či aspoň jedna položka v zozname spĺňa dve samostatné kritériá.

V tomto prípade podmienka kontroluje, či má jeden z produktov v objednávke štítok presale a či je jeho parameter productType clothing.

Príklad panela konfigurácie podmienky, ktorý zobrazuje kontrolu aspoň jedného štítku produktu a parametra productType.

Ak chcete vytvoriť túto podmienku, postupujte takto:

  1. Pre prvé kritérium vyberte order / lineItems / product / tags.
  2. Vyberte možnosť Add criteria for same item v zozname lineItems. Poznámka: Výber nesprávnej položky zoznamu na tomto mieste je častou chybou.
  3. Ako objekt najvyššej úrovne vyberte lineItems_item a potom pre druhé kritérium product / productType`. Poznámka: Častou chybou na tomto mieste je aj výber nesprávneho objektu.
  4. Ak chcete spojiť tieto dve kritériá, vyberte možnosť AND.
  5. Zadajte hodnoty presale a clothing pre tieto dve kritériá.