Перейти к основному содержимому

Фильтры и правила отбора

Фильтр убирает ненужные строки из результата. В отличие от преобразования, который меняет значение, фильтр решает, оставить строку или нет.

Если в файле есть товары без остатка, а нужны только продаваемые, — это задача фильтра, а не преобразования.

Как задаются фильтры​

Фильтры хранятся в профиле сопоставления в виде JSON-массива. Каждый элемент описывает одно условие:

[
{ "field": "stock", "operator": "gt", "value": 0 }
]

Строка остаётся в результате, только если выполняются все условия (логическое «И»).

Операторы​

ОператорЧто проверяетПример значения
eqРавноPremium
neqНе равноDiscontinued
gtБольше0
gteБольше или равно100
ltМеньше1000
lteМеньше или равно1000
inВходит в список["A", "B"]
not_inНе входит в список["test"]
nullЗначение пустое—
not_nullЗначение заполнено—
containsСодержит подстрокуBosch
not_containsНе содержит подстрокуtest
starts_withНачинается сБР-
ends_withЗакрывается на-XL
regexСовпадает с регулярным выражением^[A-Z]{3}-\d+$
betweenВходит в диапазон[10, 100]

Примеры​

Только товары в наличии:

[{ "field": "stock", "operator": "gt", "value": 0 }]

Цена в диапазоне от 100 до 100 000:

[{ "field": "price", "operator": "between", "value": [100, 100000] }]

Один из двух статусов:

[{ "field": "availability", "operator": "in", "value": ["есть", "в наличии"] }]

Исключить тестовые позиции:

[{ "field": "name", "operator": "not_contains", "value": "тест" }]

Что происходит с отфильтрованными строками​

Отфильтрованные строки не попадают в результат и в выгрузку. При этом они учитываются в квоте строк: строки резервируются до начала обработки.

Где настроить​

Фильтры задаются в профиле сопоставления — поле «Фильтр», формат JSON. Сохраняются вместе с профилем и применяются при каждой обработке, включая файлы из фида поставщика.

Связанные статьи​