Условие в преобразовании отвечает на вопрос: выполнять это правило сейчас или пропустить его и перейти к следующему правилу. Например: если цена больше 100, добавить наценку; если артикул не пустой, добавить префикс; если значение содержит USD, удалить эту подстроку.
Одни и те же проверки могут встречаться в преобразованиях и в условиях выгрузки, но результат разный. Преобразование меняет значение поля. Условие выгрузки решает, попадет ли поле, строка, товар или XML/JSON-элемент в итоговый файл.
Где используется условие
В строке преобразования условие стоит между источником значения и действием. Сначала сервис берет значение из выбранного источника, затем проверяет условие и только после этого выполняет действие.
- Источник - текущее значение или другой узел, атрибут, колонка либо системное значение.
- Условие - проверка: любое, равно, больше, содержит подстроку, пустое, регулярное выражение и другие варианты.
- Значение условия - то, с чем сравнивается источник. Для условий "любое", "пустое" и "не пустое" оно не нужно.
- Действие - что сделать, если условие выполнено: заменить, удалить пробелы, увеличить на процент, не загружать поле и так далее.
Условие можно строить не только по текущему полю. Например, значение "Наличие" можно менять по остатку из соседнего узла stock, а цену - по валюте или признаку активности товара.
До или после преобразований
Внутри цепочки преобразований правила выполняются сверху вниз. Каждая следующая строка получает результат предыдущей строки. Если нужно сначала очистить цену от пробелов и валюты, а потом проверить число, поставьте очистку выше числового условия.
Справочник условий
В справочнике оставлены только смысловые колонки: название условия, когда его применять и как оно себя ведет. Отдельная колонка с примерами здесь не нужна: практические сценарии приведены ниже.
| Условие | Когда применять | Поведение |
|---|---|---|
| любое | Правило должно работать всегда. | Срабатывает для любого значения, включая пустое. |
| равно | Нужно точное совпадение. | Сравнивает значение целиком. Регистр букв учитывается только если включена чувствительность к регистру. |
| не равно | Нужно обработать все значения, кроме одного. | Срабатывает, когда значение отличается от указанного. |
| больше | Нужно проверить число: цену, вес, остаток, количество. | Обе стороны сравнения читаются как числа. |
| меньше | Нужно найти значения ниже порога. | Работает как числовая проверка. |
| больше или равно | Порог тоже должен считаться подходящим. | Срабатывает для значения, которое равно порогу или выше него. |
| меньше или равно | Порог тоже должен считаться подходящим. | Срабатывает для значения, которое равно порогу или ниже него. |
| содержит подстроку | Нужно найти фрагмент внутри текста. | Срабатывает, если указанный текст найден в любом месте значения. |
| не содержит подстроку | Нужно исключить значения с определенным словом, кодом или фрагментом. | Срабатывает, если указанного текста внутри значения нет. |
| начинается с | Важен первый фрагмент значения. | Срабатывает, если значение начинается с указанного текста. |
| заканчивается на | Важен последний фрагмент значения. | Срабатывает, если значение заканчивается указанным текстом. |
| пустое | Нужно обработать незаполненные поля. | Строка из одних пробелов считается пустой. |
| не пустое | Действие нужно только для заполненных значений. | Срабатывает, когда после удаления пробелов по краям что-то остается. |
| регулярное выражение | Нужно проверить значение по шаблону. | Срабатывает, если регулярное выражение нашло совпадение. |
| не регулярное выражение | Нужно обработать значения, которые не подходят под шаблон. | Срабатывает, если регулярное выражение не нашло совпадение. |
Практический пример
Ниже один фрагмент XML-снапшота и два варианта настройки по этим же узлам. В анимации показано, что клик по значению снапшота открывает окно преобразований для выбранного узла.
<workbook>
<sheet>
<row>
<Артикул>37227</Артикул>
<Название>Кашпо-Лейка "Гардении", кремовый, 13,5x10 см</Название>
<Единица>шт</Единица>
<Упаковка>1</Упаковка>
<Цена>269</Цена>
<Остаток>3</Остаток>
<Раздел>Домашний декор / Кашпо-Лейка</Раздел>
</row>
</sheet>
</workbook>
Вариант 1: подготовить цену
В этом снапшоте цена уже числовая: 269. Поэтому правило может сразу проверять число, а не очищать валюту или пробелы.
- Условие больше со значением
100: увеличить цену на 10%. - Условие меньше или равно со значением
100: заменить значение на100как минимальную цену.

| Было | Что сработало | Стало |
|---|---|---|
| 269 | больше 100, увеличить на 10% | 295.9 |
| 80 | меньше или равно 100, заменить на 100 | 100 |
Вариант 2: превратить остаток в статус
Узел остатка содержит число. Если получателю нужен текстовый статус, значение можно заменить по условиям.
- Сначала правило с условием любое задает базовое значение
in_stock. - Если текущее значение меньше или равно
0, оно заменяется наout_of_stock.

| Остаток в снапшоте | Результат |
|---|---|
| 3 | in_stock |
| 0 | out_of_stock |