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

Чтобы настроить правило показа всплывающего окн, нужно правильно объединить блоки условий.
Правила объединения блоков
Важно помнить о правилах объединения блоков. Слишком сложное и громоздкое правило может не сработать просто потому,
что не было выполнено всего одно условие. Правильный подбор позволяет определить где, когда и кому нужно показывать
всплывающие окна.
После того как нужные условия будут выбраны, важно сохранить созданное правило, тогда оно вступит в силу.
Объединение блоков
Чтобы настроить правила программируемого всплывающего окна, требуется создать ветку условий. Их можно комбинировать и
создавать логические ветки с помощью кнопок «И», «ИЛИ». Блок правила может состоять из нескольких блоков
условий.

Функция, отвечающая за показ окна, работает просто: условие либо выполнилось, либо нет. В последнем случае показа не
происходит. Для того чтобы всё сработало так, как нужно, должны выполняться все функции, настроенные в блоке правил.
Нажимая на «И» и «ИЛИ» пользователь добавляет дополнительное правило в блок.
Отображение условий «И» и «ИЛИ» отражает внутреннюю механику процесса. «ИЛИ» появляется тогда, когда нужен
сценарий на случай, если условие не сработает. Этим перекрывается вариативность поведения покупателей магазина. Опция
«ИЛИ» создаёт группу условий, которые проверяются одной функцией. Если не подходит одно, проверяется следующее пока
не
найдётся подходящее. После того как оно нашлось, происходит проверка следующего блока условий, что наглядно отражает
логическое объединение с помощью «И».
Все условия в блоке должны выполняться
Чтобы пользователь увидел всплывающее окно, должны совпасть все условия в блоке правил. Ни один из блоков условий,
после обработки функцией, не должен возвращать значение FALSE.
Группы условий
Товары и категория
Цена на текущий товар
Цена товара, заданная пользователем, сравнивается с ценой товара, которую функция запрашивает в базе данных.
Если цена из базы данных соответствует заданному условию, то правило работает — клиенту будет показано всплывающее окно.
Товар в корзине
При обработке функцией проверки правила данного условия происходит запрос в базу данных, где содержатся данные о наличии товара в корзине.
С помощью оператора PostgreSQL exists осуществляется проверка и возвращается значение true или false.
Идентификатор текущего товара
При выборе данного условия сперва проверяется наличие идентификатора у товара.
Правило сработает только в том случае, если он есть. Затем функция проверки правила сравнивает введённые пользователем условия с идентификатором.
Если условие соблюдается, то правило работает и всплывающее окно будет показано клиенту.
Бренд, к которому относится товар
После выбора этого условия осуществляется запрос в базу данных на предмет принадлежности товара с определённым id к бренду, указанному в условиях.
Правило сработает, если найдётся соответствие.
Текущая категория
Функция проверки правила обрабатывает поле товара category_id.
Если значение этого поля совпадает с тем, что было введено пользователем, то правило сработает.
Принадлежит ли товар к категории
Определяется путём отправки запроса к базе данных с id товара.
Запрос должен найти id категории и сравнить его с id категорией, переданной пользователем.
Для последнего данный параметр не виден — в условии задаётся название категории.
Если параметры, заданные пользователем, и параметры из базы данных совпадают, то правило сработает.
Текущий товар в наличии
Параметр для обработки функцией проверки правила берётся из базы данных, куда отправляется запрос с id товара.
Если такой находится в поле is_available, то правило сработает.
Пол текущего товара
В этом условии пользователь передаёт в последнем блоке один из двух полов.
Запрос отправляется в базу данных в категории детских товаров, моды, ювелирных изделий и косметики.
Результат сравнивается с данными, которые передал пользователь.
Если они совпадают, то правило срабатывает. Если у товара нет параметра "пол", то правило не сработает.
Принадлежит ли товар в корзине к категории
Для отфильтровки товаров по категории есть отдельная функция.
Она возвращает список товаров определённой категории. Если товар находится в этом списке, то правило сработает.
Есть ли в корзине товар из просматриваемой категории
Сначала определяется, есть ли товар в корзине.
У товара есть определённая категория. Значение сравнивается с категорией товара, которую просматривает клиент.
Есть товары в корзине?
Правило будет работать, если после запроса оператор PostgreSQL exists вернёт значение true.
Текущий товар содержит параметр
Правило работает как с данными типа "строка", так и с данными типа "число".
Чтобы правило сработало, должно быть соблюдено два условия: указанный пользователем параметр должен быть у товара,
и значение этого параметра должно соответствовать условию.
Текущая стоимость товаров в корзине
В результате запроса PostgreSQL возвращается сумма товаров в корзине клиента в рамках одной сессии.
Эта сумма обрабатывается функцией проверки правила.
Если сумма, полученная из базы данных, совпадает с заданными пользователем параметрами, то правило сработает.
Пользователь
Показывать
Условие, которое помогает управлять периодичностью показа. Непосредственное управление происходит во втором блоке условий, где предлагается выбрать периодичность показа:
- Один раз за сессию
- Один раз
- Один раз за неделю
- Один раз за месяц
- На каждой странице
В запросе к базе данных передаётся id всплывающего окна, а также текущая дата. Периодичность показа обеспечивает
лимит, который сбрасывается по прошествии времени.
Пользователь подписан
Предварительно устанавливается наличие клиентов и каналов связи всплывающего окна. Затем данное условие проверяет все имеющиеся каналы связи всплывающего окна.
После проверяется наличие электронной почты у клиента, статус веб-пушей (включены или нет).
В зависимости от ответа переменной subscribed присваивается значение true или false.
Потом эта переменная попадает в качестве одного из аргументов функции проверки правила и сравнивается с переданным пользователем значением.
Посетил N страниц в течение сессии
Для выполнения этого правила должен присутствовать идентификатор сессии, и одновременно должны выполняться заданные пользователем условия.
Последние сравниваются с данными, которые функция проверки правила получает из кэша, используя идентификатор сессии клиента.
Находится на странице
Условие сравнивает введённые пользователем данные с URL-адресом клиента.
Используемая для обработки данных функция содержит регулярное выражение, которое обрезает протокол безопасности и доменную зону.
Механика предусматривает возможность того, что поле ввода данных в блоке условий останется пустым.
Тогда функция автоматически подставит аргументом пустую строку, и условие будет выполняться на главной странице.
Опции сравнения УКАЗАН и НЕ УКАЗАН предназначены для работы с пустым полем ввода данных. Например, если выбрать опцию УКАЗАН, но оставить поле для ввода данных пустым, то правило не будет срабатывать на главной странице.
Находится на домене
Условие сравнивает введённые пользователем данные с URL-адресом клиента.
URL разбивается на массив строк. В правильном URL будет как минимум три элемента массива.
Если их меньше, значит, получен неверный URL, и правило не отработает. Вернётся пустая строка.
Если же всё правильно, то проверяется элемент массива с индексом 2 — домен.
Он сравнивается со значением, которое было задано при создании правила.
По результатам сравнения вернётся true или false.
В зависимости от заданных условий, правило сработает, и попап будет показан.
Добавил товар в корзину в ходе сессии
Оператор PostgreSQL проверяет подзапрос, параметрами которого становятся введённые пользователем данные.
Если данные, соответствующие запросу, существуют, оператор возвращает значение true, которое сравнивается с другим булевым значением.
Оно, в свою очередь, зависит от выбранной опции сравнения: "СОДЕРЖИТ" для true, "НЕ СОДЕРЖИТ" для false.
Удалил товар из корзины в ходе сессии
Механика этого правила не отличается от механики правила "Добавил товар в корзину в ходе сессии".
Подзапрос в базу данных ищет событие удаления товара с указанными пользователем параметрами.
Если такое событие было, оператор exists возвращает значение true, которое сравнивается с другим булевым значением, а оно определяется выбранной опцией сравнения.
Оформил товар в ходе сессии с определёнными товарами
Запрос в базу данных ищет событие добавления в корзину, которое произошло в ходе текущей сессии, с указанными пользователем параметрами.
Такое событие или было, или нет. Соответственно, оператор exists возвращает булево значение.
Это значение сравнивается с тем, что передано как аргумент функции проверки правила. Оно определяется выбором опции сравнения.
Купил определённый товар в течение последних семи дней
Механика правила преобразует введённые пользователем данные так, чтобы они подходили под формат запроса.
Запрос к базе данных сформирован так, чтобы отфильтровать события категории «покупка», которые произошли в течение семи дней.
Выполняется проверка на содержание массива — он должен быть непустым. Результат — булево значение.
Затем происходит сравнение с булевым значением, которое передано аргументом функции проверки правила. Если условие выполняется, то правило работает.
Купил определённый товар в течение месяца
Механика правила выбора клиентов по времени покупки не отличается. Меняются только параметры запроса, который фильтрует больший временной период.
Статус последнего заказа после показа попапа
Статусы заказов вынесены в отдельную переменную и приведены в соответствие со статусами заказов в базе данных.
Каждому условию в интерфейсе правила соответствует три возможных статуса в базе данных.
Это значит, что при обработке функцией проверки правила они будут соотнесены с одним из трёх условий в интерфейсе.
Статус заказа определяется через поиск определённого события в базе данных: показ всплывающего окна за определённый период.
Количество товаров в корзине
Пользователь указывает количество товаров, которые должны присутствовать в корзине пользователя для выполнения правила.
Функция проверки правил отправляет запрос к базе данных, а функция count подсчитывает количество строк таблицы, которые соответствуют запросу.
Правило выполняется, если результат выполнения count совпадает с данными, которые ввёл пользователь.
Сумма товаров в корзине
Данное правило работает при соответствии значения, которое задаёт пользователь в блоке условий, и суммы товаров в корзине пользователя.
Последняя попадает в качестве одного из аргументов функции проверки правила в результате запроса к базе данных с параметрами id клиента и магазина.
Соответствие значений в данном случае означает выполнение условия, созданного при помощи опций сравнения.
Находится в результатах поиска
Правило работает следующим образом. Функция проверки правила не запускается до тех пор, пока не выяснится, существует ли непустой поисковый запрос.
Если запрос был пустым или его не было вовсе, функция проверки не запустится, и правило не будет работать.
При наличии непустого поискового запроса функция будет проводить сравнение между переданными данными и запросом в соответствии с заданными условиями.
Все данные имеют формат строки, опции сравнения допускают либо проверку на полное соответствие, либо на вхождение.
Находится на странице в течение N секунд
При работе данного правила считываются данные о нахождении пользователя на странице и сравниваются с заданным значением.
При соответствии — правило работает.
Пол пользователя
Чтобы сработало данное правило, в профиле клиента должен быть указан пол.
Именно из профиля в функцию проверки условий попадает аргумент, который используется при сравнении с заданным пользователем значением.
Если в профиле нет этих данных, правило не сработает.
День рождения
Чтобы сработало данное правило, в профиле клиента должна быть указана дата рождения.
Эти данные используются функцией проверки условий и сравниваются с заданным пользователем значением.
Если в профиле нет этих данных, правило не сработает.
Уровень доходов
Чтобы сработало данное правило, в профиле клиента должен быть указан уровень дохода.
Именно из профиля в функцию проверки условий попадает аргумент, который используется при сравнении с заданным пользователем значением.
Если в профиле нет этих данных, правило не сработает.
Пользовательский сегмент
Функция проверки условий проводит сравнение между значением по умолчанию true и результатом проверки запроса в базу данных.
Результат также является булевым значением, которое зависит от того, существует ли клиент в записи о сегменте, который указывается при настройке условия.
Профиль существует меньше, чем
Данные о дате создания профиля поступают из соответствующей записи в базе данных.
Функция проверки правила сравнивает эту дату с настройками условия.
Если разница во времени соответствует заданному условию, правило выполняется.
Зарегистрирован
Правило проверяет данные о регистрации клиента и сравнивает их с параметрами, заданными в условии.
Если клиент зарегистрирован и условия соблюдаются, правило срабатывает.
Есть карта лояльности
Запрос о наличии id карты лояльности проверяется на заполненность.
Полученное булево значение сравнивается с заданным параметром условия. Если условие выполнено, правило работает.
Устройство
Запрос к базе данных возвращает массив платформ, которыми пользуется пользователь.
Функция проверки правила проверяет, содержит ли этот массив указанную пользователем платформу.
Если содержит, то правило выполняется.
География
Для выполнения этого правила обязательно нужны данные о локации пользователя.
Если их по каким-то причинам нет, функция проверки правила не будет запущена, и оно не сработает.
Функция работает с данными типа "строка", сравнивая их с текстом, который вводит пользователь в поле для получения данных.
Группа локаций
Данное правило также не будет работать, если по каким-то причинам отсутствуют данные о местоположении клиента.
Поиск данных осуществляется по id магазина в системе и id клиента в магазине без упорядочивания.
Полученные данные соотносятся с существующими группами локаций. Если такой группы нет, функция обрабатывает ошибку.
Карта лояльности выдана в
Для выполнения этого правила в объекте "Клиент" должно быть непустое поле "loyalty_location".
Если оно пустое, правило выполнено не будет. В противном случае функция проверки правила сравнивает это значение с данными, которые вводит пользователь, на предмет вхождения.
Свойства профиля
Для срабатывания правила необходимо, чтобы поле ввода данных было обязательно заполнено.
Нельзя просто выбрать опцию в блоке условий и оставить поле ввода данных пустым.
Получаемые от пользователя данные станут ключом, по которому будет производиться поиск в базе данных.
Правило сработает для тех пользователей, у которых найдутся соответствующие ключи.
Тег профиля
К данному правилу по умолчанию применяется опция сравнения "РАВНО".
Выбранное пользователем значение тега в процессе выполнения функции проверки правила становится значением поля tag_id.
Правило будет работать для клиентов, у которых будет найден tag_id, соответствующий введённому пользователем значению.
Пользовательское событие
Работа данного правила проверяется с помощью отправки запроса в базу данных с параметрами события, включая название и время.
Правило может быть настроено на срабатывание у клиентов, у которых происходило определённое событие, или у клиентов, у которых конкретное событие не происходило.
Действия
Оформлял заказы в выбранный период (в днях)
Правило проверяет, оформлял ли клиент заказ в выбранный период путём запроса к базе данных.
Блоки сравнительных опций и ввода данных предназначены для определения периода проверки, который задаётся параметрами запроса.
Срабатывание правила можно настроить так, чтобы оно происходило, если у клиента были оформленные заказы за указанный период, или если их не было.
Сколько заказов оформил в выбранный период
Функция проверки правила сравнивает пользовательские данные с результатом запроса к базе данных.
Параметры запроса отличаются при выборе опции "ЗА ВСЁ ВРЕМЯ" и во всех остальных случаях.
Для срабатывания правила введённые пользователем условия должны выполняться.
Смотрел товары «не в наличии»
Выполнение этого правила определяется наличием события в указанный период.
Сначала определяется, было ли событие "просмотр товаров" путём запроса к базе данных.
Если событие произошло в заданном временном диапазоне, то результат запроса — просмотренные товары помещаются в массив.
Этот массив проверяется на наличие товаров, которых в данный момент нет.
Результат проверки — булево значение, которое передаётся в качестве аргумента функции проверки правила и сравнивается с заданным пользователем условием.
Посмотрел товар определённой категории
Это правило выполняется, если результат сравнения данных типа "строка" на предмет вхождения соответствует заданным пользователем условиям.
Выбранная категория попадает в переменную, где обрабатывается регулярным выражением и становится частью запроса к базе данных.
Тип события является частью запроса. Это связано с тем, что механика правила одинакова для правил:
"Посмотрел товар определённой категории", "Добавил в корзину товар определённой категории", "Купил товар определённой категории".
Соответственно, в запросе идёт обращение к событиям: посмотрел, добавил в корзину, купил.
Функция проверки правила выясняет, входит ли выбранная пользователем категория в строку, полученную после запроса.
Если да, условие выполнено, и правило работает. Можно настроить так, чтобы правило срабатывало при невхождении выбранной пользователем опции.
Добавил в корзину товар определённой категории
Механика идентична правилу "Посмотрел товар определённой категории".
Выбранная категория обрабатывается регулярным выражением, становится частью запроса к базе данных, а результат сравнивается с условиями пользователя.
Купил товар определённой категории
Механика идентична правилам "Посмотрел товар определённой категории" и "Добавил в корзину товар определённой категории".
Сравниваются данные, обработанные регулярным выражением, с условиями пользователя. При выполнении условия правило срабатывает.
Посмотрел товар
Для событий просмотра, добавления в корзину и покупки товара без дополнительных условий предусмотрена единая механика.
Тип события определяется при выборе условия в первом блоке.
Для унификации обработки правил адаптируемые части запросов в базу данных хранятся в переменных.
Настройка периода события — date, искомое событие хранится в переменной event,
а в переменной items находится массив с результатами запроса.
С помощью опций сравнения "СОДЕРЖИТ" или "НЕ СОДЕРЖИТ" данные, вводимые пользователем, проверяются на вхождение в items.
Добавлял определённый товар в корзину
Механика идентична правилу "Посмотрел товар", но применима к событиям добавления в корзину.
Купил товар
Механика идентична правилам "Посмотрел товар" и "Добавлял определённый товар в корзину", но применима к событиям покупки.
Посмотрел товар бренда
Единый механизм проверки предусмотрен для событий просмотра, добавления в корзину и покупки товара определённого бренда.
Для унификации проверки правил отдельные части запроса в базу данных вынесены в переменные.
Тип события задаётся в первом блоке и попадает в переменную event.
Данные о периоде выборки хранятся в переменной date.
В переменную brands помещается массив с результатами запроса, где перечислены бренды, просмотренные пользователем за определённый период.
Функция проверки правила проверяет вхождение введённых данных в brands.
Добавил в корзину товар бренда
Механика идентична правилу "Посмотрел товар бренда", но применима к событиям добавления товара в корзину.
Купил товар бренда
Механика идентична правилам "Посмотрел товар бренда" и "Добавил в корзину товар бренда", но применима к событиям покупки.
Одежда и обувь
Размер обуви
Правила работы с размерами одежды работают по одному принципу.
Указанные пользователем данные типа "число" сравниваются с получаемыми размерами.
Размеры, которые приходят в виде буквенного обозначения, конвертируются в данные типа число.
Размер рубашки/блузы
Правила работы с размерами одежды работают по одному принципу.
Указанные пользователем данные типа "число" сравниваются с получаемыми размерами.
Размеры, которые приходят в виде буквенного обозначения, конвертируются в данные типа число.
Размер футболки
Правила работы с размерами одежды работают по одному принципу.
Указанные пользователем данные типа "число" сравниваются с получаемыми размерами.
Размеры, которые приходят в виде буквенного обозначения, конвертируются в данные типа число.
Размер нижнего белья
Правила работы с размерами одежды работают по одному принципу.
Указанные пользователем данные типа "число" сравниваются с получаемыми размерами.
Размеры, которые приходят в виде буквенного обозначения, конвертируются в данные типа число.
Размер брюк
Правила работы с размерами одежды работают по одному принципу.
Указанные пользователем данные типа "число" сравниваются с получаемыми размерами.
Размеры, которые приходят в виде буквенного обозначения, конвертируются в данные типа число.
Размер пиджака/жакета
Правила работы с размерами одежды работают по одному принципу.
Указанные пользователем данные типа "число" сравниваются с получаемыми размерами.
Размеры, которые приходят в виде буквенного обозначения, конвертируются в данные типа число.
Размер носков
Правила работы с размерами одежды работают по одному принципу.
Указанные пользователем данные типа "число" сравниваются с получаемыми размерами.
Размеры, которые приходят в виде буквенного обозначения, конвертируются в данные типа число.
Размер ремня
Правила работы с размерами одежды работают по одному принципу.
Указанные пользователем данные типа "число" сравниваются с получаемыми размерами.
Размеры, которые приходят в виде буквенного обозначения, конвертируются в данные типа число.
Размер головного убора
Правила работы с размерами одежды работают по одному принципу.
Указанные пользователем данные типа "число" сравниваются с получаемыми размерами.
Размеры, которые приходят в виде буквенного обозначения, конвертируются в данные типа число.
Размер перчатки
Правила работы с размерами одежды работают по одному принципу.
Указанные пользователем данные типа "число" сравниваются с получаемыми размерами.
Размеры, которые приходят в виде буквенного обозначения, конвертируются в данные типа число.
Дети
Количество детей
Данные о детях поступают из объекта клиент. Соответственно, для того, чтобы это правило выполнялось, сведения о детях должны быть. Количество детей сравнивается с заданным условием, и если они совпадают, то правило выполняется.
Возраст ребёнка
Для работы данного правила должно соблюдаться условие заданное пользователем. Кроме того, при получении данных о детях клиента задаётся максимально и минимально допустимое значение возраста ребёнка.
Пол ребёнка
Чтобы выполнялось данное условие требуется, чтобы в передаваемых данных был и пол детей клиента. Если такие данные есть, то функция проверки правила проверит выполнение настроенного пользователем условия.
Программа лояльности
Статус
Статус в программе лояльности, бонусные баллы и количество баллов до следующего уровня находятся в объекте клиента. Функция проверки правила сравнивает полученные данные с заданным условием, и если всё совпадает, клиенту будет показано всплывающее окно.
Бонусы
Статус в программе лояльности, бонусные баллы и количество баллов до следующего уровня находятся в объекте клиента. Функция проверки правила сравнивает полученные данные с заданным условием, и если всё совпадает, клиенту будет показано всплывающее окно.
Бонусы для следующего уровня
Статус в программе лояльности, бонусные баллы и количество баллов до следующего уровня находятся в объекте клиента. Функция проверки правила сравнивает полученные данные с заданным условием, и если всё совпадает, клиенту будет показано всплывающее окно.
Базовая программа лояльности
Активные баллы
Активные бонусные баллы, баллы, ожидающие активации и баллы, которые скоро сгорят находятся в объекте клиента. Функция проверки правила сравнивает полученные данные с заданным условием, и если всё совпадает, клиенту будет показано всплывающее окно.
Ожидающие активации баллы
Активные бонусные баллы, баллы, ожидающие активации и баллы, которые скоро сгорят находятся в объекте клиента. Функция проверки правила сравнивает полученные данные с заданным условием, и если всё совпадает, клиенту будет показано всплывающее окно.
Сгорающие баллы
Активные бонусные баллы, баллы, ожидающие активации и баллы, которые скоро сгорят находятся в объекте клиента. Функция проверки правила сравнивает полученные данные с заданным условием, и если всё совпадает, клиенту будет показано всплывающее окно.
Маркетинг
Пользователь получил массовую рассылку из канала
С помощью запроса к базе данных, полученная рассылка фильтруется по типу. Функция проверки правила сравнивает тип рассылки, введённый пользователем, и результат запроса.
Пользователь подписался на канал
Проверяется подписан ли пользователь на канал, который был выбран при настройке условия.
Списки промокодов
Пользователь получил промокод
Правило проверяет получил ли клиент промокод в определённый период времени. Если клиент существует, то по его id осуществляется поиск в списке промокодов, чтобы выяснить отправлялись ли ему промокоды в заданный период.
Если количество найденных промокодов больше ноля, то правило возвращает _true_, в противном случае _false_.
Пользователь применил промокод
Правило проверяет применял ли клиент промокод в определённый период времени. Если клиент существует, то по его id осуществляется поиск в списке промокодов, чтобы выяснить применял ли он промокоды в заданный период.
Если количество найденных промокодов больше ноля, то правило возвращает _true_, в противном случае _false_.
Сочетания условий
При настройке всплывающего окна важно помнить, что самый первый блок условий, который содержит название правила,
отвечает за метод обработки введённых пользовательских данных или выбранных условий. Каждое условие представляет
отдельный тип. В зависимости от типа функция выбирает реализацию вводимых пользователем данных или опций в блоке
условий.
Блок условия - содержит список предварительно заготовленных значений, которые обрабатываются функциями сравнения.
Определяет сущность, которая будет найдена в базе данных и с которой будет проводиться сравнение на предмет соответствия
данным, которые выбрал или ввёл пользователь.
Например, условие: "Добавил товар в корзину товар определенной категории". Чтобы сформировать правило, пользователь
должен задать условие, которое определит нужно ли показывать всплывающее окно пользователям, которые добавили или не
добавили товар определённой категории в корзину. Для этого выбирается подходящая опция сравнения. Например,**"СОДЕРЖИТ"
**.
После этого в Блок ввода данных вводится категория в текстовом виде. В данном конкретном примере есть
дополнительный блок условий, который позволяет задать период события. Предположим, неделя.
Как задать правила
После того как правило, будет задано, функция проверки условий запросит базу данных и проверит вернувшийся объект у
которого будет поле "категория". Если пользовательские данные частично совпадают со строковыми данными в поле*"
категория"*, правило будет считаться соблюденным и клиент увидит всплывающее окно.
- Первый
Блок условия - определяет тип условия, от которого зависит какая функция будет использоваться при обработке
пользовательских данных.

Блок условия со значениями "Да" и "Нет" позволяет делать отбор по клиентам, которые НЕ соответствуют заданным
условиям.

Блок сравнительных опций - позволяет настраивать условия в широком диапазоне. Больше указанных значений, меньше
указанных значений и так далее. Подробнее в разделе "Опции сравнений". Влияет на характер SQL запроса к базе данных.

Блок ввода данных - позволяет пользователю вводить данные в виде текста или числа. Результат проверки условия сильно
зависит от выбранной опции сравнения.

Сочетание условий в группе "Товары и категория"
Цена на текущий товар
Схема: `блок условий "Цена на текущий товар" + блок опций сравнения + блок ввода данных`
ИЛИ `блок условий "Цена на текущий товар" + блок опций сравнения + два блока ввода данных`
Опции и их значения после обработки: | Опция | После обработки возвращается |
| Равно | true или false |
| Меньше чем | true или false |
| Больше чем | true или false |
| Между | true или false |
Блок ввода данных: поля для ввода, которое принимает данные типа "число".
Текущий товар в корзине
Схема:
`блок условий "Текущий товар в корзине" + блок пользовательских данных`
Блок ввода данных: переключатель с опциями "Да" и "Нет"
Значения переключателя: true | false
Значение по умолчанию: "Да"
Идентификатор текущего товара
Схема:`блок условий "Идентификатор текущего товара" + блок опций сравнения + поле для ввода данных`
Опции и их значения после обработки: | Опция | После обработки возвращается |
| Содержит | true или false |
| Не содержит | true или false |
Блок ввода данных: поле для ввода, которое принимает строковые значения и передаёт их в функции сравнения.
Бренд, к которому относится товар
Схема:
`блок условий "Бренд, к которому относится товар" + блок опций сравнения + блок условий`
Опции и их значения после обработки: | Опция | После обработки возвращается |
| Равно | true или false |
| Не равно | true или false |
Блок ввода данных: отсутствует, но в блоке условий реализован поиск по опциям.
Текущая категория
Схема:
`блок условий "Текущая категория" + блок опций сравнения + поле для ввода данных`
Опции и их значения после обработки: | Опция | После обработки возвращается |
| Содержит | true или false |
| Не содержит | true или false |
Блок ввода данных: поле для ввода, которое принимает строковые значения и передаёт их в функции сравнения.
Принадлежит ли товар в корзине к категории
Схема:
`блок условий "Принадлежит ли товар в корзине к категории" + блок опций сравнения + поле для ввода данных`
Опции и их значения после обработки: | Опция | После обработки возвращается |
| Содержит | true или false |
| Не содержит | true или false |
Блок ввода данных: поле для ввода, которое принимает строковые значения и передаёт их в функции сравнения.
Текущий товар в наличии
Схема:
`блок условий "Текущий товар в наличии" + блок пользовательских данных`
Блок ввода данных: переключатель с опциями "Да" и "Нет"
Значения переключателя: true | false
Значение по умолчанию: "Да"
Пол текущего товара
Схема:
`блок условий "Пол текущего товара" + блок опций сравнения + блок условий`
Опции и их значения после обработки: | Опция | После обработки возвращается |
| Равно | true или false |
| Не равно | true или false |
Блок ввода данных: отсутствует.
Есть ли в корзине товар из просматриваемой категории
Схема:
`блок условий "Есть ли в корзине товар из просматриваемой категории" + блок пользовательских данных`
Блок ввода данных: переключатель с опциями "Да" и "Нет"
Значения переключателя: true | false
Значение по умолчанию: "Да"
Есть товары в корзине?
Схема:
`блок условий "Есть товары в корзине?" + блок пользовательских данных`
Блок ввода данных: переключатель с опциями "Да" и "Нет"
Значения переключателя: true | false
Значение по умолчанию: "Да"
Текущий товар содержит параметр
Схема:
`блок условий "Текущий товар содержит параметр" + блок пользовательских данных + блок опций сравнения + блок пользовательских данных`
Опции и их значения после обработки: | Опция | После обработки возвращается |
| Равно | true или false |
| Не равно | true или false |
| Содержит | true или false |
| Не содержит | true или false |
| Меньше чем | true или false |
| Больше чем | true или false |
Блок ввода данных: поля для ввода данных типа "строка".
Текущая стоимость товаров в корзине
Схема:
`блок условий "Текущая стоимость товаров в корзине" + блок опций сравнения + блок пользовательских данных`
Опции и их значения после обработки: | Опция | После обработки возвращается |
| Равно | true или false |
| Меньше чем | true или false |
| Больше чем | true или false |
Блок ввода данных: поля для ввода данных типа "число".
Сочетание условий в группе "Пользователь"
Показывать
Схема:`блок условий Показывать + блок условий со списком опций`
| Опция | После обработки возвращается |
| Один раз за сессию | true или false |
| Один раз | true или false |
| Один раз за день | true или false |
| Один раз за неделю | true или false |
| Один раз за месяц | true или false |
| на каждой странице | true |
Форма для ввода пользовательских данных или дополнительный блок условий: отсутствуют.
Пользователь подписан
Схема:`блок условий Пользователь подписан + блок пользовательских данных`
Блок ввода данных: переключатель с опциями "Да" и "Нет"
Значения переключателя: true | false
Значение по умолчанию: "Да"
Посетил N страниц в течение сессии
Схема: `блок условий "Посетил N страниц в течение сессии" + блок опций сравнения + блок ввода данных`
ИЛИ `блок условий "Посетил N страниц в течение сессии" + блок опций сравнения + два блока ввода данных`
| Опция | После обработки возвращается |
| Равно | true или false |
| Меньше чем | true или false |
| Больше чем | true или false |
| Между | true или false |
Блок ввода данных: поля для ввода, которое принимает данные типа "число". В зависимости от выбранной опции
сравнения, может быть одно или два поля для приёма данных пользователя. Два поля появляются при выборе опции
сравнения "МЕЖДУ", которая позволяет выбрать диапазон с началом, которое задаётся в левом поле для ввода, и
концом, задаётся в правом поле.
Находится на странице
Схема:`блок условий "Находится на странице" + блок опций сравнения + блок ввода данных`
| Опция | После обработки возвращается |
| Равно | true или false |
| Не равно | true или false |
| Содержит | true или false |
| Не содержит | true или false |
| Начинается с | true или false |
| Указан | true или false |
| Не указан | true или false |
Блок ввода данных: поле для ввода, которое принимает строковые значения и передаёт их в функции сравнения.
Находится на домене
Схема:`блок условий "Находится на домене" + блок опций сравнения + блок ввода данных`
| Опция | После обработки возвращается |
| Равно | true или false |
| Не равно | true или false |
| Содержит | true или false |
| Не содержит | true или false |
| Начинается с | true или false |
| Указан | true или false |
| Не указан | true или false |
Блок ввода данных: поле для ввода, которое принимает строковые значения и передаёт их в функции сравнения.
Добавил товар в корзину в ходе сессии
Схема: `блок условий "Добавил товар в корзину в ходе сессии" + блок опций сравнения + поле для ввода данных`
| Опция | После обработки возвращается |
| Содержит | true или false |
| Не содержит | true или false |
Блок ввода данных: поле для ввода, которое принимает строковые значения и передаёт их в функции сравнения.
Удалил товар из корзины в ходе сессии
Схема: `блок условий "Удалил товар из корзины в ходе сессии" + блок опций сравнения + поле для ввода данных`
| Опция | После обработки возвращается |
| Содержит | true или false |
| Не содержит | true или false |
Блок ввода данных: поле для ввода, которое принимает строковые значения и передаёт их в функции сравнения.
Оформил заказ в ходе сессии с определёнными товарами
Схема:`блок условий "Оформил заказ в ходе сессии с определёнными товарами" + блок опций сравнения + поле для ввода данных`
| Опция | После обработки возвращается |
| Содержит | true или false |
| Не содержит | true или false |
Блок ввода данных: поле для ввода, которое принимает строковые значения и передаёт их в функции сравнения.
Купил определённый товар в течение последнего месяца
Схема:`блок условий "Купил определённый товар в течение последнего месяца" + блок опций сравнения + поле для ввода данных`
| Опция | После обработки возвращается |
| Содержит | true или false |
| Не содержит | true или false |
Блок ввода данных: поле для ввода, которое принимает строковые значения и передаёт их в функции сравнения.
Купил определённый товар в течение последних 7 дней
Схема: `блок условий "Купил определённый товар в течение последних 7 дней" + блок опций сравнения + поле для ввода данных`
| Опция | После обработки возвращается |
| Содержит | true или false |
| Не содержит | true или false |
Блок ввода данных: поле для ввода, которое принимает строковые значения и передаёт их в функции сравнения.
Статус последнего заказа после показа попапа
Схема: `блок условий "Статус последнего заказа после показа попапа" + блок опций сравнения + два поля для ввода данных со списком опций по умолчанию`
| Опция | После обработки возвращается |
| Равно | true или false |
| Не равно | true или false |
Блок ввода данных: два поля для ввода данных со списком опций по умолчанию.
Количество товаров в корзине
Схема:`блок условий "Количество товаров в корзине" + блок опций сравнения + блок ввода данных`
| Опция | После обработки возвращается |
| Равно | true или false |
| Меньше чем | true или false |
| Больше чем | true или false |
| Между | true или false |
Блок ввода данных: элемент типа "Ползунок", который возвращает в функцию сравнения данные типа "число".
Диапазон возможных значений ограничен и составляет от 1 до 100.
Сумма товаров в корзине
Схема:`блок условий "Сумма товаров в корзине" + блок опций сравнения + блок ввода данных` ИЛИ
`блок условий "Посетил N страниц в течение сессии" + блок опций сравнения + два блока ввода данных`
| Опция | После обработки возвращается |
| Равно | true или false |
| Меньше чем | true или false |
| Больше чем | true или false |
| Между | true или false |
Блок ввода данных: поля для ввода, которое принимает данные типа "число". В зависимости от выбранной опции
сравнения, может быть одно или два поля для приёма данных пользователя. Два поля появляются при выборе опции
сравнения "МЕЖДУ", которая позволяет выбрать диапазон с началом, оно задаётся в левом поле для ввода, и
концом, задаётся в правом поле.
Находится в результатах поиска
Схема: `блок условий "Находится в результатах поиска" + блок опций сравнения + поле для ввода данных`
| Опция | После обработки возвращается |
| Равно | true или false |
| Содержит | true или false |
Блок ввода данных: поле для ввода, которое принимает строковые значения и передаёт их в функции сравнения.
Находится на странице в течение N секунд
Схема: `блок условий "Находится на странице в течение N секунд" + поле для ввода данных`
Блок ввода данных: поле для ввода, которое принимает значение типа "число" и передаёт их в функции сравнения.
Пол пользователя
Схема: `блок условий "Пол пользователя" + блок опций сравнения + блок условий`
| Опция | После обработки возвращается |
| Равно | true или false |
| Не равно | true или false |
Блок ввода данных: отсутствует
День рождения
Схема:`блок условий "День рождения" + блок опций сравнения + блок ввода данных`
| Опция | После обработки возвращается |
| Равно | true или false |
| Меньше чем | true или false |
| Больше чем | true или false |
Блок ввода данных: Окно выбора даты
Уровень доходов
Схема:`блок условий "Уровень доходов" + блок опций сравнения + блок условий`
| Опция | После обработки возвращается |
| Равно | true или false |
| Не равно | true или false |
Блок ввода данных: отсутствует
Пользовательский сегмент
Схема:`блок условий "Пользовательский сегмент" + блок опций сравнения + блок условий`
| Опция | После обработки возвращается |
| Равно | true или false |
| Не равно | true или false |
Блок ввода данных: отсутствует
Профиль существует меньше чем
Схема:`блок условий "Профиль существует меньше чем" + блок условий`
Блок ввода данных: отсутствует
Зарегистрирован
Схема:`блок условий "Зарегистрирован" + блок ввода данных`
Блок ввода данных: переключатель с опциями "Да" и "Нет"
Значения переключателя: true | false
Значение по умолчанию: "Да"
Есть карта лояльности
Схема:`блок условий "Есть карта лояльности" + блок ввода данных`
Блок ввода данных: переключатель с опциями "Да" и "Нет"
Значения переключателя: true | false
Значение по умолчанию: "Да"
Устройство
Схема: `блок условий "Устройство" + блок опций сравнения + поле для ввода данных`
| Опция | После обработки возвращается |
| Содержит | true или false |
| Не содержит | true или false |
Блок ввода данных: поле для ввода, которое принимает строковые значения и передаёт их в функции сравнения. Имеется ряд
опций по умолчанию.
География
Схема: `блок условий "География" + блок опций сравнения + поле для ввода данных`
| Опция | После обработки возвращается |
| Содержит | true или false |
| Не содержит | true или false |
Блок ввода данных: поле для ввода, которое принимает строковые значения и передаёт их в функции сравнения.
Группа позиций
Схема: `блок условий "Группа позиций" + блок опций сравнения + поле для ввода данных`
| Опция | После обработки возвращается |
| Содержит | true или false |
| Не содержит | true или false |
Блок ввода данных: поле для ввода, которое принимает строковые значения и передаёт их в функции сравнения.
Карта лояльности выдана в...
Схема: `блок условий "Карта лояльности выдана в..." + блок опций сравнения + поле для ввода данных`
| Опция | После обработки возвращается |
| Содержит | true или false |
| Не содержит | true или false |
Блок ввода данных: поле для ввода, которое принимает строковые значения и передаёт их в функции сравнения.
Свойства профиля
Схема: `блок условий "Свойства профиля" + блок условий + поле для ввода данных` или
`"Свойства профиля" + блок условий + блок опций сравнения + поле для ввода данных`
| Опция | После обработки возвращается |
| Равно | true или false |
| Не равно | true или false |
| Меньше чем | true или false |
| Больше чем | true или false |
Блок ввода данных: Поле для ввода меняется в зависимости от содержания второго блока условий. Одни варианты
предназначены для получения данных типа "строка" другие для данных типа "число".
Тег профиля
Схема:`блок условий "Тег профиля" + блок условий`
Блок ввода данных: отсутствует, имеется строка поиска подходящего условия.
Пользовательское событие
Схема:`блок условий "Пользовательское событие" + блок условий + блок условий + блок условий`
Блок ввода данных: отсутствует, имеется строка поиска подходящего условия в третьем и четвёртом блоках.
Сочетания условий в группе "Действия"
Оформлял заказ в выбранный период
Схема: `блок условий "Оформлял заказ в выбранный период" + блок опций сравнения + блок ввода данных + блок условий`
ИЛИ`"Оформлял заказ в выбранный период" + блок опций сравнения + блок ввода данных + блок ввода данных + блок условий`
| Опция | После обработки возвращается |
| Равно | true или false |
| Меньше чем | true или false |
| Больше чем | true или false |
| Между | true, если число в диапазоне, иначе false |
Блок ввода данных: один или два поля для получения пользовательских данных в формате число.
Сколько оформил заказов за выбранный период
Схема: `блок условий "Сколько оформил заказов за выбранный период" + блок опций сравнения + блок ввода данных + блок условий`
ИЛИ`"Сколько оформил заказов за выбранный период" + блок опций сравнения + блок ввода данных + блок ввода данных + блок условий`
| Опция | После обработки возвращается |
| Равно | true или false |
| Меньше чем | true или false |
| Больше чем | true или false |
| Между | true или false |
|---|
Блок ввода данных: один или два поля для получения пользовательских данных в формате число.
Смотрел товары "не в наличии"
Схема:`блок условий "Смотрел товары "не в наличии"" + блок пользовательских данных + блок условий`
Блок ввода данных: переключатель с опциями "Да" и "Нет", последний блок условий имеет поиск, который поможет найти одну
из представленных опций.
Значения переключателя: true | false
Значение по умолчанию: "Да"
Посмотрел товар определённой категории
Схема: `блок условий "Посмотрел товар определённой категории" + блок опций сравнения + блок условий + блок условий`
| Опция | После обработки возвращается |
| Содержит | true или false |
| Не содержит | true или false |
|---|
Блок ввода данных: отсутствует, в блоке условий реализован поиск.
Добавил в корзину товар определённой категории
Схема: `блок условий "Добавил в корзину товар определённой категории" + блок опций сравнения + блок условий + блок условий`
| Опция | После обработки возвращается |
| Содержит | true или false |
| Не содержит | true или false |
|---|
Блок ввода данных: отсутствует, в блоке условий реализован поиск.
Купил товар определённой категории
Схема: `блок условий "Купил товар определённой категории" + блок опций сравнения + блок условий + блок условий`
| Опция | После обработки возвращается |
| Содержит | true или false |
| Не содержит | true или false |
|---|
Блок ввода данных: отсутствует, в блоке условий реализован поиск.
Посмотрел товар
Схема: `блок условий "Посмотрел товар" + блок опций сравнения + блок ввода данных + блок условий`
| Опция | После обработки возвращается |
| Содержит | true или false |
| Не содержит | true или false |
|---|
Блок ввода данных: поле предназначенное для получения пользовательских данных в формате "строка".
Добавлял определённей товар в корзину
Схема: `блок условий "Добавлял определённый товар в корзину" + блок опций сравнения + блок ввода данных + блок условий`
| Опция | После обработки возвращается |
| Содержит | true или false |
| Не содержит | true или false |
|---|
Блок ввода данных: отсутствует, в последнем блоке условий реализован поиск среди доступных опций.
Купил товар
Схема: `блок условий "Купил товар" + блок опций сравнения + блок ввода данных + блок условий`
| Опция | После обработки возвращается |
| Содержит | true или false |
| Не содержит | true или false |
|---|
Блок ввода данных: отсутствует, в последнем блоке условий реализован поиск среди доступных опций.
Посмотрел товар бренда
Схема: `блок условий "Посмотрел товар бренда" + блок условий + блок условий`
| Опция | После обработки возвращается |
| Содержит | true или false |
| Не содержит | true или false |
|---|
Блок ввода данных: отсутствует, в последних двух блоках условий реализован поиск среди доступных опций.
Добавил в корзину товар бренда
Схема: `блок условий "Добавил в корзину товар бренда" + блок условий + блок условий`
| Опция | После обработки возвращается |
| Содержит | true или false |
| Не содержит | true или false |
|---|
Блок ввода данных: отсутствует, в последних двух блоках условий реализован поиск среди доступных опций.
Купил товар бренда
Схема: `блок условий "Купил товар бренда" + блок условий + блок условий`
| Опция | После обработки возвращается |
| Содержит | true или false |
| Не содержит | true или false |
|---|
Блок ввода данных: отсутствует, в предпоследнем блоке условий реализован поиск среди доступных опций.
Сочетание условий в группе "Одежда и обувь"
Размер обуви
Схема: `блок условий "Размер обуви" + блок опций сравнения + блок ввода данных` ИЛИ
`"Размер обуви" + блок опций сравнения + блок ввода данных + блок ввода данных`
| Опция | После обработки возвращается |
| Равно | true или false |
| Меньше чем | true или false |
| Больше чем | true или false |
| Между | true или false |
|---|
Блок ввода данных: одно или два поля для ввода данных типа "число".
Размер рубашки/блузы
Схема: `блок условий "Размер рубашки/блузы" + блок опций сравнения + блок ввода данных` ИЛИ
`"Размер рубашки/блузы" + блок опций сравнения + блок ввода данных + блок ввода данных`
| Опция | После обработки возвращается |
| Равно | true или false |
| Меньше чем | true или false |
| Больше чем | true или false |
| Между | true или false |
|---|
Блок ввода данных: одно или два поля для ввода данных типа "число".
Размер футболки
Схема: `блок условий "Размер футболки" + блок опций сравнения + блок ввода данных` ИЛИ
`"Размер футболки" + блок опций сравнения + блок ввода данных + блок ввода данных`
| Опция | После обработки возвращается |
| Равно | true или false |
| Меньше чем | true или false |
| Больше чем | true или false |
| Между | true или false |
|---|
Блок ввода данных: одно или два поля для ввода данных типа "число".
Размер нижнего белья
Схема: `блок условий "Размер нижнего белья" + блок опций сравнения + блок ввода данных` ИЛИ
`"Размер нижнего белья" + блок опций сравнения + блок ввода данных + блок ввода данных`
| Опция | После обработки возвращается |
| Равно | true или false |
| Меньше чем | true или false |
| Больше чем | true или false |
| Между | true или false |
|---|
Блок ввода данных: одно или два поля для ввода данных типа "число".
Размер нижнего белья
Схема: `блок условий "Размер нижнего белья" + блок опций сравнения + блок ввода данных` ИЛИ
`"Размер нижнего белья" + блок опций сравнения + блок ввода данных + блок ввода данных`
| Опция | После обработки возвращается |
| Равно | true или false |
| Меньше чем | true или false |
| Больше чем | true или false |
| Между | true или false |
|---|
Блок ввода данных: одно или два поля для ввода данных типа "число".
Размер брюк
Схема: `блок условий "Размер брюк" + блок опций сравнения + блок ввода данных` ИЛИ
`"Размер брюк" + блок опций сравнения + блок ввода данных + блок ввода данных`
| Опция | После обработки возвращается |
| Равно | true или false |
| Меньше чем | true или false |
| Больше чем | true или false |
| Между | true или false |
|---|
Блок ввода данных: одно или два поля для ввода данных типа "число".
Размер пиджака/жакета
Схема: `блок условий "Размер пиджака/жакета" + блок опций сравнения + блок ввода данных` ИЛИ
`"Размер пиджака/жакета" + блок опций сравнения + блок ввода данных + блок ввода данных`
| Опция | После обработки возвращается |
| Равно | true или false |
| Меньше чем | true или false |
| Больше чем | true или false |
| Между | true или false |
|---|
Блок ввода данных: одно или два поля для ввода данных типа "число".
Размер носков
Схема: `блок условий "Размер носков" + блок опций сравнения + блок ввода данных` ИЛИ
`"Размер носков" + блок опций сравнения + блок ввода данных + блок ввода данных`
| Опция | После обработки возвращается |
| Равно | true или false |
| Меньше чем | true или false |
| Больше чем | true или false |
| Между | true или false |
|---|
Блок ввода данных: одно или два поля для ввода данных типа "число".
Размер ремня
Схема: `блок условий "Размер ремня" + блок опций сравнения + блок ввода данных` ИЛИ
`"Размер ремня" + блок опций сравнения + блок ввода данных + блок ввода данных`
| Опция | После обработки возвращается |
| Равно | true или false |
| Меньше чем | true или false |
| Больше чем | true или false |
| Между | true или false |
|---|
Блок ввода данных: одно или два поля для ввода данных типа "число".
Размер головного убора
Схема: `блок условий "Размер головного убора" + блок опций сравнения + блок ввода данных` ИЛИ
`"Размер головного убора" + блок опций сравнения + блок ввода данных + блок ввода данных`
| Опция | После обработки возвращается |
| Равно | true или false |
| Меньше чем | true или false |
| Больше чем | true или false |
| Между | true или false |
|---|
Блок ввода данных: одно или два поля для ввода данных типа "число".
Размер перчатки
Схема: `блок условий "Размер перчатки" + блок опций сравнения + блок ввода данных` ИЛИ
`"Размер перчатки" + блок опций сравнения + блок ввода данных + блок ввода данных`
| Опция | После обработки возвращается |
| Равно | true или false |
| Меньше чем | true или false |
| Больше чем | true или false |
| Между | true или false |
|---|
Блок ввода данных: одно или два поля для ввода данных типа "число".
Сочетание условий в группе "Дети"
Количество детей
Схема: `блок условий "Количество детей" + блок опций сравнения + блок ввода данных"`
ИЛИ`"Количество детей" + блок опций сравнения + блок ввода данных + блок ввода данных`
| Опция | После обработки возвращается |
| Равно | true или false |
| Меньше чем | true или false |
| Больше чем | true или false |
| Между | true или false |
|---|
Блок ввода данных: поле для получения данных в формате "число".
Возраст ребёнка
Схема: `блок условий "Возраст ребёнка" + блок опций сравнения + блок ввода данных"` ИЛИ
`"Возраст ребёнка" + блок опций сравнения + блок ввода данных + блок ввода данных`
| Опция | После обработки возвращается |
| Равно | true или false |
| Меньше чем | true или false |
| Больше чем | true или false |
| Между | true или false |
|---|
Блок ввода данных: поле для получения данных в формате "число".
Пол ребёнка
Схема: `блок условий "Пол ребёнка" + блок опций сравнения + блок условий"`
| Опция | После обработки возвращается |
| Равно | true или false |
| Не равно | true или false |
|---|
Блок ввода данных: отсутствует.
Сочетание условий в группе "Программа лояльности"
Статус
Схема: `блок условий "Статус" + блок ввода данных`
Блок ввода данных: поле для получения данных типа "строка"
Бонусы
Схема: `блок условий "Бонусы" + блок опций сравнения + блок ввода данных"`
ИЛИ`"Бонусы" + блок опций сравнения + блок ввода данных + блок ввода данных`
| Опция | После обработки возвращается |
| Равно | true или false |
| Меньше чем | true или false |
| Больше чем | true или false |
| Между | true или false |
|---|
Блок ввода данных: поле или два поля для получения данных в формате "число".
Бонусы до следующего уровня
Схема: `блок условий "Бонусы до слудующего уровня" + блок опций сравнения + блок ввода данных"`
ИЛИ`"Бонусы до следующего уровня" + блок опций сравнения + блок ввода данных + блок ввода данных`
| Опция | После обработки возвращается |
| Равно | true или false |
| Меньше чем | true или false |
| Больше чем | true или false |
| Между | true или false |
|---|
Блок ввода данных: поле или два поля для получения данных в формате "число".
Уровень клиента в программе лояльности
Схема: `блок условий "Уровень клиента в программе лояльности" + блок опций сравнения + блок условий"`
| Опция | После обработки возвращается |
| Равно | true или false |
| Не равно | true или false |
|---|
Блок ввода данных: отсутствует, в блоке условий реализован поиск из доступных опций.
Сочетание условий в группе "Базовая программа лояльности"
Активные баллы
Схема: `блок условий "Активные баллы" + блок сравнительных опций + блок ввода данных` ИЛИ
`блок условий "Активные баллы" + блок сравнительных опций + блок ввода данных + блок ввода данных`
| Опция | После обработки возвращается |
| Равно | true или false |
| Меньше чем | true или false |
| Больше чем | true или false |
| Между | true или false |
|---|
Блок ввода данных: поле или два поля для получения данных в формате "число".
Ожидающие активации баллы
Схема: `блок условий "Ожидающие активации баллы" + блок сравнительных опций + блок ввода данных` ИЛИ
`блок условий "Ожидающие активации баллы" + блок сравнительных опций + блок ввода данных + блок ввода данных`
| Опция | После обработки возвращается |
| Равно | true или false |
| Меньше чем | true или false |
| Больше чем | true или false |
| Между | true или false |
|---|
Блок ввода данных: поле или два поля для получения данных в формате "число".
Сгорающие баллы
Схема: `блок условий "Активные баллы" + блок сравнительных опций + блок ввода данных + блок условий` ИЛИ
`блок условий "Активные баллы" + блок сравнительных опций + блок ввода данных + блок ввода данных + блок условий`
| Опция | После обработки возвращается |
| Равно | true или false |
| Меньше чем | true или false |
| Больше чем | true или false |
| Между | true или false |
|---|
Блок ввода данных: поле или два поля для получения данных в формате "число".
Маркетинг
Пользователь получал массовую рассылку из канала
Схема: `Блок условий "Пользователь получал массовую рассылку из канала" + блок условий + блок условий`
Блок ввода данных: отсутствует.
Сочетание условий в группе "Промокоды"
Пользователь получил промокод
Схема:`Блок условий "Пользователь получил промокод" + список промокодов + блок сравнительных опций + элемент выбора даты`
ИЛИ `Блок условий "Пользователь получил промокод" + список промокодов + блок сравнительных опций + элемент выбора даты + элемент выбора даты`
| Опция | После обработки возвращается |
| Равно | true или false |
| Не равно | true или false |
| Меньше чем | true или false |
| Меньше чем или равно | true или false |
| Больше чем или равно | true или false |
| Между | true или false |
|---|
Блок ввода данных: отсутствует.
Пользователь применил промокод
Схема:`Блок условий "Пользователь применил промокод" + список промокодов + блок сравнительных опций + элемент выбора даты`
ИЛИ `Блок условий "Пользователь применил промокод" + список промокодов + блок сравнительных опций + элемент выбора даты + элемент выбора даты`
| Опция | После обработки возвращается |
| Равно | true или false |
| Не равно | true или false |
| Меньше чем | true или false |
| Меньше чем или равно | true или false |
| Больше чем или равно | true или false |
| Между | true или false |
|---|
Блок ввода данных: отсутствует.
Опции сравнения
Опции этой категории можно разделить на группы, которые отличаются тем, что их обрабатывают либо разные функции
сравнения, либо обе сразу.
Группа опций: «ДА», «РАВНО», «СОДЕРЖИТ».
Обрабатывается функцией, проверяющей логическое равенство и возвращающей либо булево значение TRUE или FALSE, либо отправляет запрос в базу данных, откуда возвращаются соответствия. Также обрабатывается функцией, которая обрабатывает сравнения с учётом разных сценариев.
Опция сравнения СОДЕРЖИТ
«СОДЕРЖИТ» – имеет одно название для двух разных опций при обработке данных. Оба типа могут обрабатываться функцией, отвечающей за результат сравнений. Путаница невозможна благодаря тому, что появление того или иного типа зависит от условия первого блока. Эти опции никогда не появляются вместе.
Группа опций: «НЕТ», «НЕ РАВНО», «НЕ СОДЕРЖИТ».
Обрабатывается функцией, проверяющей логическое равенство и возвращающей либо булево значение TRUE или FALSE, либо отправляет запрос в базу данных, откуда возвращаются соответствия с учётом разных сценариев. Также обрабатывается функцией, которая обрабатывает сравнения. Разница между группами опций заключается в том, что на конечном этапе одна функция получает на обработку значение с логическим нет, что меняет результат, а в другом – запрос типа «NOT IN» к базе данных. Последнее означает, что условием срабатывания всплывающего окна будет отсутствие какого-либо признака в получаемых данных.
Опция сравнения НЕ СОДЕРЖИТ
«НЕ СОДЕРЖИТ» – это тоже название двух опций, которые используются во внутренней логике сервиса. Все замечания, касающиеся «СОДЕРЖИТ» также относятся и к этому варианту выбора.
«НАЧИНАЕТСЯ С»
эта опция обрабатывается только в функции проверки условий. Применяемый метод str_starts_with определяет есть в искомой строке указанная пользователем подстрока.
Особенность проверки
Проверка ведётся с учётом регистра.
«БОЛЬШЕ ЧЕМ», «МЕНЬШЕ ЧЕМ» и «МЕЖДУ».
Эта группа обрабатывается обеими функциями, отвечающими за сравнение. Но происходит это по-разному.
«БОЛЬШЕ ЧЕМ»
в случае с функцией, отправляющей запрос в базу данных, в запросе будет требование вернуть данные больше, чем переданное значение. Функция, проверяющая условия, вернёт или последний элемент массива, если в качестве параметра переданы данные этого типа, либо вернёт наибольшее число после сравнения.
«МЕНЬШЕ ЧЕМ»
в случае с функцией, отправляющей запрос в базу данных, в запросе будет требование вернуть данные меньше, чем переданное значение. Функция, проверяющая условия, вернёт или последний элемент массива, если в качестве параметра переданы данные этого типа, либо вернёт наименьшее число после сравнения.
«МЕЖДУ»
в функции, проверяющей условия, возвращается булево значение TRUE или FALSE, если переданное значение есть в массиве в указанном диапазоне. Сам диапазон задаётся пользователем в блоках условия по обе стороны от «МЕЖДУ». Вторая функция отправляет в базу данных запрос о нахождении результатов в указанном диапазоне.
Получение данных от пользователя
Каждый блок условий проверяется функцией отдельно. Первое условие блока определяет тип функции, которая будет
обрабатывать правило. В результате проверки должно вернуться булево значение, которое определит будет ли показано
всплывающее окно.
Чтобы настроить условие, пользователь должен собрать конструкцию из готовых блоков условий или же ввести информацию
напрямую. Если в базе данных будет найдено соответствие, то правило сработает.
Ввод данных при настройке правила может быть реализован двумя путями:
- Непосредственный ввод данных через "input". Они могут обрабатывать данные типа "строка" и "число". Ошибиться
здесь невозможно, для каждого правила предусмотрен собственный "конструктор" из блоков условий
- Через элементы типа "range". Такой тип ввода предусмотрен для ограничения диапазона значений, которые можно ввести
- Через элементы типа "radius". Простой выбор между вариантами "Да" и "Нет". Нужен для проверки
существования сущности
- Получение данных через блоки условий. Такой вариант предусмотрен в случаях, когда нужно произвести проверку
ограниченного числа заранее предусмотренных вариантов. В некоторых случаях в таких блоках условий реализован поиск,
который помогает найти нужную опцию среди прочих
Попапы в мобильных приложениях
При нажатии на кнопку Создать, появляется окно с возможностью настроить попап для мобильного приложения.
Саму настройку нужно производить только после инициализации соответствующего SDK. За непосредственный рендеринг попапа отвечают компоненты iOS или Android.
После настройки в SDK передаются параметры на основе которых будет отрендерен попап. Инструкцию по интеграции можно найти здесь.