Преобразования значений

Как менять данные перед выгрузкой: замены, очистка текста, цепочки правил, расчеты, значения по умолчанию и новые поля.

Преобразования значений меняют данные исходного файла перед записью в итоговый формат. Они применяются когда нужно убрать лишние символы, нормализовать артикул, собрать название из нескольких полей, привести цену к нужному виду, заполнить значение по умолчанию или подготовить данные под требования сайта, ERP, CMS, маркетплейса или иных приложений.

Как выполнить преобразование

Блок "Преобразования" находится в настройках конкретного значения, поля, узла или колонки. Сначала выберите значение в снапшоте или таблице, затем откройте настройки и добавьте одно или несколько правил.

  1. Откройте профиль и перейдите к снапшоту или редактору структуры.
  2. Выберите поле результата: например, sku, price, name, колонку таблицы или поле сводного каталога.

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

Анимация открытия окна преобразований в табличном редакторе
Клик по настройкам столбца price открывает реальное окно столбца с блоком "Преобразования".

В XML-редакторе выберите узел или атрибут, который попадет в результат. После клика появляется окно настроек этого значения.

Анимация открытия окна преобразований в XML-редакторе
Клик по XML-узлу открывает настройки значения, где можно добавить правило преобразования.

В JSON-редакторе выберите ключ или значение в дереве результата. Настройки открываются для выбранного блока JSON.

Анимация открытия окна преобразований в JSON-редакторе
Клик по JSON-полю открывает то же окно преобразований для выбранного значения.

В сводном каталоге преобразование открывается из привязки поля каталога. Нажмите на выбранное поле, например "Наименование [NAME]" или "Артикул [SKU]", и откройте настройки значения.

Анимация открытия окна преобразований в сводном каталоге
Клик по полю сводного каталога открывает то же окно настроек с блоком "Преобразования".
  1. Нажмите настройки значения и добавьте правило в блоке "Преобразования".
  2. Сохраните настройки и проверьте предпросмотр на нескольких строках или товарах.
Строка правила преобразования значения SKU с выделенными действием и результатом
На примере правило проверяет текущее значение SKU, ищет дефис и заменяет его на пустое значение.

Из чего состоит правило

Правило читается как фраза: какое значение проверить, при каком условии выполнить действие и что записать в результат. Если условие не сработало, текущее значение идет дальше без изменений.

Часть правилаЧто означаетПример
Значение для проверкиОбычно это текущее поле. В сложных настройках можно проверять соседний узел, колонку или другое поле товара.{/catalog/product/stock}
УсловиеРешает, когда правило срабатывает: любое значение, пустое, не пустое, содержит текст, больше числа и так далее.больше 100
ДействиеОпределяет, что сделать со значением: заменить, очистить, добавить текст, посчитать, округлить или остановить загрузку поля.увеличить на %
Результат или параметрЗадает новый текст, число, процент, точность округления или другой параметр действия.12

Цепочка правил

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

Анимация добавления цепочки правил преобразования для наименования товара

Например, цену удобно готовить цепочкой: сначала очистить значение от лишних пробелов, потом применить наценку, затем учесть условие по остатку и только в конце округлить.

Последовательные преобразования цены с проверкой соседнего поля stock
В третьем правиле проверяется соседнее значение stock. Так можно менять цену с учетом данных из другого поля той же записи.

Что можно делать преобразованиями

  • очищать текст от HTML, лишних пробелов, переносов строк и служебных символов;
  • заменять фрагменты: например, убрать дефисы из артикула или заменить старое название категории;
  • добавлять префикс, суффикс или значение из другого поля;
  • собирать одно итоговое поле из нескольких значений источника;
  • переводить текст в верхний или нижний регистр;
  • преобразовывать числа, даты и цены;
  • считать наценку, скидку, коэффициент поставщика или итоговую цену;
  • округлять значения в конце цепочки;
  • создавать значения по умолчанию для пустых полей;
  • останавливать загрузку конкретного поля, если оно больше не должно попадать в результат.

Все операторы преобразований

В правиле есть два типа операторов: оператор условия решает, когда правило сработает, а оператор действия меняет значение или параметр поля. Операторы можно комбинировать в цепочки и проверять не только текущее значение, но и соседние поля записи.

Операторы условий

ОператорКак работает
ЛюбоеПравило срабатывает всегда и не смотрит на содержимое поля.
Равно / Не равноПроверяет, равно ли значение параметру или, наоборот, отличается от него.
Больше / Меньше / Больше или равно / Меньше или равноСравнивает числовые значения.
Содержит подстроку / Не содержит подстрокуПроверяет, содержит ли значение указанный фрагмент текста.
Начинается с / Заканчивается наПроверяет начало или окончание строки.
Пустое / Не пустоеСрабатывает для пустого или заполненного значения.
Регулярное выражение / Не регулярное выражениеПроверяет значение по регулярному выражению. Подходит для шаблонов вроде чисел, букв, префиксов, артикулов и кодов.

Операторы действий

ОператорКак работает
Заменить наПолностью заменяет текущее значение на указанный текст, число или значение из другого поля.
Добавить в начало / Добавить в конецДобавляет текст, префикс, суффикс или токен другого поля в начало или конец текущего значения.
Преобразовать датуПриводит дату к нужному формату.
Собрать значения по пути / Суммировать значения по путиИспользуется в XML-редакторе для сбора или суммирования значений из повторяющихся узлов по указанному пути.
Заменить подстрокуЗаменяет один фрагмент другим. Параметр записывается в формате что искать=>на что заменить.
Удалить подстрокуУдаляет указанный фрагмент из значения. Например, можно убрать дефисы, пробелы или служебный префикс.
Удалить после / Удалить до / Удалить все, кромеОбрезает значение относительно найденного фрагмента: оставить часть до него, после него или только найденный фрагмент. Работает с условиями "Содержит подстроку", "Начинается с", "Заканчивается на" и регулярными выражениями.
Убрать пробелы по краям / Удалить пробелы / Схлопнуть двойные пробелыУбирает пробелы по краям, удаляет все пробелы или сворачивает несколько пробелов в один.
Удалить HTML-тегиУдаляет HTML-теги из описаний и других текстовых полей.
Нижний регистр / Верхний регистр / Первая буква заглавная / Каждое слово с заглавнойМеняет регистр текста.
ТранслитерацияПереводит кириллицу в латиницу, удобно для кодов, URL-частей и технических полей.
ОкруглитьОкругляет число по заданной точности и правилам округления.
Умножить / Разделить / Прибавить / ВычестьВыполняет математическое действие с числом.
Увеличить на % / Уменьшить на %Добавляет или вычитает процент от текущего значения, например для наценки или скидки.
Не загружать полеОчищает результат поля: выбранное значение не попадает в итоговую выгрузку.
ПропуститьНичего не меняет и передает текущее значение дальше по цепочке. Полезно как условная развилка.

Регулярные выражения

Регулярные выражения используются в условии "Регулярное выражение" и в операторах обрезки. Шаблон пишется без ограничителей /.../: сервис сам применяет его к значению. По умолчанию проверка не учитывает регистр; если включить учет регистра, строчные и заглавные буквы будут различаться.

ЗадачаШаблонКак применить
Оставить только цифры из SKU-123-A\d+Условие "Регулярное выражение" и действие "Удалить все, кроме" дадут 123. Так фактически убираются буквы и лишние символы вокруг числа.
Оставить только буквы из AB-123[A-Za-zА-Яа-яЁё]+Условие "Регулярное выражение" и действие "Удалить все, кроме" дадут AB.
Найти значение, которое начинается с временного префикса^TMP-Используйте условие "Регулярное выражение", чтобы обработать только временные артикулы.
Проверить наличие десятичной цены\d+([.,]\d+)?Подходит для условий перед математическими действиями и округлением.
Найти лишние пробелы\s{2,}Можно сначала проверить такие строки регулярным выражением, затем применить действие "Схлопнуть двойные пробелы".

База регулярных выражений большая: можно использовать диапазоны символов, классы вроде \d и \s, начало строки ^, конец строки $, группы и повторы. Сложные шаблоны лучше проверять на предпросмотре: если выражение написано неверно, правило не сработает.

Значения по умолчанию и новые поля

Преобразования полезны не только для существующих значений. Новому полю можно сразу задать базовое значение, а потом заменить его по условиям. Например, поле "Класс продукта" сначала получает значение "Средняя цена", а следующие правила могут заменить его на "Бюджетный" или "Премиум" по цене.

Новое поле Класс продукта с правилом значения по умолчанию
Такое поле может отсутствовать в источнике. Оно создается в профиле и заполняется правилами.

Преобразование или условие выгрузки

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

ЗадачаЧто использовать
Убрать дефис из SKU, но оставить товарПреобразование значения для поля SKU
Не выгружать описание, если после очистки оно пустоеПреобразование очистки плюс условие для поля после преобразований
Не выгружать весь товар с нулевой ценойУсловие выгрузки для элемента или товара
Посчитать цену с наценкой и округлениемЦепочка преобразований для поля цены

Как проверить результат

  1. Сохраните настройки поля.
  2. Откройте предпросмотр или тестовый запуск профиля.
  3. Проверьте обычное значение, пустое значение и нестандартный пример из источника.
  4. Если правил несколько, временно оставьте одно правило и проверьте его отдельно.
  5. После изменения порядка правил еще раз проверьте итоговое значение.
  • Не делайте слишком агрессивную очистку без проверки реальных примеров: можно удалить полезную часть названия или артикула.
  • Математические действия лучше выполнять после очистки числа, а округление ставить последним.
  • Если правило использует другое поле, проверьте строки, где это поле пустое или отсутствует.
  • Если нужно удалить не поле, а всю запись, используйте условия выгрузки, а не замену значения на пустое.