Nosacījumi platformā Shopify Flow

Nosacījumi turpina darbplūsmu, kad ir izpildīti noteikti noteikumi, piemēram, if-then paziņojuma sākums. Iestatot nosacījumu, tu izvēlies kritērijus no GraphQL Admin API laukiem (piemēram, product.title), loģisko operatoru (piemēram, equal to) un vērtību, ar kuru salīdzināt (piemēram, Blue jeans). Kad darbplūsma novērtē nosacījumu, Flow salīdzina darbplūsmā definēto vērtību ar vērtību, kas atgriezta tavam veikalam, un pēc tam parāda rezultātus darbplūsmas izpildē. Lai labāk izprastu laukus un vērtības, kas pieejamas nosacījumu definēšanai, uzzini, kā priekšskatīt veikala datus.

Uzzini vairāk par nosacījumu pamatiem.

Flow izmantotie datu tipi

Iestatot nosacījumu, tu izvēlies kritēriju no Admin API pieejamajiem laukiem, un Flow to novērtē, salīdzinot ar tavam veikalam atgriezto vērtību.

Flow atbalsta šādus datu veidus:

  • Float: Float (peldošā komata) vērtības ir skaitļi ar decimāldaļu. Piemēram, 4,25.
  • Integer: Integer (veselā skaitļa) vērtības ir veseli skaitļi, kuriem nav decimāldaļas. Piemēram, 42.
  • Date: Date (datuma) vērtības ir datuma skaitliskais attēlojums. Piemēram, 01012021.
  • String: String (virknes) vērtības ir teksts. Salīdzinājumos, kuros izmantotas virknes vērtības, reģistrs netiek ņemts vērā.
  • Boolean: Boolean (būla) vērtības ir true (patiess) vai false (aplams).
  • Enum: Enum (uzskaitījuma) vērtības ir datu kopas, kas ļauj mainīgajam būt iepriekš definētu konstanšu kopai.

Loģiskie operatori

Loģiskie operatori nosaka, kā tiek piemērots tavs nosacījums. Nosacījumi var pārbaudīt vienkāršas īpašības, piemēram, vai pasūtījuma kopsumma pārsniedz noteiktu summu un vai klients piekrīt saņemt mārketinga materiālus. Tāpat loģiskie operatori var pārbaudīt sarežģītākas īpašības.

Operatori var būt lauka līmeņa operatori, piemēram, vienāds ar vai nav vienāds ar, vai arī saraksta operatori, piemēram, vismaz viens no vai neviens no.

Lauka līmeņa operatori

Lauka līmeņa operatorus izmanto, lai salīdzinātu 2 vērtības. Flow var izmantot tālāk norādītos operatorus:

Shopify Flow pieejamo lauka līmeņa operatoru saraksts.
OperatorsAprakstsPiemērs
Vienāds ar Salīdzina vērtības, lai pārbaudītu, vai tās ir vienādas. Vērtība order.currentTotalDiscountsSet.shopMoney.amount tiek iegūta no tava veikala datiem un salīdzināta ar otro vērtību – 50.

Ja pasūtījuma kopējā atlaide ir tieši 50, nosacījums ir patiess.
Nav vienāds ar Salīdzina vērtības, lai pārbaudītu, vai tās atšķiras. Vērtība order.currentTotalDiscountsSet.shopMoney.amount tiek iegūta no tava veikala datiem un salīdzināta ar otro vērtību – 50.

Ja pasūtījuma kopējā atlaide nav tieši 50, nosacījums ir patiess.
Lielāks nekā un Lielāks vai vienāds ar Salīdzina vērtības, lai pārbaudītu, vai pirmā vērtība ir lielāka nekā otrā vērtība, vai arī lielāka vai vienāda ar to. Vērtība order.currentTotalDiscountsSet.shopMoney.amount tiek iegūta no tava veikala datiem un salīdzināta ar otro vērtību – 50.

Ja pasūtījuma kopējās atlaides vērtība ir 137, nosacījums ir patiess, jo 137 ir lielāks nekā 50.
Mazāks nekā un Mazāks vai vienāds ar Salīdzina vērtības, lai pārbaudītu, vai pirmā vērtība ir mazāka nekā otrā vērtība, vai arī mazāka vai vienāda ar to. Vērtība order.currentTotalDiscountsSet.shopMoney.amount tiek iegūta no tava veikala datiem un salīdzināta ar otro vērtību – 50.

Ja pasūtījuma kopējā atlaide ir 47, nosacījums ir patiess, jo 47 ir mazāks vai vienāds ar 50.
Vismaz viens no Pārbauda, vai lauka vērtība sakrīt ar jebkuru vērtību norādītajā sarakstā. Vērtības jāievada atsevišķi, pēc katras nospiežot taustiņu Enter (līdzīgi kā tagus). Izmantojot to tukšam masīvam, rezultāts ir aplams (false). Vērtība order.lineitem.product.title tiek salīdzināta ar: pineapple, guava, kiwi.

Ja rindas vienuma produkta nosaukums ir guava, nosacījums ir patiess, jo “guava” ir iekļauta tevis norādītajā sarakstā.
Neviens no Pārbauda, vai lauka vērtība nesakrīt ne ar vienu no norādītā saraksta vērtībām. Vērtība order.lineitem.product.title tiek salīdzināta ar: pineapple, guava, kiwi.

Ja rindas vienuma produkta nosaukums ir raspberry, nosacījums ir patiess, jo “raspberry” nav iekļauta tevis norādītajā sarakstā.
Ietver Salīdzina vērtības, lai pārbaudītu, vai jebkura no pirmās vērtības ievadēm ietver otrās vērtības ievades datus. Vērtība order.lineitem.product.title tiek salīdzināta ar: berry.

Ja rindas vienuma produkta nosaukums ir strawberry, nosacījums ir patiess, jo “berry” ir iekļauta vārdā “strawberry”.
Neietver Salīdzina vērtības, lai pārbaudītu, vai jebkura no pirmās vērtības ievadēm neietver otrās vērtības ievades datus. Vērtība order.lineitem.product.title tiek salīdzināta ar: berry.

Ja rindas vienuma produkta nosaukums ir apple, nosacījums ir patiess, jo “berry” nav iekļauta vārdā “apple”.
Sākas ar Salīdzina vērtības, lai pārbaudītu, vai pirmā vērtība sākas ar otrajā vērtībā norādītajiem datiem. Vērtība order.shippingAddress.country tiek salīdzināta ar: United.

Ja pasūtījuma piegādes adreses valsts ir United Kingdom, nosacījums ir patiess, jo “United Kingdom” sākas ar “United”.
Nesākas ar Salīdzina vērtības, lai pārbaudītu, vai pirmā vērtība nesākas ar otrajā vērtībā norādītajiem datiem. Vērtība order.shippingAddress.country tiek salīdzināta ar: United.

Ja pasūtījuma piegādes adreses valsts ir Canada, nosacījums ir patiess, jo “United Kingdom” nesākas ar “Canada”.
Beidzas ar Salīdzina vērtības, lai pārbaudītu, vai pirmā vērtība beidzas ar otrajā vērtībā norādītajiem datiem. Vērtība order.lineitems.product.title tiek salīdzināta ar: pie.

Ja rindas vienuma produkta nosaukums ir key lime pie, nosacījums ir patiess, jo “key lime pie” beidzas ar “pie”.
Nebeidzas ar Salīdzina vērtības, lai pārbaudītu, vai pirmā vērtība nebeidzas ar otrajā vērtībā norādītajiem datiem. Vērtība order.lineitems.product.title tiek salīdzināta ar: pie.

Ja rindas vienuma produkta nosaukums ir chocolate cake, nosacījums ir patiess, jo “chocolate cake” nebeidzas ar “pie”.

Null un tukšo vērtību operatori

Shopify Flow nosacījumos pieejamo null un tukšo vērtību operatoru saraksts.
OperatorsAprakstsPatiess/aplams nosacījums
Tukšs vai nepastāvPārbauda, vai lauks ir tukšs (tam nav vērtības) vai tas nepastāv (ir null). Atgriež true, ja lauks ir tukšs vai null, un false, ja tas eksistē.
Nav tukšs un eksistēPārbauda, vai lauks eksistē un nav tukšs vai null. Atgriež true, ja lauks nav tukšs un eksistē, bet false, ja tas ir tukšs.

Saraksta operatori

Saraksta operatori tiek kombinēti ar lauka līmeņa operatoriem, lai ļautu tev pārbaudīt nosacījumus sarakstos iekļautajiem datiem.

Kā piemērā “vismaz viens”, var rasties nepieciešamība pārbaudīt, vai pasūtījums satur konkrētu produktu (atrodas sadaļā order.lineItems) ar konkrētu tagu (saraksts sadaļā order.lineItems.product.tags). Abos gadījumos piemērā ir izmantots saraksta operators vismaz viens no.

Shopify Flow nodrošina 3 operatorus darbam ar sarakstiem: Vismaz viens no, Neviens no un Visi.

Shopify Flow nosacījumu saraksta operatoru tabula.
OperatorsAprakstsLietojuma piemērs
Vismaz viens noPārbauda, vai kāds no saraksta vienumiem atbilst norādītajam nosacījumam.

Atgriež true, ja atbilst jebkurš saraksta vienums. Ja saraksts ir tukšs vai neviens vienums neatbilst, atgriež false.
Pārbaudi, vai pasūtījums satur produktu ar konkrētu tagu, izmantojot At least one of order line items.product.tags is equal to tagname.
Neviens noPārbauda, vai neviens no saraksta vienumiem neatbilst norādītajam nosacījumam.

Atgriež true, ja neviens no vienumiem neatbilst nosacījumam. Ja saraksts ir tukšs, atgriež true.
Pārbaudi, vai produktam nav taga presale, izmantojot None of product tags is equal to presale.

Bieži pieļauta kļūda ir mēģinājums noliegt operatoru, izmantojot nav vienāds ar (is not equal to). Izmantojot šo dubulto noliegumu None of product tags is not equal to presale, nosacījums kļūst gan grūti saprotams, gan nederīgs.
VisiPārbauda, vai visi saraksta vienumi atbilst norādītajam nosacījumam.

Atgriež true, ja ikviens saraksta vienums atbilst nosacījumam.
Pārbaudi, vai visiem pasūtījuma vienumiem ir konkrēts produkta piegādātājs ar nosaukumu Acme, izmantojot All of order line items have a product.vendor equal to Acme.

Nosacījumu secība

Tu vari izveidot darbplūsmas ar vairākiem nosacījumiem, kur katrs no tiem var izraisīt atšķirīgas darbības. Nosacījumu secībai ir nozīme. Nosacījumu pārbaude sākas darbplūsmas sākumā un sistemātiski turpinās cauri katram nosacījumam. Pārbaude tiek apturēta, tiklīdz nosacījums ir izpildīts.

Šajā piemērā ir izmantoti vairāki nosacījumi, lai pārbaudītu, vai klients atbilst lojalitātes programmai, pamatojoties uz veikala pirkumiem iztērēto kopējo summu. Nosacījumi tiek pārbaudīti to attēlošanas secībā:

  1. Ja kopējā cena ir lielāka par 1000 $ un klients piekrīt saņemt mārketinga materiālus, pievieno viņam tagu Gold.
  2. Ja kopējā cena ir mazāka par 1000 $, bet lielāka par 500 $, un klients piekrīt saņemt mārketinga materiālus, pievieno viņam tagu Silver.
  3. Ja kopējā cena ir mazāka par 500 $, bet lielāka par 200 $, un klients piekrīt saņemt mārketinga materiālus, pievieno viņam tagu Bronze.

Darbplūsmas piemērs, kas pārbauda klienta kopējo iztērēto summu un pievieno tagus

Vairāku kritēriju apvienošana vienā nosacījumā

Veidojot nosacījumu, tu vari iestatīt vairākus kritērijus. Vari izvēlēties, kā šie atsevišķie kritēriji ir jāapvieno, lai noteiktu, vai kopējais nosacījums ir patiess vai nepatiess.

Ja ir izpildīti visi kritēriji

Atlasot AND, rezultāts ir patiess (true) tikai tad, ja katrs tevis iestatītais kritērijs ir patiess.

Piemēram, tu izveido darbplūsmu, lai pievienotu tagus klientiem, kuri atrodas Kanādā un vienā pasūtījumā iztērē vairāk nekā 500 $.

Darbplūsmas piemērs, kurā izmantots nosacījums AND

Darbplūsma pievieno tagu klientam tikai tad, ja klients atrodas Kanādā un šajā pasūtījumā iztērē vairāk nekā 500 $. Ja kāds no šiem nosacījumiem nav izpildīts (false), klientam tags netiek pievienots.

Ja ir izpildīts kāds no kritērijiem

Atlasot OR, rezultāts ir patiess (true), ja vismaz viens no tevis iestatītajiem kritērijiem ir patiess.

Piemēram, tu izveido darbplūsmu, lai pievienotu tagu pasūtījumiem ar riska ieteikumu Atcelt (Cancel) vai Izmeklēt (Investigate). Kamēr viens no šiem nosacījumiem ir patiess, pasūtījumam tiek pievienots tags.

Darbplūsmas piemērs, kurā izmantots nosacījums OR

Statiski un dinamiski dati nosacījumos

Parasti otrā vērtība nosacījumā ir statiska, manuāli ievadīta vērtība (piemēram, product.title == "your title"). Šī vērtība paliek nemainīga katru reizi, kad tiek izpildīta darbplūsma.

Vari izmantot arī dinamiskas vērtības, ja otrās vērtības laukā ir redzama ikona Rediģēt kodu. Dinamiskās vērtības tiek iegūtas no tava veikala datiem katru reizi, kad tiek izpildīta darbplūsma. Lai izmantotu dinamisku vērtību, noklikšķini uz ikonas Rediģēt kodu un atlasi vērtību, pret kuru vēlies veikt pārbaudi. Dinamiskās vērtības nav pieejamas visiem laukiem.

Piemēram, tu izveido darbplūsmu, kas pievieno pasūtījumam tagu, ja valsts pasūtījuma norēķinu adresē sakrīt ar valsti tā piegādes adresē.

Darbplūsmas piemērs, kas pasūtījumam pievieno tagu, izmantojot RHS datus, lai pārbaudītu, vai klienta norēķinu un piegādes valsts sakrīt.

Šajā piemērā gan pirmā, gan otrā vērtība tiek iegūta no tava veikala datiem, nevis manuāli norādot statisku virkni, pret kuru veikt otrās vērtības pārbaudi. Ja valsts klienta norādītajā norēķinu adresē ir tāda pati kā valsts, ko klients norādījis piegādes adresē, nosacījums ir patiess un pasūtījumam tiek pievienots tags.

Dažkārt var būt nepieciešams izmantot dinamiskos datus, kuriem ir nepareizs tips. Piemēram, var būt jāsalīdzina skaitlis, kas saglabāts kā virkne, ar citu skaitli. Šādā gadījumā vari izmantot iespēju Izpildīt kodu, lai konvertētu datus pareizajā tipā.

Veidnes

Lielākā daļa veidņu veidņu bibliotēkā satur nosacījumu.

Nosacījumu piemēri

Pārbaudi, vai vismaz viens saraksta vienums atbilst nosacījumam

Šajā piemērā parādīts tipisks nosacījums, kas pārbauda, vai vismaz viens saraksta vienums atbilst noteiktai vērtībai.

Šajā gadījumā nosacījums pārbauda, vai kādam no pasūtījuma produktiem ir tags presale. Lai izveidotu šo nosacījumu, izvēlies order / lineItems / product / tags. Pēc noklusējuma Flow kā loģisko operatoru izvēlas at least one of (vismaz viens no):

Nosacījumu konfigurācijas paneļa piemērs, kurā redzama vismaz viena produkta taga pārbaude.

Daļas at least one of ir saraksta operatori, un tās tiek izmantotas, lai apstrādātu atbilstību starp vairākiem saraksta vienumiem. Daļa is equal to ir lauka līmeņa operators, kas nosaka, vai atbilst viens saraksta vienums.

Pārbaudi, vai neviens saraksta vienums neatbilst nosacījumam

Šajā piemērā parādīts tipisks nosacījums, kas pārbauda, vai neviens no saraksta vienumiem neatbilst noteiktai vērtībai. Viena izplatīta problēma, kas jāņem vērā – saraksti var būt tukši. Kad saraksts ir tukšs, nosacījumu apstrādās saraksta operators (šajā gadījumā none of).

Šajā gadījumā nosacījums pārbauda, vai neviens no produkta tagiem nav vienāds ar foo:

Nosacījumu konfigurācijas paneļa piemērs, kurā redzama produkta taga neesamības pārbaude.

Nosacījums atgriezīs true, ja 1) nav produktu tagu vai 2) neviens no tagiem nav foo. Pretējā gadījumā tas atgriezīs false.

Pārbaudi, vai saraksta vienums atbilst vairākiem kritērijiem

Šajā piemērā parādīts tipisks nosacījums, kas pārbauda, vai vismaz viens saraksta vienums atbilst diviem atsevišķiem kritērijiem.

Šajā gadījumā nosacījums pārbauda, vai vienam no pasūtījuma produktiem ir tags presale un vai tā productType ir clothing.

Nosacījumu konfigurācijas paneļa piemērs, kurā redzama vismaz viena produkta taga un productType pārbaude.

Lai izveidotu šo nosacījumu, tev jāveic tālāk norādītās darbības.

  1. Pirmajam kritērijam izvēlies order / lineItems / product / tags.
  2. Sarakstā lineItems izvēlies Add criteria for same item (Pievienot kritēriju tam pašam vienumam). Piezīme. Nepareiza saraksta vienuma izvēle šeit ir izplatīta kļūda.
  3. Kā augstākā līmeņa objektu izvēlies lineItems_item un pēc tam otrajam kritērijam izvēlies product / productType`. Piezīme. Nepareiza objekta izvēle šeit arī ir izplatīta kļūda.
  4. Izvēlies AND, lai apvienotu abus kritērijus.
  5. Ievadi abiem kritērijiem vērtības presale un clothing.