Правила фильтрации данных

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

Когда использовать правила фильтрации

Нужно импортировать только товары определенной категории

Требуется исключить товары с ценой ниже себестоимости

Не нужно загружать товары, которых нет в наличии

Хотим импортировать только товары определенных брендов

Нужно отсеять товары с некорректными артикулами

Требуется исключить дубликаты по определенным признакам

Хотим загружать только товары, подходящие под нашу целевую аудиторию

Типы условий для фильтрации

Тип 1. Содержит

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

Пример: Оставить только товары, в названии которых есть "Bosch".

Тип 2. Не содержит

Проверяет, что значение в столбце НЕ содержит указанный текст.

Пример: Исключить товары, в названии которых есть "уценка".

Тип 3. Равно

Проверяет, точно ли значение в столбце равно указанному тексту.

Пример: Оставить только товары с брендом точно равным "Bosch".

Тип 4. Не равно

Проверяет, что значение в столбце НЕ равно указанному тексту.

Пример: Исключить товары с артикулом точно равным "00000".

Тип 5. Регулярное выражение

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

Пример: Оставить товары, артикул которых соответствует формату "ABC-12345".

Тип 6. Больше чем

Проверяет, что числовое значение в столбце больше указанного числа.

Пример: Оставить товары с ценой больше 1000 рублей.

Тип 7. Меньше чем

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

Пример: Исключить товары с ценой меньше 100 рублей.

Тип 8. Между

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

Пример: Оставить товары с ценой от 500 до 5000 рублей.

Тип 9. Пустое

Проверяет, что значение в столбце пустое (отсутствует).

Пример: Исключить товары, у которых не указан артикул.

Тип 10. Не пустое

Проверяет, что значение в столбце не пустое (заполнено).

Пример: Оставить только товары, у которых есть описание.

Действия при фильтрации

Действие 1. Включить товар

Товар включается в импорт, если условие выполняется. Если условие не выполняется - товар исключается.

Логика: Условие должно быть истинно для включения товара.

Действие 2. Исключить товар

Товар исключается из импорта, если условие выполняется. Если условие не выполняется - товар включается.

Логика: Условие должно быть истинно для исключения товара.

Структура правила фильтрации

Каждое правило содержит следующие параметры:

Название правила - произвольное название для идентификации

Действие - включить товар или исключить товар

Тип условия - содержит, не содержит, равно, не равно, регулярное выражение, больше чем, меньше чем, между, пустое, не пустое

Столбец для проверки - номер столбца, из которого берется значение

Значение условия - текст или число для сравнения

Второе значение - для условия "между" указывается верхняя граница

Проверять цену - отдельная опция для проверки уже обработанной цены товара

Проверять наличие - отдельная опция для проверки наличия товара

Порядок применения - правила применяются в порядке возрастания

Активно - включено ли правило

Примеры для CSV/EXCEL

Пример 1. Фильтрация по категории товаров

В прайс-листе есть столбец с категорией, нужно оставить только электроинструмент.

Правило:

Название правила = "Только электроинструмент"

Действие = включить товар

Тип условия = содержит

Столбец для проверки = 2 (столбец с категорией)

Значение условия = "Электроинструмент"

Порядок применения = 1

Результат: В импорт попадут только товары, в категории которых есть слово "Электроинструмент"

Пример 2. Исключение товаров с браком

В прайс-листе есть столбец с примечаниями, нужно исключить товары с пометкой о браке.

Правило:

Название правила = "Исключить брак"

Действие = исключить товар

Тип условия = содержит

Столбец для проверки = 5 (столбец с примечаниями)

Значение условия = "брак"

Порядок применения = 1

Результат: Товары, в примечаниях которых есть слово "брак", будут исключены

Пример 3. Фильтрация по бренду

Нужно оставить только товары брендов Bosch, Makita и DeWalt.

Правило (вариант с регулярным выражением):

Название правила = "Только основные бренды"

Действие = включить товар

Тип условия = регулярное выражение

Столбец для проверки = 3 (столбец с брендом)

Значение условия = r'Bosch|Makita|DeWalt'

Порядок применения = 1

Результат: Товары с брендом Bosch, Makita или DeWalt будут включены, остальные исключены

Пример 4. Фильтрация по цене (нижний порог)

Нужно исключить товары дешевле 100 рублей.

Правило:

Название правила = "Исключить дешевые товары"

Действие = исключить товар

Тип условия = меньше чем

Столбец для проверки = 4 (столбец с ценой)

Значение условия = 100

Порядок применения = 1

Результат: Все товары с ценой меньше 100 рублей будут исключены

Пример 5. Фильтрация по цене (диапазон)

Нужно оставить товары в ценовом диапазоне от 500 до 5000 рублей.

Правило:

Название правила = "Ценовой диапазон 500-5000"

Действие = включить товар

Тип условия = между

Столбец для проверки = 4

Значение условия = 500

Второе значение = 5000

Порядок применения = 1

Результат: Товары с ценой от 500 до 5000 рублей будут включены, остальные исключены

Пример 6. Фильтрация по наличию

Нужно оставить только товары, которые есть в наличии.

Правило:

Название правила = "Только в наличии"

Действие = включить товар

Тип условия = не пустое

Столбец для проверки = 6 (столбец с наличием)

Значение условия = "" (не используется)

Порядок применения = 1

Результат: Товары с заполненным столбцом наличия будут включены

Или через проверку наличия (отдельная опция):

Правило:

Название правила = "Только в наличии"

Действие = включить товар

Проверять наличие = да

Условие для наличия = в наличии

Порядок применения = 1

Результат: Товары, у которых поле availability = true, будут включены

Пример 7. Фильтрация по артикулу (формат)

Нужно оставить только товары с артикулами определенного формата.

Правило:

Название правила = "Корректный формат артикула"

Действие = включить товар

Тип условия = регулярное выражение

Столбец для проверки = 1 (столбец с артикулом)

Значение условия = r'^[A-Z]{2}-\d{5}$' (формат AB-12345)

Порядок применения = 1

Результат: Товары с артикулами вида AB-12345 будут включены, остальные исключены

Пример 8. Исключение товаров с пустым описанием

Нужно исключить товары, у которых нет описания.

Правило:

Название правила = "Исключить без описания"

Действие = исключить товар

Тип условия = пустое

Столбец для проверки = 7 (столбец с описанием)

Значение условия = "" (не используется)

Порядок применения = 1

Результат: Товары с пустым описанием будут исключены

Пример 9. Комбинированная фильтрация (несколько условий)

Сначала исключаем брак, потом оставляем только нужные бренды, потом фильтруем по цене.

Правило 1 (исключить брак):

Название = "Исключить брак"

Действие = исключить товар

Тип условия = содержит

Столбец = 5, значение = "брак"

Порядок = 1

Правила фильтрации данных

Название = "Только Bosch и Makita"

Действие = включить товар

Тип условия = регулярное выражение

Столбец = 3, значение = r'Bosch|Makita'

Порядок = 2

Правило 3 (цена от 1000):

Название = "Цена от 1000"

Действие = включить товар

Тип условия = больше чем

Столбец = 4, значение = 1000

Порядок = 3

Результат:

Сначала исключаются все товары с браком

Из оставшихся выбираются только Bosch и Makita

Из них оставляются только те, у которых цена больше 1000

Пример 10. Фильтрация по нескольким условиям в одном правиле

Правило может проверять одновременно и столбец, и цену, и наличие.

Правило (комбинированное):

Название правила = "Элитные товары в наличии"

Действие = включить товар

Тип условия = содержит (для столбца)

Столбец для проверки = 2 (категория)

Значение условия = "Премиум"

Проверять цену = да

Условие для цены = больше чем

Значение цены = 5000

Проверять наличие = да

Условие для наличия = в наличии

Порядок применения = 1

Результат: Товар включается только если он из категории "Премиум", цена больше 5000 и он в наличии

Пример 11. Фильтрация по весу

Нужно исключить слишком тяжелые товары.

Правило:

Название правила = "Исключить тяжелые товары"

Действие = исключить товар

Тип условия = больше чем

Столбец для проверки = 8 (столбец с весом)

Значение условия = 50 (кг)

Порядок применения = 1

Результат: Товары с весом больше 50 кг будут исключены

Пример 12. Фильтрация по стране производителя

Нужно оставить только товары российского производства.

Правило:

Название правила = "Только российские товары"

Действие = включить товар

Тип условия = содержит

Столбец для проверки = 9 (столбец со страной)

Значение условия = "Россия"

Порядок применения = 1

Результат: Товары, в стране которых есть "Россия", будут включены

Примеры для YML

Пример 13. Фильтрация по категории в YML

В YML категория товара определяется по categoryId.

Правило:

Название правила = "Только электроинструмент"

Действие = включить товар

Тип условия = равно

XPath для условия = categoryId

Значение условия = "2" (ID категории электроинструмента)

Порядок применения = 1

Пример 14. Фильтрация по наличию в YML

В YML наличие определяется атрибутом available.

Правило:

Название правила = "Только товары в наличии"

Действие = включить товар

Проверять наличие = да

Условие для наличия = в наличии

Порядок применения = 1

Или через XPath:

Название = "Только в наличии"

Действие = включить товар

Тип условия = равно

XPath = @available

Значение условия = "true"

Пример 15. Фильтрация по параметру в YML

В YML есть теги param с характеристиками.

Правило:

Название правила = "Только профессиональные"

Действие = включить товар

Тип условия = содержит

XPath для условия = param[@name="Назначение"]

Значение условия = "Профессиональный"

Порядок применения = 1

Примеры для XML

Пример 16. Фильтрация по тегу в XML

В XML нужно оставить товары определенного производителя.

Правило:

Название правила = "Только Bosch"

Действие = включить товар

Тип условия = содержит

XPath для условия = Производитель

Значение условия = "Bosch"

Порядок применения = 1

Пример 17. Фильтрация по наличию НДС

Нужно исключить товары без НДС.

Правило:

Название правила = "Исключить без НДС"

Действие = исключить товар

Тип условия = равно

XPath для условия = НДС

Значение условия = "0"

Порядок применения = 1

Примеры для JSON

Пример 18. Фильтрация по полю в JSON

В JSON нужно оставить товары с рейтингом выше 4.

Правило:

Название правила = "Только с высоким рейтингом"

Действие = включить товар

Тип условия = больше чем

JSON Path для условия = $.rating

Значение условия = 4

Порядок применения = 1

Пример 19. Фильтрация по наличию поля

Нужно оставить товары, у которых есть изображения.

Правило:

Название правила = "Только с фото"

Действие = включить товар

Тип условия = не пустое

JSON Path для условия = $.images

Порядок применения = 1

Сложные примеры комбинирования

Пример 20. Многоуровневая фильтрация для интернет-магазина

Полная система фильтрации для интернет-магазина.

Правило 1 (исключить служебные товары):

Название = "Исключить служебные"

Действие = исключить товар

Тип условия = содержит

Столбец = 10 (примечания)

Значение = "служебный|тестовый|образец"

Порядок = 1

Правило 2 (исключить товары с ценой 0):

Название = "Цена не может быть 0"

Действие = исключить товар

Тип условия = равно

Столбец = 4

Значение = "0"

Порядок = 2

Правило 3 (исключить товары без артикула):

Название = "Должен быть артикул"

Действие = исключить товар

Тип условия = пустое

Столбец = 1

Порядок = 3

Правило 4 (только основные категории):

Название = "Основные категории"

Действие = включить товар

Тип условия = регулярное выражение

Столбец = 2

Значение = r'Электроника|Инструмент|Сад|Авто'

Порядок = 4

Правило 5 (ценовой диапазон для разных категорий):

Название = "Цена от 100 до 100000"

Действие = включить товар

Тип условия = между

Столбец = 4

Значение = 100

Второе значение = 100000

Порядок = 5

Пример 21. Фильтрация по сезонности

Нужно исключить сезонные товары в межсезонье.

Правило (исключить зимние товары летом):

Название = "Исключить зимние товары"

Действие = исключить товар

Тип условия = содержит

Столбец = 2 (категория)

Значение = "зимний|снег|лед"

Порядок = 1

Пример 22. Фильтрация по возрасту (для детских товаров)

Нужно оставить только товары для определенного возраста.

Правило:

Название = "Товары для детей 3-7 лет"

Действие = включить товар

Тип условия = регулярное выражение

Столбец = 11 (возраст)

Значение = r'3-7|от 3 до 7|3+'

Порядок = 1

Порядок применения правил

Правила применяются в порядке возрастания поля "Порядок применения". Важно правильно выстроить последовательность.

Основные принципы порядка:

Сначала исключающие правила, потом включающие

Сначала исключаем явный "мусор", потом из оставшегося выбираем нужное

Более строгие правила раньше более общих

Правила с конкретными условиями должны применяться раньше общих правил

Правила с действием "исключить" имеют приоритет

Если товар исключен на раннем этапе, дальнейшие правила к нему не применяются

Логическая последовательность

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

Пример правильной последовательности:

Порядок 1: Исключить товары с ценой 0 (очевидный мусор)

Порядок 2: Исключить товары без артикула (нет смысла импортировать)

Порядок 3: Исключить товары с браком

Порядок 4: Включить только товары нужных категорий

Порядок 5: Включить только товары нужных брендов

Порядок 6: Включить только товары в ценовом диапазоне

Логика работы правил фильтрации

Правила фильтрации работают по следующей логике:

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

Для правил с действием "исключить": если условие истинно, товар сразу исключается, дальнейшие правила не применяются

Для правил с действием "включить": если условие ложно, товар исключается, дальнейшие правила не применяются

Если нет ни одного правила или ни одно правило не дало окончательного решения, товар включается по умолчанию

Пример работы нескольких правил:

Правило А (исключить): Если брак → исключить

Правило Б (включить): Если категория = Электроника → включить

Сценарии:

Товар с браком из категории Электроника → Правило А сработает, товар исключен, Правило Б не применяется

Товар без брака из категории Электроника → Правило А не сработало, Правило Б сработало, товар включен

Товар без брака из категории Одежда → Правило А не сработало, Правило Б не сработало, товар исключен (так как условие включения не выполнено)

Использование регулярных выражений в фильтрации

Для типа условия "регулярное выражение" можно использовать сложные паттерны.

Примеры регулярных выражений для фильтрации:

Для проверки формата артикула: ^[A-Z]{2,3}-\d{5,6}$ (AB-12345 или ABC-123456)

Для проверки ценового диапазона в тексте: \b(1000|2000|3000)\b (точные значения)

Для исключения по ключевым словам: брак|уценка|поврежден|б/у

Для проверки email: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

Для проверки URL изображения: ^https?://.*\.(jpg|jpeg|png|gif)$

Типичные ошибки и их решения

Ошибка: "Не фильтруется ничего"

Проверьте что правила активны (флажок "Активно" включен)

Убедитесь что указаны правильные номера столбцов

Проверьте значения условий на опечатки и регистр

Для условий "содержит" убедитесь что текст действительно есть в данных

Ошибка: "Фильтруется слишком много"

Сделайте условия более точными

Используйте "равно" вместо "содержит" где возможно

Проверьте регулярные выражения на излишнюю общность

Ошибка: "Правила конфликтуют"

Проверьте порядок применения

Убедитесь что нет противоречивой логики

Помните что исключение имеет приоритет над включением

Ошибка: "Числовые сравнения не работают"

Убедитесь что в столбце действительно числа, а не текст

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

Для смешанных данных используйте регулярные выражения

Ошибка: "Условие с регулярным выражением не срабатывает"

Проверьте синтаксис регулярного выражения

Используйте онлайн-тестеры для отладки

Убедитесь что выражение соответствует всему значению или его части

Советы

Начинайте с исключения мусора

Сначала отсеивайте заведомо неподходящие товары, это ускорит обработку.

Используйте простые условия где можно

Не усложняйте с регулярными выражениями, если хватает "содержит" или "равно".

Группируйте условия

В одном правиле можно проверять и столбец, и цену, и наличие - это эффективнее нескольких правил.

Проверяйте на тестовой выборке

Создайте небольшой тестовый файл и проверьте все правила перед массовым импортом.

Документируйте сложные правила

В названии или описании указывайте, зачем нужно правило и что оно делает.

Проверяйте граничные случаи

Что происходит с пустыми значениями, с нулями, с очень большими числами.