Расписания, получение данных и циклические рабочие процессы в Shopify Flow

В большинстве случаев рабочий процесс можно построить, связав несколько условий и действий с триггером, который срабатывает при наступлении определённого события. В более сложных случаях может оказаться, что для вашей задачи нет подходящего триггера, или что вам нужно запускать процесс в определённое время, либо работать со списком данных. В таких ситуациях можно использовать триггеры, срабатывающие по расписанию, действия для получения данных и циклы, чтобы создавать расширенные рабочие процессы.

Например, предположим, что вы хотите получать ежедневную сводку по невыполненным заказам. С помощью этого набора функций можно запустить рабочий процесс, который будет срабатывать каждый день в определённое время, получать эти заказы, а затем отправлять вам сводку по ним. Вы можете ознакомиться с другими примерами и шаблонами, в которых используются эти триггеры и действия.

Триггер «Запланированное время»

В отличие от триггеров, запускающих рабочий процесс по событию, триггер «Запланированное время» запускает его в указанные вами дату и время. Вы также можете настроить повторный запуск рабочего процесса: ежечасно, ежедневно, еженедельно или ежемесячно. Поскольку запуск происходит по расписанию, для использования таких данных, как клиенты, заказы или товары, вам потребуется действие для их получения. Это можно сделать с помощью действий для получения данных.

Триггер «Запланированное время» можно запускать каждые 10 минут.

Действия для получения данных

Большинство действий что-то изменяют в вашем магазине, например добавляют теги клиенту или отправляют команду приложению, чтобы оно отправило пуш-уведомление клиенту.

Действия для получения данных извлекают данные из вашего магазина для использования в Flow. Эти действия вызывают запрос с набором фильтров, например для получения только того, что было обновлено за последний день. В результате действия возвращается список данных, соответствующих запросу. Например, действие «Получить данные о заказе» вызывает запрос заказа (Order query) в Admin API и возвращает список заказов, соответствующих вашему запросу.

Действия для получения данных могут обрабатывать списки, содержащие не более 100 элементов.

Следующие действия извлекают информацию из вашего магазина, чтобы вы могли использовать эти данные в своём рабочем процессе. В описании каждого действия можно узнать подробности о фильтрации и о том, какие данные оно возвращает:

Теги Liquid в действиях для получения данных

При использовании действия для получения данных с датами вы можете использовать теги Liquid date_minus и date_plus, чтобы изменять даты в запросе. Например, чтобы вычислить дату на 5 дней раньше запланированного времени запуска рабочего процесса, можно использовать следующий код Liquid:

{{ scheduledAt | date_minus: "5 days" }}

Подробнее об использовании этих тегов см. в документации по переменным Liquid.

Циклы последовательной обработки элементов

Когда вы используете действие для получения данных, вы получаете список данных, соответствующих вашему запросу. С помощью действия «Цикл последовательной обработки (iterate)» можно перебрать этот список. В цикле For each можно использовать условия и действия, которые применяются только к текущему элементу.

Например, вы создаёте рабочий процесс, который запускается каждый понедельник. Рабочий процесс использует действие «Получить данные о заказе», чтобы извлечь заказы, размещённые за неделю. Затем цикл последовательной обработки (iterate) применяет тег New order к каждому заказу из списка getOrderData. После того как ко всем заказам в списке будут применены теги, отправляется внутреннее электронное письмо о завершении маркировки.

Пример рабочего процесса, который извлекает список заказов, размещённых за последнюю неделю, добавляет тег к каждому заказу, а затем отправляет электронное письмо.

Действия агрегации

При работе со списками может потребоваться подсчитать количество элементов для использования в последующих условиях и действиях. Например, может понадобиться проверить, есть ли в списке хотя бы один результат, прежде чем отправлять электронное письмо. Flow предоставляет следующие действия для выполнения вычислений с данными списка в рабочем процессе:

  • «Подсчёт» возвращает количество записей в списке.
  • «Сумма» складывает значения записей в списке.

Примеры расширенных рабочих процессов в Shopify Flow

Ознакомьтесь с примерами расширенных рабочих процессов, которые можно использовать в Shopify Flow:

Получать ежедневную сводку о заказах, не выполненных в двухдневный срок

Этот рабочий процесс можно использовать, чтобы определять, не были ли нарушены гарантийные сроки доставки каких-либо заказов, и если да, то какова стоимость этих заказов.

В этом примере рабочий процесс запускается каждый день в 17:00. В нём используется действие «Получить данные о заказах» для извлечения списка заказов, которые не были выполнены в течение двухдневного срока доставки. Затем действие «Для каждого» добавляет тег ко всем просроченным заказам. Рабочий процесс также использует действие «Подсчёт», чтобы определить количество просроченных заказов, и действие «Сумма», чтобы определить их стоимость. Переменные, созданные действиями «Подсчёт» и «Сумма», используются для отправки электронного письма с указанием количества заказов и их стоимости.

Пример рабочего процесса, который извлекает список просроченных заказов, маркирует их тегами и отправляет электронное письмо с информацией о количестве и стоимости этих заказов.

Установить этот шаблон рабочего процесса в вашем магазине.

При создании нового заказа проверять, размещал ли тот же клиент другие заказы за последние 24 часа

Этот рабочий процесс можно использовать, чтобы определять, разместил ли один и тот же клиент несколько заказов в один день, и если да, то выполнение заказов ставится на удержание, чтобы их можно было отправить вместе.

В этом примере рабочий процесс запускается каждый раз при создании нового заказа. В нём используется действие «Получить данные о заказах» для извлечения списка заказов, размещённых клиентом за последний день. Затем действие «Подсчёт» определяет количество заказов, размещённых клиентом. Если в один день один и тот же клиент разместил два или более заказов, то выполнение этих заказов ставится на удержание и к ним добавляются теги.

Пример рабочего процесса, который извлекает список из нескольких заказов, маркирует их тегами и ставит их выполнение на удержание.

Установить этот шаблон рабочего процесса в вашем магазине.

Ежедневно получать на электронную почту сводку с товарами, которых нет в наличии

Этот рабочий процесс можно использовать для создания списка всех ваших товаров, которых нет в наличии, и отправки электронного письма.

В этом примере рабочий процесс запускается каждый день в 21:00. В нём используется действие «Получить данные о товарах» для извлечения списка товаров, у которых нет товарных запасов. Действие «Подсчёт» определяет количество товаров, которых нет в наличии. Переменные, созданные действиями «Получить данные о заказах» и «Подсчёт», используются для отправки электронного письма с указанием количества товаров и их списка.

Пример рабочего процесса, который извлекает список из нескольких заказов, маркирует их тегами и ставит их выполнение на удержание.

Установить этот шаблон рабочего процесса в вашем магазине.

Раз в день находить все заказы, связанные с возвратом платежа, и маркировать клиента тегом

Этот рабочий процесс можно использовать для отслеживания клиентов, которые инициировали возврат платежа.

В этом примере рабочий процесс запускается каждый день в 10:00. В нём используется действие «Получить данные о заказах» для извлечения списка заказов, по которым были возвраты платежей. Затем действие «Для каждого» добавляет тег всем клиентам, которые разместили эти заказы.

Пример рабочего процесса, который извлекает список заказов с возвратами платежей и маркирует тегами связанных с ними клиентов.

Установить этот шаблон рабочего процесса в вашем магазине.

При создании нового заказа узнавать, сколько заказов сделал клиент за последние шесть месяцев

Этот рабочий процесс можно использовать, чтобы определять, сколько заказов клиент разместил за последние шесть месяцев, и добавлять теги лояльности.

В этом примере рабочий процесс запускается каждый раз при создании нового заказа. В нём используется действие «Получить данные о заказах» для извлечения списка заказов, размещённых клиентом за последние шесть месяцев. Затем действие «Подсчёт» определяет количество заказов, размещённых клиентом, а действие «Сумма» определяет их стоимость. Тег клиента добавляется, если количество заказов равно или больше пяти, и ещё один тег добавляется, если стоимость заказов равна или превышает 100 $.

Пример рабочего процесса, который извлекает список заказов, подсчитывает количество заказов и их общую стоимость и добавляет теги клиента.

Установить этот шаблон рабочего процесса в вашем магазине.

Ежедневно получать список всех открытых черновиков заказов и отправлять сообщение в Slack

Этот рабочий процесс можно использовать для отправки сообщения в Slack, в котором указывается, есть ли в вашем магазине открытые черновики заказов, и если да, то сколько.

В этом примере рабочий процесс запускается каждый день в 17:00. В нём используется действие «Получить данные о черновиках заказов» для извлечения списка черновиков заказов со статусом «Открыт». Затем действие «Подсчёт» определяет количество открытых черновиков заказов. Переменная, созданная действиями «Подсчёт», используется для отправки сообщения в Slack с указанием количества открытых черновиков заказов.

Пример рабочего процесса, который извлекает список черновиков заказов, подсчитывает количество открытых черновиков и отправляет сообщение в Slack.

Установить этот шаблон рабочего процесса в вашем магазине.