Condiții în Shopify Flow
Condițiile continuă un flux de lucru atunci când sunt îndeplinite anumite reguli, cum ar fi începutul unei instrucțiuni dacă-atunci. Atunci când setați o condiție, alegeți criterii din câmpurile din GraphQL Admin API (cum ar fi product.title), un operator logic (cum ar fi egal cu) și o valoare pentru comparație (cum ar fi Blugi albaștri). Atunci când un flux de lucru evaluează o condiție, Flow verifică valoarea definită în fluxul de lucru comparând-o cu valoarea returnată pentru magazinul dumneavoastră, apoi afișează rezultatele în rularea fluxului de lucru. Pentru a înțelege mai bine câmpurile și valorile disponibile pentru definirea condițiilor, aflați cum să previzualizați datele magazinului.
Aflați mai multe despre înțelegerea noțiunilor de bază despre condiții.
Pe această pagină
Tipuri de date utilizate cu Flow
Atunci când setați o condiție, alegeți un criteriu din câmpurile disponibile în Admin API, iar Flow îl evaluează comparându-l cu valoarea returnată pentru magazinul dumneavoastră.
Flow acceptă următoarele tipuri de date:
- Float: Valorile de tip float sunt numere cu zecimale. De exemplu, 4,25.
- Integer: Valorile de tip integer sunt numere întregi care nu au zecimale. De exemplu, 42.
- Dată: Valorile de tip dată sunt reprezentări numerice ale datei. De exemplu, 01012021.
- Șir: Valorile de tip șir sunt text. Comparațiile care utilizează valori de tip șir nu sunt sensibile la majuscule.
- Boolean: Valorile booleene sunt fie adevărat, fie fals.
- Enum: Valorile de tip enum sunt seturi de date care permit unei variabile să fie un set de constante predefinite.
Operatori logici
Operatorii logici definesc modul în care este aplicată condiția dumneavoastră. Condițiile pot verifica proprietăți simple, cum ar fi dacă totalul unei comenzi depășește o anumită sumă sau dacă un client acceptă marketingul. Operatorii logici pot, de asemenea, să verifice proprietăți mai complexe.
Operatorii pot fi fie operatori la nivel de câmp, cum ar fi egal cu sau diferit de, fie operatori de listă, cum ar fi cel puțin unul dintre sau niciunul dintre.
Operatori la nivel de câmp
Operatorii la nivel de câmp sunt utilizați pentru a compara 2 valori. Flow poate utiliza următorii operatori:
| Operator | Descriere | Exemplu |
|---|---|---|
| Egal cu | Compară valori pentru a verifica dacă sunt identice. |
Valoarea pentru order.currentTotalDiscountsSet.shopMoney.amount este preluată din datele pentru magazin și este comparată cu a doua valoare, 50.Dacă reducerile totale ale comenzii sunt exact egale cu 50, atunci condiția este adevărată. |
| Diferit de | Compară valori pentru a verifica dacă nu sunt identice. |
Valoarea pentru order.currentTotalDiscountsSet.shopMoney.amount este preluată din datele pentru magazin și este comparată cu a doua valoare, 50.Dacă reducerile totale ale comenzii nu sunt exact egale cu 50, atunci condiția este adevărată. |
| Mai mare decât și Mai mare sau egal cu | Compară valori pentru a verifica dacă prima valoare este mai mare decât, sau mai mare sau egală cu, a doua valoare. |
Valoarea pentru order.currentTotalDiscountsSet.shopMoney.amount este preluată din datele pentru magazin și este comparată cu a doua valoare, 50.Dacă valoarea reducerilor totale ale comenzii este 137, atunci condiția este adevărată, deoarece 137 este mai mare decât 50. |
| Mai mic decât și Mai mic sau egal cu | Compară valori pentru a verifica dacă prima valoare este mai mică decât, sau mai mică sau egală cu, a doua valoare. |
Valoarea pentru order.currentTotalDiscountsSet.shopMoney.amount este preluată din datele pentru magazin și este comparată cu a doua valoare, 50.Dacă reducerile totale ale comenzii sunt 47, atunci condiția este adevărată, deoarece 47 este mai mic sau egal cu 50. |
| Cel puțin unul dintre | Verifică dacă valoarea câmpului este egală cu oricare valoare din lista furnizată. Valorile trebuie introduse individual și urmate de apăsarea tastei Enter (similar etichetelor). Utilizarea pe o matrice goală are ca rezultat o evaluare falsă. |
Valoarea pentru order.lineitem.product.title este comparată cu: pineapple, guava, kiwi.Dacă titlul produsului de pe rând este guava, atunci condiția este adevărată, deoarece „guava” este inclusă în lista pe care ați furnizat-o. |
| Niciunul dintre | Verifică dacă valoarea câmpului nu este egală cu niciuna dintre valorile din lista furnizată. |
Valoarea pentru order.lineitem.product.title este comparată cu: pineapple, guava, kiwi.Dacă titlul produsului de pe rând este raspberry, atunci condiția este adevărată, deoarece „raspberry” nu este inclusă în lista pe care ați furnizat-o. |
| Include | Compară valori pentru a verifica dacă prima valoare de intrare o conține pe a doua. |
Valoarea pentru order.lineitem.product.title este comparată cu: berry.Dacă titlul produsului de pe rând este strawberry, atunci condiția este adevărată, deoarece „berry” este inclus în „strawberry”. |
| Nu include | Compară valori pentru a verifica dacă prima valoare de intrare nu o conține pe a doua. |
Valoarea pentru order.lineitem.product.title este comparată cu: berry.Dacă titlul produsului pentru rând este apple, atunci condiția este adevărată, deoarece „berry” nu este inclus în „apple”. |
| Începe cu | Compară valorile pentru a verifica dacă prima valoare începe cu datele din a doua valoare. |
Valoarea pentru order.shippingAddress.country este comparată cu: United.Dacă țara pentru adresa de livrare a comenzii este United Kingdom, atunci condiția este adevărată, deoarece „United Kingdom” începe cu „United”. |
| Nu începe cu | Compară valorile pentru a verifica dacă prima valoare nu începe cu datele din a doua valoare. |
Valoarea pentru order.shippingAddress.country este comparată cu: United.Dacă țara pentru adresa de livrare a comenzii este Canada, atunci condiția este adevărată, deoarece „United Kingdom” nu începe cu „Canada”. |
| Se termină cu | Compară valorile pentru a verifica dacă prima valoare se termină cu datele din a doua valoare. |
Valoarea pentru order.lineitems.product.title este comparată cu: pie.Dacă titlul produsului pentru rând este key lime pie, atunci condiția este adevărată, deoarece „key lime pie” se termină cu „pie”. |
| Nu se termină cu | Compară valorile pentru a verifica dacă prima valoare nu se termină cu datele din a doua valoare. |
Valoarea pentru order.lineitems.product.title este comparată cu: pie.Dacă titlul produsului pentru rând este chocolate cake, atunci condiția este adevărată, deoarece „chocolate cake” nu se termină cu „pie”. |
Operatori pentru valori nule sau goale
| Operator | Descriere | Condiție Adevărat/Fals |
|---|---|---|
| Gol sau nu există | Verifică dacă un câmp este gol (nu are nicio valoare) sau nu există (este null). |
Returnează adevărat când câmpul este gol sau null și fals dacă este prezent.
|
| Nu este gol și există | Verifică dacă un câmp este prezent și nu este gol sau null. | Returnează adevărat când câmpul nu este gol și există, fals când este gol. |
Operatori de listă
Operatorii de listă sunt combinați cu operatori la nivel de câmp pentru a vă permite să verificați condiții pentru datele incluse în liste.
Ca în exemplul „cel puțin unul”, este posibil să doriți să verificați dacă o comandă conține un anumit produs (localizat în order.lineItems) cu o anumită etichetă (o listă sub order.lineItems.product.tags). În ambele cazuri, exemplul folosește operatorul de listă cel puțin unul dintre.
Flow oferă 3 operatori pentru lucrul cu liste: Cel puțin unul dintre, Niciunul dintre și Toate din.
| Operator | Descriere | Exemplu de utilizare |
|---|---|---|
| Cel puțin unul dintre | Verifică dacă vreun articol din listă îndeplinește condiția specificată. Returnează true dacă oricare articol din listă se potrivește. Dacă lista este goală sau nu se potrivește niciun articol, atunci returnează false. | Verificați dacă o comandă conține un produs cu o etichetă specifică folosind Cel puțin una dintre etichetele de produs din rândurile comenzii este egală cu numeetichetă. |
| Niciunul dintre | Verifică dacă niciunul dintre articolele din listă nu îndeplinește condiția specificată. Returnează true dacă niciunul dintre articole nu îndeplinește condiția. Dacă lista este goală, atunci returnează true. | Verifică dacă un produs nu are eticheta presale utilizând None of product tags is equal to presale.O greșeală frecventă este încercarea de a nega operatorul prin utilizarea is not equal to. Folosirea acestei negații duble, None of product tags is not equal to presale, face condiția atât invalidă, cât și greu de înțeles.
|
| Toate din | Verifică dacă toate articolele din listă îndeplinesc condiția specificată. Returnează true dacă fiecare articol din listă îndeplinește condiția. | Verificați dacă toate articolele dintr-o comandă au un anumit vânzător de produs numit Acme folosind Toate rândurile comenzii au un product.vendor egal cu Acme. |
Ordonarea condițiilor
Puteți crea fluxuri de lucru care au mai multe condiții, fiecare dintre acestea putând duce la acțiuni diferite. Ordinea condițiilor este importantă. Verificarea condițiilor începe de la începutul fluxului de lucru și parcurge sistematic fiecare condiție. Verificarea se oprește atunci când o condiție este îndeplinită.
Acest exemplu folosește mai multe condiții pentru a verifica dacă un client este eligibil pentru un program de fidelitate, în funcție de suma totală pe care a cheltuit-o în magazin. Condițiile sunt verificate în ordinea în care sunt afișate:
- Dacă prețul total este mai mare de 1.000 USD și clientul este de acord să accepte materiale de marketing, atunci etichetați-l cu eticheta
Gold. - Dacă prețul total este mai mic de 1.000 USD, dar mai mare de 500 USD, și clientul este de acord să accepte materiale de marketing, atunci etichetați-l cu eticheta
Silver. - Dacă prețul total este mai mic de 500 USD, dar mai mare de 200 USD, și clientul este de acord să accepte materiale de marketing, atunci etichetați-l cu eticheta
Bronze.

Combinarea mai multor criterii într-o singură condiție
Când construiți o condiție, puteți seta mai multe criterii. Puteți alege cum ar trebui combinate aceste criterii separate pentru a determina dacă întreaga condiție este adevărată sau falsă.
Dacă toate criteriile sunt îndeplinite
Selectarea opțiunii ȘI are ca rezultat un răspuns adevărat numai dacă fiecare criteriu pe care l-ați setat este adevărat.
De exemplu, creați un flux de lucru pentru a eticheta clienții care se află în Canada și cheltuiesc mai mult de 500 USD pentru o singură comandă.

Fluxul de lucru etichetează clientul numai dacă acesta se află în Canada și cheltuiește peste 500 USD în cadrul comenzii. Dacă oricare dintre aceste condiții este falsă, atunci clientul nu este etichetat.
Dacă este îndeplinit orice criteriu
Selectarea opțiunii SAU are ca rezultat un răspuns adevărat dacă oricare dintre criteriile setate este adevărat.
De exemplu, creați un flux de lucru pentru a eticheta comenzile cu o recomandare de risc de Anulare sau Investigare. Atâta timp cât una dintre aceste condiții este adevărată, comanda este etichetată.

Date statice și dinamice în condiții
De obicei, a doua valoare dintr-o condiție este o valoare statică, introdusă manual (precum product.title == „titlul dvs.”). Această valoare rămâne aceeași de fiecare dată când rulează fluxul de lucru.
De asemenea, puteți utiliza valori dinamice dacă în câmpul pentru a doua valoare se afișează pictograma . Valorile dinamice sunt extrase din datele magazinului dvs. de fiecare dată când rulează fluxul de lucru. Pentru a utiliza o valoare dinamică, faceți clic pe pictograma
și selectați valoarea cu care doriți să faceți comparația. Valorile dinamice nu sunt disponibile pentru toate câmpurile.
De exemplu, creați un flux de lucru care etichetează o comandă dacă țara din adresa de facturare a comenzii corespunde cu țara din adresa de livrare a acesteia.

În acest exemplu, atât prima, cât și a doua valoare sunt extrase din datele magazinului dvs., în loc să specificați manual un șir static de comparat pentru a doua valoare. Dacă țara din adresa de facturare furnizată de client este aceeași cu țara din adresa sa de livrare, atunci condiția este adevărată, iar comanda este etichetată.
Ocazional, este posibil să fie necesar să utilizați date dinamice de tip greșit. De exemplu, s-ar putea să trebuiască să comparați un număr stocat ca șir de caractere cu un alt număr. În acest caz, puteți utiliza opțiunea Executare cod pentru a converti datele la tipul corect.
Șabloane
Majoritatea șabloanelor din biblioteca de șabloane conțin o condiție.
Exemple de condiții
Verificare dacă cel puțin un articol dintr-o listă corespunde unei condiții
Acest exemplu prezintă o condiție tipică ce verifică dacă cel puțin un articol dintr-o listă corespunde unei anumite valori.
În acest caz, condiția verifică dacă unul dintre produsele dintr-o comandă are eticheta prevânzare. Pentru a construi această condiție, ați alege comandă / articole rând / produs / etichete. În mod implicit, Flow alege opțiunea cel puțin unul dintre ca operator logic:

Părțile cel puțin unul dintre sunt operatori de listă și sunt utilizate pentru a gestiona corespondența între mai multe articole de listă. Partea este egal cu este un operator la nivel de câmp care stabilește dacă un singur articol din listă corespunde.
Verificare dacă niciunul dintre articolele dintr-o listă nu corespunde unei condiții
Acest exemplu prezintă o condiție tipică ce verifică dacă niciunul dintre articolele dintr-o listă nu corespunde unei anumite valori. O problemă frecventă de luat în considerare este că listele pot fi goale. Când o listă este goală, condiția va fi gestionată de operatorul de listă (în acest caz niciunul dintre).
În acest caz, condiția verifică dacă niciuna dintre etichetele de produs nu este egală cu foo:

Condiția va returna adevărat dacă (1) nu există etichete de produs sau (2) niciuna dintre etichete nu este foo. În caz contrar, va returna fals.
Verificare dacă un articol dintr-o listă corespunde mai multor criterii
Acest exemplu prezintă o condiție tipică ce verifică dacă cel puțin un articol dintr-o listă îndeplinește două criterii separate.
În acest caz, condiția verifică dacă unul dintre produsele dintr-o comandă are eticheta prevânzare și dacă are un tip de produs îmbrăcăminte.

Pentru a construi această condiție, trebuie să:
- Alegeți comandă / articole rând / produs / etichete pentru primul criteriu.
- Alegeți Adăugare criterii pentru același articol în lista articole rând. Notă: Alegerea articolului greșit din listă aici este o greșeală frecventă.
- Alegeți articole_rând_articol ca obiect de nivel superior, apoi produs / tipProdus` pentru al doilea criteriu. Notă: Alegerea obiectului greșit aici este, de asemenea, o greșeală frecventă.
- Alegeți ȘI pentru a combina cele două criterii.
- Introduceți valorile
prevânzareșiîmbrăcămintepentru cele două criterii.