Условие в преобразовании отвечает на вопрос: выполнять это правило сейчас или пропустить его и перейти к следующему правилу. Например: если цена больше 100, добавить наценку; если артикул не пустой, добавить префикс; если значение содержит USD, удалить эту подстроку.
Одни и те же проверки могут встречаться в преобразованиях и в условиях выгрузки, но результат разный. Преобразование меняет значение поля. Условие выгрузки решает, попадет ли поле, строка, товар или XML/JSON-элемент в итоговый файл.
Где используется условие
В строке преобразования условие стоит между источником значения и действием. Сначала сервис берет значение из выбранного источника, затем проверяет условие и только после этого выполняет действие.
- Источник - текущее значение или другой узел, атрибут, колонка либо системное значение.
- Условие - проверка: любое, равно, больше, содержит подстроку, пустое, регулярное выражение и другие варианты.
- Значение условия - то, с чем сравнивается источник. Для условий "любое", "пустое" и "не пустое" оно не нужно.
- Действие - что сделать, если условие выполнено: заменить, удалить пробелы, увеличить на процент, не загружать поле и так далее.
Условие можно строить не только по текущему полю. Например, значение "Наличие" можно менять по остатку из соседнего узла stock, а цену - по валюте или признаку активности товара.
До или после преобразований
Внутри цепочки преобразований правила выполняются сверху вниз. Каждая следующая строка получает результат предыдущей строки. Если нужно сначала очистить цену от пробелов и валюты, а потом проверить число, поставьте очистку выше числового условия.
Справочник условий
В справочнике оставлены только смысловые колонки: название условия, когда его применять и как оно себя ведет. Отдельная колонка с примерами здесь не нужна: практические сценарии приведены ниже.
| Условие | Когда применять | Поведение |
|---|---|---|
| любое | Правило должно работать всегда. | Срабатывает для любого значения, включая пустое. |
| равно | Нужно точное совпадение. | Сравнивает значение целиком. Регистр букв учитывается только если включена чувствительность к регистру. |
| не равно | Нужно обработать все значения, кроме одного. | Срабатывает, когда значение отличается от указанного. |
| больше | Нужно проверить число: цену, вес, остаток, количество. | Обе стороны сравнения читаются как числа. |
| меньше | Нужно найти значения ниже порога. | Работает как числовая проверка. |
| больше или равно | Порог тоже должен считаться подходящим. | Срабатывает для значения, которое равно порогу или выше него. |
| меньше или равно | Порог тоже должен считаться подходящим. | Срабатывает для значения, которое равно порогу или ниже него. |
| содержит подстроку | Нужно найти фрагмент внутри текста. | Срабатывает, если указанный текст найден в любом месте значения. |
| не содержит подстроку | Нужно исключить значения с определенным словом, кодом или фрагментом. | Срабатывает, если указанного текста внутри значения нет. |
| начинается с | Важен первый фрагмент значения. | Срабатывает, если значение начинается с указанного текста. |
| заканчивается на | Важен последний фрагмент значения. | Срабатывает, если значение заканчивается указанным текстом. |
| пустое | Нужно обработать незаполненные поля. | Строка из одних пробелов считается пустой. |
| не пустое | Действие нужно только для заполненных значений. | Срабатывает, когда после удаления пробелов по краям что-то остается. |
| регулярное выражение | Нужно проверить значение по шаблону. | Срабатывает, если регулярное выражение нашло совпадение. |
| не регулярное выражение | Нужно обработать значения, которые не подходят под шаблон. | Срабатывает, если регулярное выражение не нашло совпадение. |
Практический пример
Ниже один исходный XML-фрагмент и два разных варианта настройки. Первый вариант готовит цену, второй создает значение наличия по остатку из соседнего узла.
<catalog>
<product>
<name>Стол Nordic</name>
<sku>SKU-110</sku>
<price>12 490 USD</price>
<stock>8</stock>
</product>
</catalog>
Вариант 1: подготовить цену
Цена приходит как текст 12 490 USD. Чтобы получить число, правила выполняются последовательно: сначала очищают значение, затем проверяют уже подготовленное число.
- Условие любое: удалить пробелы из текущего значения.
- Условие содержит подстроку со значением
USD: заменить подстроку на пустое значение. - Условие больше со значением
100: увеличить цену на 10%.

| Было | Что сработало | Стало |
|---|---|---|
| 12 490 USD | удалить пробелы, убрать USD, увеличить на 10% | 13739 |
Вариант 2: создать наличие по остатку
Поле наличия можно заполнить не из текущего значения, а по соседнему узлу stock. Это удобно, когда в итоговый файл нужно вывести текстовый статус, а в исходнике есть только количество.
- Сначала правило с условием любое задает базовое значение
in_stock. - Следующее правило смотрит на
{/catalog/product/stock}. Если остаток меньше или равно0, значение заменяется наout_of_stock.

| Остаток в исходнике | Результат в поле наличия |
|---|---|
| 8 | in_stock |
| 0 | out_of_stock |
Что важно помнить
- Для числовых условий сначала уберите валюту, пробелы, единицы измерения и другой текст.
- Для условий "содержит подстроку", "начинается с" и "заканчивается на" значение поиска не должно быть пустым.
- Если нужно убрать весь товар, строку или XML/JSON-элемент, используйте условия выгрузки, а не только преобразование одного поля.
- Если правило не сработало, проверьте порядок строк: возможно, нужная очистка должна выполняться раньше.