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

Коротко
Условия выгрузки - это отдельная проверка выгрузки. Для них выбирается область: поле или элемент целиком. Также выбирается момент применения: до преобразований или после преобразований.
Не загружать поле в преобразованиях - это действие внутри последовательной цепочки правил. Оно срабатывает ровно в том месте, где стоит правило: в начале, в середине или в конце преобразований.
Порядок выполнения
- Eofferix читает исходное значение и контекст строки, товара, предложения или раздела.
- Если условие выгрузки настроено до преобразований, оно проверяется до запуска цепочки правил. Так можно отсеять поле или элемент по исходным данным.
- Затем выполняются преобразования сверху вниз. Внутри этой цепочки действие не загружать поле может сработать на любом шаге и остановить дальнейшую обработку текущего поля.
- Если условие выгрузки настроено после преобразований, оно проверяется уже по итоговому значению после цепочки правил. Так можно отсеять поле или элемент по очищенному, пересчитанному или собранному результату.
Что выбрать
| Задача | Лучше использовать | Почему |
|---|---|---|
| Не выгружать поле, если исходная цена пустая | Условие выгрузки для поля до преобразований | Проверка смотрит на исходное значение и не запускает лишние правила для поля, которое всё равно не нужно. |
| Не выгружать товар, если нет артикула или цена равна 0 | Условие выгрузки для элемента целиком | Нужно убрать всю запись, а не только одно поле. Момент применения выбирается по тому, проверяете вы исходную или уже рассчитанную цену. |
| Сначала очистить описание от HTML, а потом не выгружать поле, если оно стало пустым | Условие выгрузки для поля после преобразований | Проверка отделена от цепочки правил, но смотрит уже на очищенный результат. |
| В середине цепочки понять, что поле больше нельзя обрабатывать, и остановить дальнейшие операции | Преобразование "не загружать поле" | Это действие можно поставить между другими преобразованиями, а не только до или после всей цепочки. |
| После пересчета цены убрать весь товар, если итоговая цена слишком маленькая | Условие выгрузки для элемента целиком после преобразований | Решение относится ко всему элементу, но проверять нужно уже рассчитанное значение. |
Область действия
В блоке Условия выгрузки можно выбрать область и момент применения:
- Условие для поля - скрывает только текущее поле. Остальные поля той же строки или товара продолжают выгружаться.
- Условие для элемента целиком - исключает весь элемент: строку, товар, предложение или раздел в зависимости от редактора и роли узла.
- До преобразований - проверяет исходное значение или исходный контекст.
- После преобразований - проверяет итоговое значение после цепочки правил.
Действие не загружать поле в преобразованиях относится к текущему значению и находится внутри цепочки правил. Его используют, когда решение должно сработать именно между соседними операциями.
Практическое правило
Если задача звучит как "выгружать или не выгружать поле/элемент", используйте Условия выгрузки и выберите правильный момент: до или после преобразований.
Если задача звучит как "в этой точке цепочки остановить обработку поля", используйте не загружать поле в преобразованиях и поставьте правило в нужное место последовательности.
Пример
Поставщик присылает поле description со значением <p> </p>. В исходном виде поле не пустое, поэтому проверка до преобразований его пропустит. Если сначала выполнить "удалить HTML-теги", а затем "схлопнуть пробелы", значение станет пустым. В такой ситуации можно поставить условие выгрузки после преобразований для поля.
Другой случай: в середине цепочки после нормализации значение стало техническим маркером STOP, и следующие правила уже не должны выполняться. Тогда удобнее использовать действие не загружать поле прямо в этом месте цепочки.