Фильтрация клиентов

После создания сегмента автоматически откроется инструмент добавления фильтров. Либо необходимо зайти в созданный сегмент и нажать на кнопку в правом углу (+ фильтр).
Логика фильтрации сегмента
Фильтрация пользователей в интерфейсе осуществляется с помощью правого сайдбара.
Логика создания условий для фильтрации пользователей схожа с "Правила работы с корзиной" в CRM 1С-Битрикс.
Фильтрация осуществляется с помощью созданием фильтров и групп фильтров. Фильтр подразумевает один параметр, а группа фильтров - набор параметров.
Все фильтры и группы фильтров могут разделяться как оператором И так и ИЛИ.
Для быстрого изменения операторов в рамках группы или между группами (или фильтрами), существует текстовая кнопка все условия выполнены, которая подразумевает оператор И. При нажатии текст будет изменен на любое из условий выполнено, и оператор изменится на ИЛИ.
В рамках группы может быть только один вид оператора, смешивать И и ИЛИ в рамках одной группы нет смысла.
Также есть возможность сбросить все фильтры, через ссылку-кнопку "Сбросить".
PS: Логика конструктора условий "Правила работы с корзиной" была использована 1 в 1.
Пример работы фильтра
Шаг 1. Стартовое состояние

| Элемент | Комментарий |
|---|---|
| Кнопка "Все условия выполнено(ы)" | Переключает логику выполнения 2+ блоков с фильтрами При выбранном "Все условия выполнено(ы)" - между блоками будет И (все условия должны быть выполнены для того чтоб пользователь попал в данный сегмент). При выбранном "Любые условия выполнено(ы)" - между блоками будет ИЛИ (любое из условий должны быть выполнены для того чтоб пользователь попал в данный сегмент). |
| Кнопка "+ фильтр" | Создает фильтр и открывает интерфейс выбора условий фильтрации. |
Шаг 2. Создание фильтра

| Элемент | Комментарий |
|---|---|
| Блок с текстом "Выберите условие" | В данном блоке будет собираться название условия на основе выбранного условия и значения. |
| Выпадающий список - "Проверяем выполнение условий по:" | Выбор контекста (группы) условий. При выборе контекста выводится список всех доступных условий в рамках контекста. Например, контекст "Заказ", а условия "Стоимость заказа", "Статус заказа" и т.д. |
| Выбор конкретного условия "Стоимость заказа" | При выборе конкретного условия, например "Стоимость заказа" открывается интерфейс с выбором значения. |
| Поиск | Динамичный поиск по всем условиям в рамках выбранного контекста. При отсутствии условий подходящих под запрос, выводить "Ничего не найдено". |
Шаг 3. Выбор значения условия

| Элемент | Комментарий |
|---|---|
| Возвращение назад "← Стоимость заказа" | При нажатии переходим обратно к списку всех условий для выбранного контекста. |
| Выпадающий список условий для цифрового значения + поле "Значение" | В одном случае условия применяются для цифрового значения. Равно, больше, не равно, меньше указанного числа |
Варианты типов условий:
| Тип условия | Комментарий |
|---|---|
| Число | Равно, больше, не равно, меньше указанного числа |
| Список с чек-боксами | Возможность выбрать несколько значений из списка результатов. Условия "включить" или "исключить" нужны для создания сегментов пользователей которые имеют или не имеют данные значения. |
| Список с радио-кнопками | Возможность одно значение из списка результатов. Условия "включить" или "исключить" нужны для создания сегментов пользователей которые имеют или не имеют данные значения. |
| Выбор из древа | Вариант отображения древа формата (родительский-дочерний) с возможностью выбрать категорию или ее вложение. Выбрать можно несколько элементов. Обычно используется для каталогов, чтоб выбрать нужный раздел или подраздел из представленной структуры. |
| Текст | Возможность ввести произвольный текст для проверки условия. |
| Булевое значение | Да\Нет |
| Дата | Выбор даты дд.мм.гггг |
| Период | Выбор даты "с" - "по" в формате дд.мм.гггг |
Шаг 4. Применение фильтра
При применении условия пересчитывается кол-во пользователей в сегменте. Так можно будет понять есть ли по заданным условиям пользователи и сколько их доступно.

| Элемент | Комментарий |
|---|---|
| Кнопка "корзина" | Удаляет условие в фильтре. Если в фильтре больше нет условий, то удаляется и фильтр. |
| Кнопка "+ Условие" | Возможность добавить дополнительное условие в фильтре |