Warunki w Shopify Flow
W aplikacji Shopify Flow warunki służą do ustalenia ścieżki, jakiej należy zwykle użyć w workflow w celu sprawdzenia, czy wykonano czynność. Po skonfigurowaniu warunku wybierz pole danych do kontroli (np. tytuł produktu), operator logiczny (np. equal to
) i wartość, względem której ma się odbyć kontrola (Blue jeans
).
Na tej stronie
Przykładowe warunki
Sprawdź, czy co najmniej jedna pozycja na liście spełnia warunek
W tym przykładzie wyświetlany jest typowy warunek, który sprawdza, czy co najmniej jedna pozycja na liście pasuje do określonej wartości.
W tym przypadku warunek sprawdza, czy jeden z produktów w zamówieniu ma tag presale
. Aby utworzyć ten warunek, wybierz order / lineItems / product / tags
. Domyślnie Flow wybiera co najmniej jeden z jako operator logiczny:
Części co najmniej jeden z to operatory listy, które są używane do obsługi dopasowywania wielu pozycji listy. Część równa się to operator na poziomie pola, który określa, czy pojedyncza pozycja listy jest dopasowana.
Sprawdź, czy żadna z pozycji na liście nie spełnia warunku
W tym przykładzie wyświetlany jest typowy warunek, który sprawdza, czy żadna z pozycji na liście nie pasuje do określonej wartości. Jednym z najczęstszych problemów jest to, że listy mogą być puste. Gdy lista jest pusta, warunek będzie obsługiwany przez operatora listy (w tym przypadku żaden z).
W takim przypadku warunek sprawdza, czy żaden z tagów produktu nie równa się foo:
Warunek zwróci true
, jeśli (1) nie ma tagów produktu lub (2) żaden z tagów nie jest oznaczony jako foo. W przeciwnym razie zwróci wartość false
.
Sprawdź, czy pozycja na liście spełnia wiele kryteriów
W tym przykładzie wyświetlany jest typowy warunek, który sprawdza, czy co najmniej jedna pozycja na liście spełnia dwa oddzielne kryteria.
W takim przypadku warunek sprawdza, czy jeden z produktów w zamówieniu ma tag presale
i czy ma typ produktu (productType) clothing
.
Aby utworzyć ten warunek:
- Wybierz order / lineItems / product / tags dla pierwszego kryterium.
- Wybierz opcję Dodaj kryteria dla tej samej pozycji na liście lineItems. Uwaga: Częstym błędem jest tutaj wybór nieprawidłowej pozycji listy.
- Wybierz lineItems_item jako obiekt najwyższego poziomu, a następnie produkt / productType' dla drugiego kryterium. Uwaga: Częstym błędem jest tutaj wybór nieprawidłowego obiektu.
- Wybierz AND, aby połączyć dwa kryteria.
- Wprowadź wartości
presale
iclothing
dla dwóch kryteriów.
Typy danych używane na platformie Flow
Pierwszą wartością w każdym warunku Flow są dane pochodzące z Twojego sklepu pobierane z interfejsu API GraphQL Admin.
Flow obsługuje następujące rodzaje danych:
- Wartość zmiennoprzecinkowa: Wartości zmiennoprzecinkowe to liczby z częścią dziesiętną, np. 4,25.
- Wartość całkowita: Wartości całkowite to liczby całkowite, które nie mają części dziesiętnej, np. 42.
- Data: Wartości daty to numeryczna reprezentacja daty, np. 01012021.
- Ciąg znaków: Wartości ciągów znaków są tekstem. W porównaniach wykorzystujących wartości ciągów znaków nie jest rozróżniana wielkość liter.
- Wartość logiczna: Wartości logiczne mają wartość prawda lub fałsz.
- Typ wyliczeniowy: Wartości typów wyliczeniowych są zestawami danych, które pozwalają na to, aby zmienna była zestawem predefiniowanych stałych.
Operatory logiczne
Operatory logiczne określają sposób zastosowania warunku. Warunki mogą sprawdzać proste właściwości, takie jak to, czy suma zamówienia przekracza określoną kwotę lub czy klient wyraził zgodę na otrzymywanie materiałów marketingowych. Operatory logiczne mogą również sprawdzać bardziej złożone właściwości.
Operatory mogą być operatorami na poziomie pola, np. równa się lub nie równa się lub operatorami listy, np. co najmniej jeden z lub żaden z.
Operatory na poziomie pola
Operatory na poziomie pola są używane do porównywania dwóch wartości. Aplikacja Flow może używać następujących operatorów:
- Równe
- Nierówne
- Większe niż i większe niż lub równe
- Mniejsze niż i mniejsze niż lub równe
- Dowolny z
- Żadna spośród
- Zawiera
- Nie zawiera
- Zaczyna się od
- Nie zaczyna się od
- Kończy się na
- Nie kończy się na
Równe
Operator Równe porównuje wartości, aby sprawdzić, czy są takie same. W poniższym przykładzie wartość dla order.currentTotalDiscountsSet.shopMoney.amount
pobierana jest z danych sklepu i porównywana z drugą wartością wynoszącą 50.
Jeśli pierwsza wartość jest równa 50, warunek ma wartość PRAWDA. Zamówienie jest anulowane.
Nierówne
Operator Nie równa się porównuje wartości, aby sprawdzić, czy nie są takie same. W poniższym przykładzie wartość dla order.currentTotalDiscountsSet.shopMoney.amount
pobierana jest z danych sklepu i porównywana z drugą wartością wynoszącą 50.
Jeśli pierwsza wartość jest równa 50, warunek ma wartość PRAWDA. Zamówienie jest anulowane.
Większe niż i większe niż lub równe
Operatory Większe niż i Większe niż lub równe porównują wartości, aby sprawdzić, czy pierwsza wartość jest większa niż bądź większa niż lub równa drugiej wartości. W poniższym przykładzie wartość dla order.currentTotalDiscountsSet.shopMoney.amount
pobierana jest z danych sklepu i porównywana z drugą wartością wynoszącą 50.
Jeśli wartość pochodząca ze sklepu wynosi 137, warunek ma wartość PRAWDA, ponieważ 137 jest większe niż 50. Zamówienie jest anulowane.
Mniejsze niż i mniejsze niż lub równe
Operatory Mniejsze niż i Mniejsze niż lub równe porównują wartości, aby sprawdzić, czy pierwsza wartość jest mniejsza czy mniejsza niż lub równa drugiej wartości. W poniższym przykładzie wartość dla order.currentTotalDiscountsSet.shopMoney.amount
pobierana jest z danych sklepu i porównywana z drugą wartością wynoszącą 50.
Jeśli wartość pochodząca ze sklepu wynosi 47, warunek ma wartość PRAWDA, ponieważ 47 jest mniejsze niż lub równe 50. Zamówienie jest anulowane.
Co najmniej jeden z
Operator Co najmniej jeden z sprawdza, czy pole jest równe wartościom z podanej listy. Wartości, które mają być sprawdzane, należy wprowadzać pojedynczo, a następnie nacisnąć klawisz Enter (podobnie jak w przypadku tagów). Użycie operatora Co najmniej jeden z na pustej tablicy skutkuje fałszywą oceną. W poniższym przykładzie wartość order.lineitem.product.title
jest pobierana z danych sklepu i porównywana z drugim zestawem wartości: ananas, gujawa, kiwi.
Jeśli wartość pochodząca ze sklepu to gujawa, warunek ma wartość PRAWDA, ponieważ gujawa jest zawarta w tablicy ananas, gujawa, kiwi. Zamówienie jest anulowane.
Żaden z
Operator Żaden z operatora sprawdza, czy pole nie równa się żadnej z wartości z podanej listy. Wartości, które mają być sprawdzane, należy wprowadzać pojedynczo, a następnie nacisnąć klawisz Enter (podobnie jak w przypadku tagów). W poniższym przykładzie wartość order.lineitem.product.title
jest pobierana z danych sklepu i porównywana z drugim zestawem wartości: ananas, gujawa, kiwi.
Jeśli wartość pochodząca ze sklepu to malina, warunek ma wartość PRAWDA, ponieważ malina nie jest zawarta w tablicy ananas, gujawa, kiwi. Zamówienie jest anulowane.
Zawiera
Operator Zawiera porównuje wartości, aby sprawdzić, czy pierwsza wprowadzona wartość zawiera dane z drugiej wprowadzonej wartości. W poniższym przykładzie wartość dla order.lineitem.product.title
pobierana jest z danych sklepu i porównywana z drugą wartością złomować.
Jeśli wartość pochodząca ze sklepu to skyscraper, warunek ma wartość PRAWDA, ponieważ dokładny ciąg znaków scrape jest zawarty w ciągu znaków skyscraper. Zamówienie jest anulowane.
Nie zawiera
Operator Nie zawiera porównuje wartości, aby sprawdzić, czy pierwsza wprowadzona wartość nie zawiera danych z drugiej wprowadzonej wartości. W poniższym przykładzie wartość dla order.lineitem.product.title
pobierana jest z danych sklepu i porównywana z drugą wartością złomować.
Jeśli wartość pobrana z danych sklepu to złom metalowy, warunek ma wartość PRAWDA, ponieważ dokładny ciąg znaków złomować nie jest zawarty w ciągu znaków złom metalowy. Zamówienie jest anulowane.
Zaczyna się od
Operator Zaczyna się od porównuje wartości, aby sprawdzić, czy pierwsza wartość zaczyna się danymi z drugiej wartości. W poniższym przyk ładzie wartość dla order.shippingAddress.country
pobierana jest z danych sklepu i porównywana z drugą wartością Wielka.
Jeśli wartość pochodząca ze sklepu to Wielka Brytania, warunek ma wartość PRAWDA, ponieważ ciąg znaków Wielka rozpoczyna ciąg znaków Wielka Brytania. Zamówienie jest anulowane.
Nie zaczyna się od
Operator Nie zaczyna się od porównuje wartości, aby sprawdzić, czy pierwsza wartość nie zaczyna się danymi z drugiej wartości. W poniższym przykładzie wartość dla order.shippingAddress.country
pobierana jest z danych sklepu i porównywana z drugą wartością Wielka.
Jeśli wartość pochodząca ze sklepu to Kanada, warunek ma wartość PRAWDA, ponieważ ciąg znaków Kanada nie rozpoczyna ciągu znaków Wielka Brytania. Zamówienie jest anulowane.
Kończy się na
Operator Kończy się na porównuje wartości, aby sprawdzić, czy pierwsza wartość kończy się danymi z drugiej wartości. W poniższym przykładzie wartość dla order.lineitems.product.title
pobierana jest z danych sklepu i porównywana z drugą wartością ostatnie w magazynie.
Jeśli wartość pochodząca ze sklepu to „skarpetki sportowe ostatnie w magazynie”, warunek ma wartość PRAWDA, ponieważ ciąg znaków „skarpetki sportowe ostatnie w magazynie” kończy się ciągiem „ostatnie w magazynie”. Zamówienie jest anulowane.
Nie kończy się na
Operator Nie kończy się na porównuje wartości, aby sprawdzić, czy pierwsza wartość nie kończy się danymi z drugiej wartości. W poniższym przykładzie wartość dla order.lineitems.product.title
pobierana jest z danych sklepu i porównywana z drugą wartością ostatnie w magazynie.
Jeśli wartość pochodząca ze sklepu to „skarpetki sportowe nowe”, warunek ma wartość PRAWDA, ponieważ ciąg znaków „skarpetki sportowe nowe” nie kończy się ciągiem „ostatnie w magazynie”. Zamówienie jest anulowane.
Operatory null lub puste
Puste lub nie istnieje
Niektóre pola danych mogą być puste. Na przykład, order.cancelReason
zwróci wartość null
, jeśli zamówienie nie zostanie anulowane. Użyj operatora puste lub nie istnieje, jeśli chcesz, by zwrócona została wartość true
, gdy pole jest puste lub null
i false
, jeśli istnieje.
Niepuste i istnieje
Niektóre pola danych mogą być puste. Na przykład, order.cancelReason
zwróci wartość null
, jeśli zamówienie nie zostanie anulowane. Użyj operatora Niepuste i istnieje, jeśli chcesz, by zwrócona została wartość true
, gdy pole nie jest puste i false
, gdy jest puste.
Operatory listy
Operatory listy są łączone z operatorami na poziomie pola, aby umożliwić sprawdzenie warunków dotyczących danych zawartych na listach.
Tak jak w przykładzie „co najmniej jeden”, możesz sprawdzić, czy zamówienie zawiera określony produkt (znajdujący się w order.lineItems
) z określonym tagiem (lista pod order.lineItems.product.tags
). W obu przypadkach w tym przykładzie używany jest operator listy co najmniej jeden z.
Flow zapewnia 3 operatory do pracy z listami: Co najmniej jeden z, Żaden z i Wszystkie z.
Co najmniej jeden z
Większość warunków z listami użyje operatora Co najmniej jeden z. Ten operator zwróci true
, jeśli którakolwiek z pozycji na liście spełnia warunek. Na przykład, jeśli chcesz sprawdzić, czy zamówienie zawiera produkt z określonym tagiem, użyj operatora Co najmniej jeden z. Gdy lista jest pusta lub gdy warunek nie zostanie spełniony, warunek zwróci wartość false
.
Żaden z
W niektórych przypadkach można sprawdzić, czy lista nie zawiera pozycji. Najlepszym sposobem na utworzenie tego warunku jest zmiana operatora listy na Żaden z. Ten operator zwróci wartość true
, jeśli żadna z pozycji na liście nie spełnia warunku. Co ważne, jeśli lista jest pusta, operator również zwraca wartość true
. Na przykład, jeśli chcesz sprawdzić, czy produkt nie zawiera tagu presale
, użyj warunku None of product tags is equal to presale
.
Wszystkie z
W ograniczonej liczbie przypadków możesz mieć potrzebę sprawdzenia, czy wszystkie pozycje na liście spełniają określony warunek. Na przykład możesz sprawdzić, czy wszystkie pozycje w zamówieniu mają określonego dostawcę produktu o nazwie Acme
. W tym celu należy użyć warunku All of order line items have a product.vendor equal to Acme
.
Warunki zamawiania
Możesz tworzyć procesy workflow, które mają wiele warunków, a każdy z nich może skutkować różnymi czynnościami. Kolejność warunków ma znaczenie. Kontrola warunków rozpoczyna się na początku workflow i przechodzi przez każdy warunek. Kontrola zatrzymuje się po spełnieniu określonego warunku.
Łączenie wielu kryteriów w jednym warunku
Podczas tworzenia warunku możesz ustawić kilka kryteriów. Możesz wybrać sposób połączenia takich oddzielnych kryteriów.
Jeśli spełnione są wszystkie warunki
Wybranie opcji Jeśli spełnione są wszystkie warunki sprawi, że odpowiedź będzie mieć wartość logiczną PRAWDA tylko wtedy, gdy każde ustawione kryterium będzie mieć wartość PRAWDA. Przypomina to instrukcję AND
w programowaniu.
Przykład: tworzony jest workflow w celu oznaczania klientów, którzy znajdują się w Kanadzie i wydają więcej niż 500 USD na jedno zamówienie.
Workflow oznacza klienta tylko wtedy, gdy znajduje się on w Kanadzie i wydaje więcej niż 500 USD na zamówienie. Jeśli którykolwiek z tych warunków będzie mieć wartość FAŁSZ, klient nie zostanie oznaczony.
Jeśli są spełnione jakiekolwiek warunki
Wynikiem wyboru opcji Jeśli spełnione są jakiekolwiek warunki, jest odpowiedź PRAWDA, jeśli jedno z ustawionych kryteriów ma wartość PRAWDA. Przypomina to instrukcję OR
w programowaniu.
Przykład: tworzony jest workflow w celu oznaczania zamówień wysokiego lub średniego ryzyka.
Workflow oznacza zamówienie, jeśli jest ono obarczone wysokim lub średnim ryzykiem. Zamówienie jest oznaczone tak długo, jak długo jeden z tych warunków ma wartość PRAWDA.
Łączenie warunków i czynności
Możesz łączyć warunki, aby stworzyć jeden duży warunek. Po połączeniu warunków każdy z nich musi zostać spełniony, aby spełniony był cały warunek. Jeśli którykolwiek warunek nie zostanie spełniony, cały warunek pozostaje niespełniony. W poniższym przykładzie klient musi zaakceptować materiały marketingowe, a łączna cena zamówienia musi spełniać określony próg.
Analogicznie, możesz łączyć czynności, aby uruchamiać wiele czynności. W poniższym przykładzie użyto wielu warunków, aby sprawdzić, czy klient kwalifikuje się do programu lojalnościowego na podstawie łącznej kwoty, którą wydał w sklepie. W powyższym przykładzie niżej wymienione warunki sprawdzane są w kolejności, w jakiej się pojawiają:
- Jeśli łączna kwota jest większa niż 1000 $, a klient wyraził zgodę na otrzymywanie materiałów marketingowych, oznacz go złotym tagiem.
- Jeśli łączna kwota jest mniejsza niż 1000 $, ale większa niż 500 $, a klient wyraził zgodę na otrzymywanie materiałów marketingowych, oznacz go srebrnym tagiem.
- Jeśli klient wydał więcej niż 200 $ i wyraził zgodę na otrzymywanie materiałów marketingowych, oznacz go brązowym tagiem.
Dane statyczne i dynamiczne w warunkach
Zazwyczaj druga wartość warunku jest wartością statyczną, wprowadzaną ręcznie (na przykład product.title == "your title"
). Ta wartość pozostaje taka sama przy każdym uruchomieniu workflow.
Możesz również użyć wartości dynamicznych, jeśli w polu drugiej wartości wyświetlany jest symbol </>
. Dynamiczne wartości są pobierane z danych sklepu przy każdym uruchomieniu workflow. Aby użyć dynamicznej wartości, kliknij symbol </>
i wybierz wartość, względem której chcesz dokonać kontroli. Wartości dynamiczne nie są dostępne dla wszystkich pól.
Przykład: tworzony jest workflow, który oznacza zamówienie, jeśli kraj w adresie rozliczeniowym zamówienia jest zgodny z krajem z jego adresu wysyłki.
W tym przykładzie zarówno pierwsza, jak i druga wartość jest pobierana z danych sklepu zamiast ręcznego określania statycznego ciągu znaków, względem którego ma być sprawdzana druga wartość. Jeśli kraj w adresie rozliczeniowym podanym przez klienta jest taki sam, jak kraj podany przez klienta w adresie wysyłki, warunek ma wartość PRAWDA i zamówienie jest oznaczane.
Czasami może być konieczne użycie danych dynamicznych, które są niewłaściwego typu. Na przykład może zajść potrzeba porównania liczby przechowywanej jako ciąg znaków z inną liczbą. W takim przypadku możesz użyć opcji Uruchom kod, aby przekonwertować dane na prawidłowy typ.