Συνθήκες στο Shopify Flow

Οι συνθήκες συνεχίζουν μια ροή εργασίας όταν πληρούνται ορισμένοι κανόνες, όπως η αρχή μιας δήλωσης «εάν-τότε». Όταν ορίζετε μια συνθήκη, επιλέγετε κριτήρια από πεδία στο GraphQL Admin API (όπως product.title), έναν λογικό τελεστή (όπως ίσον με) και μια τιμή για έλεγχο (όπως Μπλε τζιν). Όταν μια ροή εργασίας αξιολογεί μια συνθήκη, το Flow ελέγχει την τιμή που έχει οριστεί στη ροή εργασίας σε σχέση με την τιμή που επιστρέφεται για το κατάστημά σας και, στη συνέχεια, εμφανίζει τα αποτελέσματα στην εκτέλεση της ροής εργασίας. Για να κατανοήσετε καλύτερα τα διαθέσιμα πεδία και τις τιμές για τον ορισμό συνθηκών, μάθετε πώς να κάνετε προεπισκόπηση των δεδομένων του καταστήματος.

Μάθετε περισσότερα σχετικά με την κατανόηση των βασικών αρχών των συνθηκών.

Τύποι δεδομένων που χρησιμοποιούνται με το Flow

Όταν ορίζετε μια συνθήκη, επιλέγετε ένα κριτήριο από τα διαθέσιμα πεδία στο Admin API και το Flow το αξιολογεί σε σχέση με την τιμή που επιστρέφεται για το κατάστημά σας.

Το Flow υποστηρίζει τα παρακάτω είδη δεδομένων:

  • Float: Οι τιμές float είναι αριθμοί με δεκαδικό μέρος. Για παράδειγμα, 4,25.
  • Integer: Οι ακέραιες τιμές είναι ακέραιοι αριθμοί που δεν έχουν δεκαδικό μέρος. Για παράδειγμα, 42.
  • Date: Οι τιμές ημερομηνίας είναι η αριθμητική αναπαράσταση της ημερομηνίας. Για παράδειγμα, 01012021.
  • String: Οι τιμές συμβολοσειράς είναι κείμενο. Οι συγκρίσεις που χρησιμοποιούν τιμές συμβολοσειράς δεν κάνουν διάκριση πεζών-κεφαλαίων.
  • Boolean: Οι τιμές boolean είναι είτε true είτε false.
  • Enum: Οι τιμές enum είναι σύνολα δεδομένων που επιτρέπουν σε μια μεταβλητή να είναι ένα σύνολο προκαθορισμένων σταθερών.

Λογικοί τελεστές

Οι λογικοί τελεστές καθορίζουν τον τρόπο εφαρμογής της συνθήκης σας. Οι συνθήκες μπορούν να ελέγχουν απλές ιδιότητες, όπως εάν το σύνολο μιας παραγγελίας είναι πάνω από ένα συγκεκριμένο ποσό ή εάν ένας πελάτης αποδέχεται το μάρκετινγκ. Οι λογικοί τελεστές μπορούν επίσης να ελέγχουν πιο σύνθετες ιδιότητες.

Οι τελεστές μπορεί να είναι είτε τελεστές σε επίπεδο πεδίου, όπως ίσον με ή διάφορο του, είτε τελεστές λίστας, όπως τουλάχιστον ένα από ή κανένα από.

Τελεστές σε επίπεδο πεδίου

Οι τελεστές σε επίπεδο πεδίου χρησιμοποιούνται για τη σύγκριση 2 τιμών. Το Flow μπορεί να χρησιμοποιήσει τους ακόλουθους τελεστές:

Λίστα με τους τελεστές σε επίπεδο πεδίου που είναι διαθέσιμοι στο Shopify Flow.
ΤελεστήςΠεριγραφήΠαράδειγμα
Ίσον με Συγκρίνει τιμές για να ελέγξει αν είναι ίδιες. Η τιμή για το order.currentTotalDiscountsSet.shopMoney.amount ανακτάται από τα δεδομένα του καταστήματός σας και συγκρίνεται με τη δεύτερη τιμή, το 50.

Αν οι συνολικές εκπτώσεις της παραγγελίας ισούνται ακριβώς με 50, τότε η συνθήκη είναι αληθής.
Διάφορο του Συγκρίνει τιμές για να ελέγξει αν δεν είναι ίδιες. Η τιμή για το order.currentTotalDiscountsSet.shopMoney.amount ανακτάται από τα δεδομένα του καταστήματός σας και συγκρίνεται με τη δεύτερη τιμή, το 50.

Αν οι συνολικές εκπτώσεις της παραγγελίας δεν ισούνται ακριβώς με 50, τότε η συνθήκη είναι αληθής.
Μεγαλύτερο από και Μεγαλύτερο ή ίσο με Συγκρίνει τιμές για να ελέγξει αν η πρώτη τιμή είναι μεγαλύτερη από, ή μεγαλύτερη ή ίση με, τη δεύτερη τιμή. Η τιμή για το order.currentTotalDiscountsSet.shopMoney.amount ανακτάται από τα δεδομένα του καταστήματός σας και συγκρίνεται με τη δεύτερη τιμή, το 50.

Αν η τιμή των συνολικών εκπτώσεων της παραγγελίας είναι 137, τότε η συνθήκη είναι αληθής, επειδή το 137 είναι μεγαλύτερο από το 50.
Μικρότερο από και Μικρότερο ή ίσο με Συγκρίνει τιμές για να ελέγξει αν η πρώτη τιμή είναι μικρότερη από, ή μικρότερη ή ίση με, τη δεύτερη τιμή. Η τιμή για το order.currentTotalDiscountsSet.shopMoney.amount ανακτάται από τα δεδομένα του καταστήματός σας και συγκρίνεται με τη δεύτερη τιμή, το 50.

Αν οι συνολικές εκπτώσεις της παραγγελίας είναι 47, τότε η συνθήκη είναι αληθής, επειδή το 47 είναι μικρότερο ή ίσο με το 50.
Τουλάχιστον ένα από Ελέγχει αν το πεδίο είναι ίσο με οποιαδήποτε τιμή στην παρεχόμενη λίστα. Οι τιμές πρέπει να εισάγονται μεμονωμένα και να ακολουθεί το πάτημα του πλήκτρου enter (παρόμοια με τις ετικέτες). Η χρήση σε έναν κενό πίνακα έχει ως αποτέλεσμα μια ψευδή αξιολόγηση. Η τιμή για το order.lineitem.product.title συγκρίνεται με τα εξής: pineapple, guava, kiwi.

Αν ο τίτλος προϊόντος του στοιχείου γραμμής είναι guava, τότε η συνθήκη είναι αληθής, επειδή το «guava» περιλαμβάνεται στη λίστα που δώσατε.
Κανένα από Ελέγχει αν το πεδίο δεν είναι ίσο με καμία από τις τιμές στην παρεχόμενη λίστα. Η τιμή για το order.lineitem.product.title συγκρίνεται με τα εξής: pineapple, guava, kiwi.

Αν ο τίτλος προϊόντος του στοιχείου γραμμής είναι raspberry, τότε η συνθήκη είναι αληθής, επειδή το «raspberry» δεν περιλαμβάνεται στη λίστα που δώσατε.
Περιλαμβάνει Συγκρίνει τιμές για να ελέγξει αν η πρώτη τιμή περιέχει τη δεύτερη τιμή. Η τιμή για το order.lineitem.product.title συγκρίνεται με το: berry.

Αν ο τίτλος προϊόντος του στοιχείου γραμμής είναι strawberry, τότε η συνθήκη είναι αληθής, επειδή το «berry» περιλαμβάνεται στο «strawberry».
Δεν περιλαμβάνει Συγκρίνει τιμές για να ελέγξει αν η πρώτη τιμή δεν περιέχει τη δεύτερη τιμή. Η τιμή για το order.lineitem.product.title συγκρίνεται με το: berry.

Αν ο τίτλος προϊόντος του στοιχείου γραμμής είναι apple, τότε η συνθήκη αληθεύει, επειδή το «berry» δεν περιλαμβάνεται στο «apple».
Ξεκινά με Συγκρίνει τιμές για να ελέγξει εάν η πρώτη τιμή ξεκινά με τα δεδομένα της δεύτερης τιμής. Η τιμή για το order.shippingAddress.country συγκρίνεται με το: United.

Αν η χώρα για τη διεύθυνση αποστολής της παραγγελίας είναι United Kingdom, τότε η συνθήκη αληθεύει, επειδή το «United Kingdom» ξεκινά με το «United».
Δεν ξεκινά με Συγκρίνει τιμές για να ελέγξει εάν η πρώτη τιμή δεν ξεκινά με τα δεδομένα της δεύτερης τιμής. Η τιμή για το order.shippingAddress.country συγκρίνεται με το: United.

Αν η χώρα για τη διεύθυνση αποστολής της παραγγελίας είναι Canada, τότε η συνθήκη αληθεύει, επειδή το «United Kingdom» δεν ξεκινά με το «Canada».
Τελειώνει με Συγκρίνει τιμές για να ελέγξει εάν η πρώτη τιμή τελειώνει με τα δεδομένα της δεύτερης τιμής. Η τιμή για το order.lineitems.product.title συγκρίνεται με το: pie.

Αν ο τίτλος προϊόντος του στοιχείου γραμμής είναι key lime pie, τότε η συνθήκη αληθεύει, επειδή το «key lime pie» τελειώνει σε «pie».
Δεν τελειώνει με Συγκρίνει τιμές για να ελέγξει εάν η πρώτη τιμή δεν τελειώνει με τα δεδομένα της δεύτερης τιμής. Η τιμή για το order.lineitems.product.title συγκρίνεται με το: pie.

Αν ο τίτλος προϊόντος του στοιχείου γραμμής είναι chocolate cake, τότε η συνθήκη αληθεύει, επειδή το «chocolate cake» δεν τελειώνει σε «pie».

Τελεστές null ή κενοί

Λίστα τελεστών null και κενών στις συνθήκες του Shopify Flow.
ΤελεστήςΠεριγραφήΣυνθήκη Αληθής/Ψευδής
Κενό ή δεν υπάρχειΕλέγχει αν ένα πεδίο είναι κενό (δεν έχει τιμή) ή δεν υπάρχει (είναι null). Επιστρέφει true όταν το πεδίο είναι κενό ή null και false εάν υπάρχει.
Μη κενό και υπάρχειΕλέγχει αν ένα πεδίο υπάρχει και δεν είναι κενό ή null. Επιστρέφει true όταν το πεδίο δεν είναι κενό και υπάρχει, false όταν είναι κενό.

Τελεστές λίστας

Οι τελεστές λίστας συνδυάζονται με τελεστές σε επίπεδο πεδίου, ώστε να μπορείτε να ελέγχετε συνθήκες σε δεδομένα που περιλαμβάνονται σε λίστες.

Όπως στο παράδειγμα «τουλάχιστον ένα από», μπορεί να θέλετε να ελέγξετε αν μια παραγγελία περιέχει ένα συγκεκριμένο προϊόν (που βρίσκεται στο order.lineItems) με μια συγκεκριμένη ετικέτα (μια λίστα στο order.lineItems.product.tags). Και στις δύο περιπτώσεις, το παράδειγμα χρησιμοποιεί τον τελεστή λίστας τουλάχιστον ένα από.

Το Flow παρέχει 3 τελεστές για την εργασία με λίστες: Τουλάχιστον ένα από, Κανένα από και Όλα από.

Πίνακας τελεστών λίστας στις συνθήκες του Shopify Flow.
ΤελεστήςΠεριγραφήΠαράδειγμα χρήσης
Τουλάχιστον ένα απόΕλέγχει αν κάποιο στοιχείο της λίστας ταιριάζει με την καθορισμένη συνθήκη.

Επιστρέφει true αν ταιριάζει οποιοδήποτε στοιχείο της λίστας. Αν η λίστα είναι κενή ή δεν ταιριάζει κανένα στοιχείο, τότε επιστρέφει false.
Ελέγξτε αν μια παραγγελία περιέχει ένα προϊόν με μια συγκεκριμένη ετικέτα χρησιμοποιώντας τη συνθήκη Τουλάχιστον ένα από τα order line items.product.tags είναι ίσο με το tagname.
Κανένα απόΕλέγχει ότι κανένα από τα στοιχεία της λίστας δεν ταιριάζει με την καθορισμένη συνθήκη.

Επιστρέφει true αν κανένα από τα στοιχεία δεν ταιριάζει με τη συνθήκη. Αν η λίστα είναι κενή, τότε επιστρέφει true.
Ελέγξτε αν ένα προϊόν δεν έχει την ετικέτα presale χρησιμοποιώντας το None of product tags is equal to presale.

Ένα συνηθισμένο λάθος είναι η προσπάθεια άρνησης του τελεστή χρησιμοποιώντας το is not equal to. Η χρήση αυτής της διπλής άρνησης, None of product tags is not equal to presale, καθιστά τη συνθήκη δυσνόητη και μη έγκυρη.
Όλα απόΕλέγχει ότι όλα τα στοιχεία της λίστας ταιριάζουν με την καθορισμένη συνθήκη.

Επιστρέφει true αν κάθε στοιχείο της λίστας ταιριάζει με τη συνθήκη.
Ελέγξτε αν όλα τα στοιχεία σε μια παραγγελία έχουν έναν συγκεκριμένο αποκλειστικό πωλητή προϊόντος που ονομάζεται Acme χρησιμοποιώντας τη συνθήκη Όλα τα order line items έχουν ένα product.vendor ίσο με Acme.

Διάταξη συνθηκών

Μπορείτε να δημιουργήσετε ροές εργασίας που έχουν πολλαπλές συνθήκες, κάθε μία από τις οποίες μπορεί να οδηγήσει σε διαφορετικές ενέργειες. Η σειρά των συνθηκών έχει σημασία. Ο έλεγχος για τις συνθήκες ξεκινά στην αρχή της ροής εργασίας και προχωρά συστηματικά σε κάθε συνθήκη. Ο έλεγχος σταματά όταν πληρούται μια συνθήκη.

Αυτό το παράδειγμα χρησιμοποιεί πολλαπλές συνθήκες για να ελέγξει εάν ένας πελάτης είναι κατάλληλος για ένα πρόγραμμα επιβράβευσης με βάση το συνολικό ποσό που έχει ξοδέψει στο κατάστημα. Οι συνθήκες ελέγχονται με τη σειρά με την οποία εμφανίζονται:

  1. Εάν η συνολική τιμή είναι μεγαλύτερη από 1.000 $ και ο πελάτης συμφωνεί να αποδέχεται το μάρκετινγκ, τότε προσθέστε του την ετικέτα Gold.
  2. Εάν η συνολική τιμή είναι μικρότερη από 1.000 $ αλλά μεγαλύτερη από 500 $ και ο πελάτης συμφωνεί να αποδέχεται το μάρκετινγκ, τότε προσθέστε του την ετικέτα Silver.
  3. Εάν η συνολική τιμή είναι μικρότερη από 500 $ αλλά μεγαλύτερη από 200 $ και ο πελάτης συμφωνεί να αποδέχεται το μάρκετινγκ, τότε προσθέστε του την ετικέτα Bronze.

Παράδειγμα ροής εργασίας που ελέγχει το συνολικό ποσό δαπανών ενός πελάτη και προσθέτει ετικέτες

Συνδυασμός πολλαπλών κριτηρίων σε μία συνθήκη

Κατά τη δημιουργία μιας συνθήκης, μπορείτε να ορίσετε πολλά κριτήρια. Μπορείτε να επιλέξετε πώς αυτά τα ξεχωριστά κριτήρια θα πρέπει να συνδυαστούν για να καθοριστεί εάν η συνολική συνθήκη είναι αληθής ή ψευδής.

Αν πληρούνται όλα τα κριτήρια

Η επιλογή AND (ΚΑΙ) έχει ως αποτέλεσμα μια αληθή απόκριση μόνο εάν κάθε κριτήριο που έχετε ορίσει είναι αληθές.

Για παράδειγμα, δημιουργείτε μια ροή εργασίας για την προσθήκη ετικετών σε πελάτες που βρίσκονται στον Καναδά και ξοδεύουν περισσότερα από 500 $ σε μία μόνο παραγγελία.

Παράδειγμα μιας ροής εργασίας που χρησιμοποιεί τη συνθήκη and

Η ροή εργασίας προσθέτει ετικέτα στον πελάτη μόνο εάν ο πελάτης βρίσκεται στον Καναδά και ξοδεύει περισσότερα από 500 $ στην παραγγελία. Εάν οποιαδήποτε από αυτές τις συνθήκες είναι ψευδής, τότε δεν προστίθεται ετικέτα στον πελάτη.

Εάν πληρούνται οποιαδήποτε κριτήρια

Η επιλογή OR έχει ως αποτέλεσμα μια αληθή απόκριση, εάν οποιοδήποτε από τα κριτήρια που ορίζετε είναι αληθές.

Για παράδειγμα, δημιουργείτε μια ροή εργασίας για την προσθήκη ετικέτας σε παραγγελίες με σύσταση κινδύνου Ακύρωση ή Διερεύνηση. Εφόσον μία από αυτές τις συνθήκες είναι αληθής, προστίθεται ετικέτα στην παραγγελία.

Παράδειγμα μιας ροής εργασίας που χρησιμοποιεί τη συνθήκη or

Στατικά και δυναμικά δεδομένα σε συνθήκες

Συνήθως, η δεύτερη τιμή σε μια συνθήκη είναι μια στατική τιμή που εισάγεται χειροκίνητα (όπως product.title == "your title"). Αυτή η τιμή παραμένει ίδια κάθε φορά που εκτελείται η ροή εργασίας.

Μπορείτε επίσης να χρησιμοποιήσετε δυναμικές τιμές εάν το πεδίο για τη δεύτερη τιμή εμφανίζει ένα εικονίδιο Επεξεργασία κώδικα. Οι δυναμικές τιμές αντλούνται από τα δεδομένα του καταστήματός σας κάθε φορά που εκτελείται η ροή εργασίας. Για να χρησιμοποιήσετε μια δυναμική τιμή, κάντε κλικ στο εικονίδιο Επεξεργασία κώδικα και επιλέξτε την τιμή με την οποία θέλετε να κάνετε τον έλεγχο. Οι δυναμικές τιμές δεν είναι διαθέσιμες για όλα τα πεδία.

Για παράδειγμα, δημιουργείτε μια ροή εργασίας που προσθέτει ετικέτα σε μια παραγγελία, εάν η χώρα στη διεύθυνση χρέωσης της παραγγελίας αντιστοιχεί στη χώρα στη διεύθυνση αποστολής της.

Παράδειγμα ροής εργασίας που προσθέτει ετικέτα σε μια παραγγελία χρησιμοποιώντας δεδομένα της δεξιάς πλευράς (RHS) για να ελέγξει αν η χώρα χρέωσης και η χώρα αποστολής του πελάτη είναι οι ίδιες.

Σε αυτό το παράδειγμα, τόσο η πρώτη όσο και η δεύτερη τιμή αντλούνται από τα δεδομένα του καταστήματός σας, αντί να προσδιορίζεται χειροκίνητα μια στατική συμβολοσειρά για έλεγχο για τη δεύτερη τιμή. Εάν η χώρα στη διεύθυνση χρέωσης που έδωσε ο πελάτης είναι η ίδια με τη χώρα στη διεύθυνση αποστολής, τότε η συνθήκη είναι αληθής και προστίθεται ετικέτα στην παραγγελία.

Ενδέχεται περιστασιακά να χρειαστεί να χρησιμοποιήσετε δυναμικά δεδομένα που είναι λάθος τύπου. Για παράδειγμα, μπορεί να χρειαστεί να συγκρίνετε έναν αριθμό που είναι αποθηκευμένος ως συμβολοσειρά με έναν άλλο αριθμό. Σε αυτή την περίπτωση, μπορείτε να χρησιμοποιήσετε την επιλογή Εκτέλεση κώδικα για να μετατρέψετε τα δεδομένα στον σωστό τύπο.

Πρότυπα

Τα περισσότερα πρότυπα στη βιβλιοθήκη προτύπων περιέχουν μια συνθήκη.

Παραδείγματα συνθηκών

Έλεγχος εάν τουλάχιστον ένα στοιχείο σε μια λίστα αντιστοιχεί σε μια συνθήκη

Αυτό το παράδειγμα εμφανίζει μια τυπική συνθήκη που ελέγχει εάν τουλάχιστον ένα στοιχείο σε μια λίστα αντιστοιχεί σε μια συγκεκριμένη τιμή.

Σε αυτήν την περίπτωση, η συνθήκη ελέγχει εάν ένα από τα προϊόντα σε μια παραγγελία έχει ετικέτα presale. Για να δημιουργήσετε αυτήν τη συνθήκη, θα επιλέξετε order / lineItems / product / tags. Από προεπιλογή, το Flow επιλέγει το at least one of ως λογικό τελεστή:

Παράδειγμα του πίνακα διαμόρφωσης μιας συνθήκης, που εμφανίζει έναν έλεγχο για τουλάχιστον μία ετικέτα προϊόντος.

Τα τμήματα at least one of είναι τελεστές λίστας και χρησιμοποιούνται για τον χειρισμό της αντιστοίχισης σε πολλαπλά στοιχεία λίστας. Το τμήμα is equal to είναι ένας τελεστής επιπέδου πεδίου που καθορίζει εάν ένα μεμονωμένο στοιχείο λίστας αντιστοιχεί.

Έλεγχος εάν κανένα από τα στοιχεία σε μια λίστα δεν αντιστοιχεί σε μια συνθήκη

Αυτό το παράδειγμα εμφανίζει μια τυπική συνθήκη που ελέγχει εάν κανένα από τα στοιχεία σε μια λίστα δεν αντιστοιχεί σε μια συγκεκριμένη τιμή. Ένα συνηθισμένο πρόβλημα που πρέπει να λάβετε υπόψη είναι ότι οι λίστες μπορεί να είναι κενές. Όταν μια λίστα είναι κενή, η συνθήκη θα αντιμετωπιστεί από τον τελεστή λίστας (σε αυτήν την περίπτωση none of).

Σε αυτήν την περίπτωση, η συνθήκη ελέγχει εάν καμία από τις ετικέτες προϊόντων δεν είναι ίση με foo:

Παράδειγμα του πίνακα διαμόρφωσης μιας συνθήκης, που εμφανίζει έναν έλεγχο ότι καμία ετικέτα προϊόντος δεν έχει μια συγκεκριμένη τιμή.

Η συνθήκη θα επιστρέψει true εάν (1) δεν υπάρχουν ετικέτες προϊόντων ή (2) καμία από τις ετικέτες δεν είναι foo. Διαφορετικά, θα επιστρέψει false.

Έλεγχος εάν ένα στοιχείο σε μια λίστα αντιστοιχεί σε πολλαπλά κριτήρια

Αυτό το παράδειγμα εμφανίζει μια τυπική συνθήκη που ελέγχει εάν τουλάχιστον ένα στοιχείο σε μια λίστα αντιστοιχεί σε δύο ξεχωριστά κριτήρια.

Σε αυτήν την περίπτωση, η συνθήκη ελέγχει εάν ένα από τα προϊόντα σε μια παραγγελία έχει ετικέτα presale και εάν έχει productType clothing.

Παράδειγμα του πίνακα διαμόρφωσης μιας συνθήκης, που εμφανίζει έναν έλεγχο για τουλάχιστον μία ετικέτα προϊόντος και ένα productType.

Για να δημιουργήσετε αυτήν τη συνθήκη, θα πρέπει:

  1. Επιλέξτε order / lineItems / product / tags για το πρώτο κριτήριο.
  2. Επιλέξτε Add criteria for same item στη λίστα lineItems. Σημείωση: Η επιλογή του λάθος στοιχείου λίστας εδώ είναι ένα συνηθισμένο λάθος.
  3. Επιλέξτε το lineItems_item ως αντικείμενο ανώτατου επιπέδου και, στη συνέχεια, το product / productType για το δεύτερο κριτήριο. Σημείωση: Η επιλογή του λάθος αντικειμένου εδώ είναι επίσης ένα συνηθισμένο λάθος.
  4. Επιλέξτε AND για να συνδυάσετε τα δύο κριτήρια.
  5. Εισαγάγετε τις τιμές presale και clothing για τα δύο κριτήρια.