Условия в преобразованиях: когда правило срабатывает

Как работают условия в правилах преобразования: любое, равно, больше, содержит подстроку, пустое, регулярное выражение и проверка соседних узлов.

Условие в преобразовании определяет, выполнять ли конкретное правило. Сервис сначала берёт значение из выбранного источника, проверяет условие и, если оно выполнено, применяет действие к полю, настройки которого открыты.

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

Текущее значение и значение из источника

Что выбрано в первой части правила Что проверяется Что меняется
Текущее значение Рабочий результат на этом шаге цепочки с учётом предыдущих правил. Поле, настройки которого открыты.
Колонка или узел источника, например stock Значение этой колонки или узла в исходной записи. По-прежнему поле, настройки которого открыты, а не выбранный источник.

Это позволяет проверять исходный остаток и записывать текстовый статус в другое поле. Названия stock и availability ниже — только пример: в вашем файле поля и узлы могут называться иначе.

Пример: превратить остаток в статус

  1. Откройте Преобразования итогового поля availability, которое получает исходное значение из stock.
  2. Добавьте первое правило: Текущее значениеЛюбоеЗаменить наin_stock. Оно задаёт значение по умолчанию.
  3. Добавьте ниже второе правило. В первой части выберите исходную колонку или узел stock, затем задайте Меньше или равно0Заменить наout_of_stock. Условие читает исходный остаток, а действие заменяет текущее значение поля availability.
    Два правила преобразования availability: значение по умолчанию и проверка исходного stock
    Во втором правиле красной рамкой выделен источник stock: проверяется исходный остаток, а не уже установленное значение in_stock.
  4. Нажмите Сохранить. Запустите небольшую тестовую выгрузку и проверьте скачанный файл; предпросмотр используйте как дополнительную проверку.

Что получится

Исходный stock После первого правила Итоговый availability
-1 in_stock out_of_stock
0 in_stock out_of_stock
5 in_stock in_stock

Если во втором правиле оставить Текущее значение, сервис будет сравнивать с нулём строку in_stock. Такое правило не проверяет исходный остаток и не может корректно различить 0 и 5.

Как выбрать источник в трёх редакторах

Редактор Что выбрать во втором правиле
Таблица Исходную колонку stock.
JSON Узел stock; в проверенном примере путь выглядит как {/rows/stock}.
XML Узел stock; в проверенном примере путь выглядит как {/workbook/sheet/row/stock}.

Пути зависят от структуры конкретного файла. Выбирайте свой узел остатка в той же повторяющейся записи, а не копируйте пример пути буквально.

Основные условия

Оператор Когда использовать Пример использования
Любое Действие должно выполняться независимо от содержимого значения. Убрать пробелы по краям у каждого значения.
Равно Нужно проверить точное текстовое совпадение со значением. Если status равен inactive, заменить его на Нет.
Не равно Нужно обработать все значения, кроме указанного. Добавить SKU- ко всем кодам, кроме unknown.
Содержит подстроку Нужно найти фрагмент в любой части текста. Удалить руб. из значения 1200 руб..
Не содержит подстроку Действие должно выполняться, если фрагмента в тексте нет. Добавить https://, если ссылка не содержит http.
Пустое Нужно обработать пустое значение или строку только из пробелов. Подставить Нет данных в пустое поле.
Не пустое Нужно обработать только заполненные значения. Убрать пробелы по краям только у заполненных значений.
Больше Нужно сравнить число с порогом, не включая сам порог. Если цена больше 1000, увеличить её на 5 %.
Меньше Нужно найти числа ниже порога. Если остаток меньше 5, заменить его на Мало.
Больше или равно Нужно включить в проверку сам порог и все большие значения. Применить правило при количестве 10 и больше.
Меньше или равно Нужно включить в проверку сам порог и все меньшие значения. Заменить цену 0 или меньше на Проверить.
В диапазоне Проверить, находится ли число между двумя включёнными границами. В одном поле указать 591,5-1032.8 и обработать цену внутри этого диапазона.
Начинается с Важен фрагмент в начале значения. Удалить SKU- из кода SKU-123.
Заканчивается на Важен фрагмент в конце значения. Удалить .00 из цены 125.00.
Регулярное выражение Нужно проверить значение по шаблону. Обработать только восьмизначные коды по шаблону ^\d{8}$.
Не регулярное выражение Нужно обработать значения, которые не соответствуют шаблону. Очистить значение, если оно не соответствует ^\d{8}$.

В условиях Больше, Меньше, Больше или равно, Меньше или равно и В диапазоне дробную часть можно отделять точкой или запятой: значения 12.5 и 12,5 корректно участвуют в числовом сравнении. Это проверено в редакторах таблиц, JSON и XML. Условия Равно и Не равно сравнивают текст точно, поэтому для них точка и запятая различаются.

Для условия В диапазоне введите обе границы в одном поле через дефис: 58-590 или 591,5-1032.8. Обе границы включены. Сначала должна идти нижняя граница; некорректный или обратный диапазон не срабатывает.

Что важно

  • Числовое условие применяйте только к значению, которое сервис может прочитать как число. Пустые и текстовые остатки обрабатывайте отдельным правилом.
  • Преобразование меняет значение поля. Если нужно исключить поле или всю запись из результата, используйте отдельный блок Условия выгрузки.
  • Проверенный результат для примера одинаков в редакторах таблиц, JSON и XML.