Условия в Shopify Flow
Условие — это шаг в рабочем процессе, на котором принимается решение о дальнейших действиях в зависимости от того, выполнен ли набор критериев. Каждый шаг условия имеет два варианта: «Истина», если критерии выполнены, и «Ложь», если критерии не выполнены. Если вы не определите следующий шаг для одного из этих вариантов, выбрав другое условие или действие, то выполнение рабочего процесса остановится.
Например, если рабочий процесс запускается при создании заказа, условие может проверять, был ли в заказе использован определенный код скидки AFFILIATE10. Если да, то вариант «Истина» может привести к действию, которое отправит электронное письмо партнеру, чтобы уведомить его об использовании кода. Если нет, то вариант «Ложь» может быть пустым, что означает, что никаких дальнейших действий не происходит и выполнение рабочего процесса завершается.
Рабочий процесс может содержать любое количество условий в зависимости от его сложности. Условия также могут быть связаны с другими условиями или действиями в зависимости от того, что должен делать рабочий процесс. Условия можно настроить так, чтобы они соединялись последовательно (например, если условие A истинно, то проверить условие B; если A ложно, то проверить C) или выполнялись одновременно в рамках одного шага (например, проверить, истинно ли A, B или C).
На этой странице
Создание условий для рабочего процесса
В отличие от триггера или действия, которые можно выбрать из готового списка доступных опций в Shopify Flow, условия создаются с нуля путем выбора переменных, логических операторов и значений для формирования условного оператора:
- Переменная — это заполнитель, который определяет данные, используемые условием. Например, если условие должно проверить наличие определенного кода скидки в заказе, переменной будет
order.discountCode. Переменные используют точечную нотацию GraphQL Admin API. - Логический оператор указывает, как рабочий процесс должен определять, выполнено ли условие. Логические операторы могут применяться на уровне переменных или когда в общие критерии условия включено несколько переменных:
- Параметры на уровне переменных включают операторы уровня поля, такие как «Больше чем» или «Начинается с», или операторы списка, такие как «Хотя бы один из» или «Все из».
- Параметры на уровне условия включают оператор AND (означает, что все переменные должны быть истинными, чтобы условие в целом считалось истинным) или оператор OR (означает, что хотя бы одна переменная должна быть истинной, чтобы условие в целом считалось истинным).
- Значение — это фактическая информация, которую ищет переменная. Например, если вы хотите, чтобы рабочий процесс проверял конкретный
order.discountCodeAFFILIATE10, то это и будет значением, которое нужно включить в условие.
По мере выбора переменных и операторов шаг условия на холсте Shopify Flow обновляется, чтобы отобразить ваш условный оператор на простом языке, и вы могли дважды проверить правильность форматирования создаваемого условия. Вы можете нажать «Добавить описание», чтобы заменить условный оператор по умолчанию собственным описанием.
Узнайте больше об элементах условий в Shopify Flow.
Общие сведения о переменных в условиях
При создании шага условия в рабочем процессе первым делом вам предлагается «Добавить переменную». Но что такое переменная?
В Shopify Flow переменная — это заполнитель, который указывает данные, используемые условием в рабочем процессе. Когда условие гласит: «Если A больше 10...», часть A является переменной. Выбор переменной для условия — это, по сути, указание условию, какие именно данные следует оценивать.
Переменные форматируются с использованием точечной нотации GraphQL Admin API. Вам не нужно в совершенстве владеть API для создания рабочих процессов с помощью приложения Flow, но базовое понимание имен переменных и их определений может помочь вам построить нужную логику рабочего процесса.
Чтобы понять, какие данные представляет переменная, ознакомьтесь со следующей информацией о переменных:
- Как читать точечную нотацию переменных.
- Общие сведения о требованиях к данным для переменных.
- Поиск правильной переменной.
Совет: воспользуйтесь помощью Shopify Dev Docs Assistant для работы с переменными
Если вы не уверены, какую переменную выбрать при создании условия, обратитесь за советом к Shopify Dev Docs Assistant. Shopify Dev Docs Assistant имеет доступ ко всей документации по GraphQL Admin API и может предложить варианты форматирования условия в Shopify Flow:
- Перейдите на страницу Shopify Dev Docs.
- Нажмите «Спросить ассистента», чтобы открыть панель чата.
- В поле сообщения введите свой запрос, например: «Какую переменную мне следует использовать в Shopify Flow, если я хочу получить доступ к данным тега клиента, когда мой триггер — „Заказ создан“?».
- Нажмите Enter или щёлкните
.
Чтение точечной нотации переменных
При выборе переменных вы заметите, что они отформатированы как ключевые слова, разделённые точками, например order.customer.tag. Этот формат указывает шаги, которые API выполняет для получения нужных вам данных. Каждый «шаг» переменной отделяется точкой, а путь к данным читается слева направо. Переменные могут различаться по длине в зависимости от того, где в API хранятся данные и какой путь проходит рабочий процесс, чтобы их получить.
Например:
order.email: проверяет адрес электронной почты, связанный с клиентом в заказе. Это похоже на то, как вы могли бы щёлкнуть заказ, а затем проверить адрес электронной почты в его деталях.refunds_item.staffMember.name: проверяет возврат платежа за товар в заказе, переходит к информации о сотруднике, связанном с этим возвратом, и проверяет полное имя этого сотрудника.
Выбирая переменную, подумайте, как бы вы переходили по панели администратора Shopify, чтобы найти нужную информацию. Скорее всего, API потребуется пройти аналогичный путь, что поможет вам определить, как может быть отформатирована ваша переменная.
Например, если вы просматриваете новый заказ и хотите узнать, в какой RFM-группе находится связанный с ним клиент, то вы можете щёлкнуть имя клиента в заказе, чтобы перейти на страницу с его данными в панели администратора Shopify, а затем проверить аналитическую сводку по клиенту, чтобы увидеть значение в столбце «RFM-группа».
Переменная, которую вы бы использовали для получения тех же данных в Shopify Flow, будет иметь похожий путь: order.customer.statistics.rfmGroup.
Требования к данным для переменных
Для переменных требуются данные. Если для переменной недоступны нужные данные, то условие не сработает и рабочий процесс завершится сбоем. В зависимости от того, какой триггер вы выбрали в качестве начала рабочего процесса, набор переменных для добавления в условия меняется, отражая возможные варианты на основе доступных данных.
Например, если ваш рабочий процесс начинается с триггера «Товар создан», то создаваемые на его основе условия ограничены переменными, доступными из набора данных товара. Поэтому такие переменные, как product.category.name, product.vendor и variants_item.displayName, доступны для использования в условии. В то же время такие переменные, как customer.verifiedEmail или subscriptionContracts_item.status, не будут отображаться в качестве вариантов, поскольку они не связаны с набором данных товара.
Однако это не означает, что данные из других наборов полностью недоступны. К некоторым данным можно получить доступ по нескольким путям в API, так же как вы можете переходить по разным ссылкам, чтобы попасть на одну и ту же страницу в панели администратора Shopify. На практике это означает, что для разных триггеров требуется разная нотация переменных, чтобы вернуть одну и ту же информацию.
Например, вы хотите, чтобы ваш рабочий процесс проверял теги в профиле клиента. Если ваш рабочий процесс начинается с триггера «Заказ создан», то переменной будет order.customer.tags, потому что рабочий процесс начинается с данных заказа, затем проверяет информацию о клиенте в заказе и после этого — теги этого клиента. Если ваш рабочий процесс начинается с триггера «Клиент создан», то переменной будет просто customer.tags, поскольку рабочий процесс начинается с данных клиента и может сразу перейти к проверке тегов в его профиле.
Проверка пути переменной при поиске по ключевым словам
Из-за использования точечной нотации в Shopify Flow поиск переменных для условия по ключевым словам может дать несколько результатов. Чтобы правильно выбрать переменную при построении условия, важно понимать, что указывает её путь.
Например, ваш рабочий процесс использует триггер «Заказ создан», и вы ищете переменную по ключевому слову tags. В результатах поиска могут появиться следующие варианты, которые проверяют разную информацию в заказе:
order.tags: теги, применённые к самому заказу. Например, #срочный_заказ или #подарок.order.customer.tags: теги, применённые к клиенту, который разместил заказ. Например, #VIP или #партнёр.order.lineItems.product.tags: теги, применённые к товарам, купленным в заказе. Например, #хрупкое или #нужен_документ.
В зависимости от того, какой тип тегов должен проверять рабочий процесс, вам нужно выбрать правильную переменную, чтобы условие работало так, как ожидается.
Понимание логических операторов в условиях
Логические операторы определяют, как применяется ваше условие, и в результате утверждение становится истинным или ложным. Когда условие гласит «Если А больше 10...», часть больше является логическим оператором. Выбор логического оператора для условия по сути указывает ему, как оценивать переменную.
В рабочих процессах Shopify Flow существует 3 типа логических операторов:
- Операторы уровня поля, такие как «Больше чем» или «Начинается с».
- Операторы списка, такие как «Хотя бы один из» или «Все из».
- Операторы уровня условия, такие как AND или OR.
Операторы уровня поля и операторы списка применяются на уровне переменных, а операторы уровня условия — ко всему условию в целом. Их можно использовать для объединения нескольких переменных в одно условие.
Операторы уровня поля — это самые распространённые типы операторов, используемые в любом типе утверждения с переменными. С их помощью можно создавать условные утверждения, например «Если А больше 10, то выполнить X» или «Если B содержит „VIP“, то выполнить X», чтобы точнее контролировать, какие значения переменной возвращают истинный результат. Логическим оператором по умолчанию является «Равно».
Операторы списка могут применяться только к переменным, которые могут возвращать список результатов. Например, переменная lineItems_item.variant.price возвращает цену варианта товара в заказе, что может дать список результатов, если клиент купил несколько товаров в одном заказе. Это означает, что вы можете применить оператор списка, например «Хотя бы один из», если хотите, чтобы условное утверждение «lineItems_item.variant.price больше 10 $» было истинным, когда в заказе есть хотя бы 1 вариант товара дороже 10 $. И наоборот, операторы списка не отображаются для переменных, которые могут возвращать только 1 результат за раз. Например, для такой переменной, как order.createdAt, есть только 1 возможное значение, поскольку заказ может быть создан только один раз, поэтому операторы списка не отображаются в качестве вариантов для изменения утверждения, содержащего эту переменную.
Операторы на уровне условия, такие как AND и OR, позволяют включать в одно условие несколько переменных. Например, вместо простого условного оператора «Если А равно 5, то выполнить X» можно создавать более сложные условия, такие как «Если А равно 5 и B больше 10, то выполнить X», где требуется, чтобы обе переменные (А и B) были истинными, или «Если А равно 5, или B больше 10, или C меньше 1, то выполнить X», где требуется, чтобы истинной была хотя бы одна из переменных (А, B или C). Используйте AND, когда все критерии в рабочем процессе должны быть истинными; используйте OR, когда для истинности условия достаточно выполнения хотя бы одного критерия.
Почему это важно: понимание того, как логические операторы работают в условиях, позволяет создавать рабочие процессы, которые проверяют именно те критерии, которые вам нужны. Используя три типа логических операторов, вы можете составлять детализированные и сложные условные операторы для создания рабочих процессов, проверяющих очень конкретные условия.
Ознакомьтесь с подробной информацией о логических операторах в условиях.