Цикл последовательной обработки элементов (итерация)

Действие «Цикл последовательной обработки элементов (итерация)» выполняет шаги для каждого элемента в списке, если это действие связано с опцией «Повторить для каждого элемента». Это действие работает только со списками, такими как позиции в заказе или списки, возвращаемые действиями типа «Получить данные», например «Получить данные о коллекции», «Получить данные о клиенте» или «Получить данные о товаре».

После добавления действия «Цикл последовательной обработки элементов (итерация)» необходимо настроить дополнительные шаги для итерации цикла по каждому элементу в предоставленном списке. В отличие от ветвления условий на «Истина/Ложь», действие «Цикл последовательной обработки элементов (итерация)» имеет определённый порядок выполнения своих веток:

  1. Ветка «Повторить для каждого элемента» выполняется первой и повторяет шаги для каждого элемента в списке. Действия в этой ветке выполняются столько раз, сколько элементов в предоставленном списке.
  2. Ветка «После последнего элемента» выполняется последней и позволяет определить шаги для продолжения рабочего процесса. Этот шаг выполняется после завершения всех действий ветки «Повторить для каждого элемента» для всех элементов списка.

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

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

Что нужно учесть при использовании действия «Цикл последовательной обработки элементов (итерация)»

Прежде чем использовать действие «Цикл последовательной обработки элементов (итерация)», ознакомьтесь со следующими рекомендациями:

  • Список, который вы используете в действии «Цикл последовательной обработки элементов (итерация)», не может содержать более 1000 элементов. Если выбранный список содержит более 1000 элементов, рабочий процесс завершится сбоем и все действия, следующие за действием «Цикл последовательной обработки элементов (итерация)», не будут выполнены.
  • Следующие действия не могут следовать за «Повторить для каждого элемента»:
  • Вы можете вложить только 1 действие «Цикл последовательной обработки элементов (итерация)» в другое такое же действие.

Поля

Действие «Цикл последовательной обработки элементов (итерация)» содержит следующие поля.

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

При выборе переменной в качестве доступных для выбора опций отображаются только объекты-массивы ([]).

Триггеры

Действие «Цикл последовательной обработки элементов (итерация)» можно использовать в любом рабочем процессе.

Мониторинг рабочих процессов

После запуска рабочего процесса вы можете проверить его выполнение на странице «Активность» Shopify Flow. Следующее относится к рабочим процессам, содержащим действие «Цикл «Для каждого» (перебор)»:

  • Разделы «Статус» и «Действие» применяются ко всем действиям, выполненным в рамках цикла «Для каждого» (перебор).
  • В режиме предварительного просмотра рабочего процесса подсвечивается, сколько элементов в цикле прошло по определённому пути.
  • В разделе «Сведения о запуске», включая предварительный просмотр рабочего процесса, отображаются результаты каждой итерации цикла. Используйте меню «Элемент» в сведениях о шаге запуска, чтобы отфильтровать результаты по выполненным действиям и ошибкам и быстро устранить неполадки в циклах.

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

Шаблоны

Добавление позиций заказа в строки Google Sheets при размещении нового заказа

Когда создаётся новый заказ, шаг «Цикл «Для каждого» (перебор)» в рабочем процессе перебирает каждую позицию, чтобы добавить данные о товаре в строку Google Sheets. Просмотреть шаблон.

Добавление товаров с определённым тегом в коллекцию в будущем

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

Предоставление возможности заказа для компаний, созданных по запросам на аккаунт компании

Назначает разрешение на размещение заказов, когда компания создаётся по запросу на аккаунт компании. Просмотреть шаблон.

Отмена заказов, если клиент разместил более 5 заказов за сегодня

Отменяет заказы, если клиент размещает более 5 заказов в течение одного дня. Рабочий процесс проверяет количество заказов, размещённых клиентом за последние 24 часа, и отменяет все заказы сверх этого лимита, помечая клиента тегом в связи с потенциальным мошенничеством. Просмотреть шаблон.

Преобразование метаполя клиента в теги для всех клиентов

Этот рабочий процесс добавляет теги всем вашим клиентам на основе значения метаполя. Он запускается каждый час и извлекает до 100 клиентов, у которых нет тега processed. Для каждого клиента он проверяет значение метаполя custom.test и добавляет его в качестве тега. Рабочий процесс также добавляет тег processed, чтобы этот клиент не был возвращён при следующем плановом запуске рабочего процесса. Чтобы использовать этот рабочий процесс, вы должны изменить пространство имён и ключ метаполя, чтобы они соответствовали метаполю в вашем магазине. Просмотреть шаблон.

Удаление неактивных клиентов

Удаляет профили клиентов старше 5 лет, которые никогда не размещали заказы. Просмотреть шаблон.

Удаление неактивных товаров

Удаляет товары с нулевыми товарными запасами, которые не обновлялись в течение года. Просмотреть шаблон.

Выполнение заказа для всех цифровых позиций в заказе

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

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

Проверяет, разместил ли клиент несколько заказов в течение 24 часов. Если да, то приостанавливает выполнение заказов и объединяет доставку. Просмотреть шаблон.

Приостановка заказов, если клиент разместил более одного заказа за последние 24 часа

Когда создаётся заказ, проверяется, размещал ли клиент другие заказы за последние 24 часа. Если да, то все заказы приостанавливаются. Просмотреть шаблон.

Публикация товаров с определённым тегом в будущем

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

Снятие приостановки выполнения заказа для товаров на обмен при закрытии возврата

Когда возврат закрывается, проверяется наличие непогашенного остатка по заказу. Если остатка по заказу нет, то приостановка с товаров на обмен снимается. Просмотреть шаблон

Удаление тега «новый» с товара через 90 дней после его создания

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

Планирование удаления товаров из интернет-магазина в указанные дату и время

В определённую дату в будущем удаляет товары из интернет-магазина по тегу, ИД или артикулу. Использует триггер «Запланированное время» и действие «Получить данные о товаре». Просмотреть шаблон.

Отправка счёта-фактуры по заказу B2B на несколько адресов электронной почты

Отправляет счета-фактуры по заказам B2B на несколько адресов электронной почты. Используются адреса, сохранённые в качестве метаполей в местонахождении компании (если они существуют), или сначала создаются 3 метаполя: `extra_invoice_recipient.email1`, `.email2` и `.email3`, если их ещё нет. Просмотреть шаблон.

Отправка данных о заказе и его позициях в Google Sheets

Выводит каждую позицию заказа в отдельную строку в Google Sheets. Просмотреть шаблон.

Маркировка и отправка ежедневной сводки по просроченным выполнениям заказов

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

Маркировка клиентов, у которых есть возврат платежа

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

Маркировка заказов тегами со связанной UTM-кампанией

Добавляет к заказам теги, содержащие названия любых связанных UTM-кампаний. Просмотреть шаблон.

Маркировка невыполненных заказов старше 2 дней

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

Отслеживание вариантов товара на распродаже с помощью метаполя товара

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