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

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:

If at least one of order / lineItems:
  If at least one of lineItem_item / product / tags
    tags_item
    is equal to
    presale

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:

If none of product / tags:
  tag_item
  is equal to
  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.

If at least one of order / lineItems:
  If at least one of lineItem_item / product / tags
    tags_item
    is equal to
    presale
  AND
  If lineItem_item / product
    productType
    is equal to
    clothing

Aby utworzyć ten warunek:

  1. Wybierz order / lineItems / product / tags dla pierwszego kryterium.
  2. 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.
  3. 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.
  4. Wybierz AND, aby połączyć dwa kryteria.
  5. Wprowadź wartości presale i clothing 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

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.

Przykład procesu workflow, który wykorzystuje operator logiczny Równe w celu anulowania zamówienia, jeśli wartość pobranych danych równa się 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.

Przykład procesu workflow, który wykorzystuje operator logiczny Nierówne do anulowania zamówienia, jeśli wartość pobranych danych nie równa się 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.

Przykład procesu workflow, który wykorzystuje operator logiczny Większe niż do anulowania zamówienia, jeśli wartość pobranych danych jest większa niż 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.

Przykład procesu workflow, który wykorzystuje operator logiczny Mniejsze niż lub równe w celu anulowania zamówienia, jeśli wartość pobranych danych jest mniejsza niż lub równa 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.

Przykład procesu workflow, który wykorzystuje operator logiczny Co najmniej jeden z do anulowania zamówienia, jeśli pobrane dane zawierają ananas, gujawę lub 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.

Przykład procesu workflow, który wykorzystuje operator logiczny Nie dowolne spośród w celu anulowania zamówienia, jeśli pobrane dane zawierają ananas, gujawa lub 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ć.

Przykład procesu workflow, który wykorzystuje operator logiczny Zawiera do anulowania zamówienia, jeśli pobrane dane zawierają ciąg znaków scrape

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

Przykład procesu workflow, który wykorzystuje operator logiczny Nie zawiera w celu anulowania zamówienia, jeśli pobrane dane nie zawierają ciągu znaków scrape

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.

Przykład procesu workflow, który wykorzystuje operator logiczny Zaczyna się od do anulowania zamówienia, jeśli pobrane dane rozpoczynają się od ciągu znaków 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.

Przykład procesu workflow, który wykorzystuje operator logiczny Nie zaczyna się od w celu anulowania zamówienia, jeśli pobrane dane nie zaczynają się od ciągu znaków United

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.

Przykład procesu workflow, który wykorzystuje operator logiczny Kończy się na w celu anulowania zamówienia, jeśli pobrane dane kończą się ciągiem znaków

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.

Przykład procesu workflow, który wykorzystuje operator logiczny Kończy się na do anulowania zamówienia, jeśli pobrane dane nie kończą się ciągiem znaków „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.

Przykład workflow, który używa warunku I

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.

Przykład workflow, który używa warunku LUB

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.

Przykład procesu workflow polegającego na sprawdzeniu całkowitej kwoty wydatków klienta i dodaniu tagów

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ą:

  1. Jeśli łączna kwota jest większa niż 1000 $, a klient wyraził zgodę na otrzymywanie materiałów marketingowych, oznacz go złotym tagiem.
  2. 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.
  3. 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.

Przykład workflow, który oznacza zamówienie za pomocą danych RHS, aby sprawdzić, czy kraj rozliczenia i wysyłki klienta jest taki sam.

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.

Nie możesz znaleźć odpowiedzi, których szukasz? Jesteśmy tutaj, aby Ci pomóc.