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.
Na tejto stránke
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:
| Operátor | Popis | Prí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
| Operátor | Popis | Podmienka pravda/nepravda |
|---|---|---|
| Prázdne alebo neexistuje | Skontroluje, č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 existuje | Skontroluje, č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.
| Operátor | Popis | Príklad použitia |
|---|---|---|
| Aspoň jedno z | Skontroluje, č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 z | Skontroluje, č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šetky | Skontroluje, č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é:
- 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. - 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. - 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.

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.

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

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

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:

Časti aspoň jedno z sú operá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:

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.

Ak chcete vytvoriť túto podmienku, postupujte takto:
- Pre prvé kritérium vyberte order / lineItems / product / tags.
- 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.
- 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.
- Ak chcete spojiť tieto dve kritériá, vyberte možnosť AND.
- Zadajte hodnoty
presaleaclothingpre tieto dve kritériá.