Skip to main content

Обзор преобразования

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

Как это устроено​

К каждому полю профиля привязывается трансформер — одна операция и её параметры. Трансформер задаётся в редакторе поля профиля сопоставления.

Столбец поставщика → сопоставление с полем → трансформер → результат

Отдельного «редактора преобразований» нет: преобразование настраивается там же, где и сопоставление, — в карточке поля.

Доступные операции​

ОперацияЧто делает
trimУбирает пробелы по краям
uppercaseПереводит в верхний регистр
lowercaseПереводит в нижний регистр
replaceЗаменяет подстроку на другую
regexp_replaceЗаменяет по регулярному выражению
decimal_normalizeПриводит число к десятичному виду, разбирая разделители
numeric_normalizeОставляет только цифры и приводит к целому
boolean_normalizeПриводит значение к «да / нет» по набору значений
value_mapЗаменяет значения по словарю
multiplyУмножает на коэффициент
addПрибавляет число
subtractВычитает число
divideДелит на число
roundОкругляет
ceilОкругляет вверх
floorОкругляет вниз
absБерёт модуль числа
percentageУмножает на процент из параметров
chainПоследовательно применяет несколько операций к одному значению

Параметры​

Параметры задаются в формате JSON рядом с выбором трансформера. Набор параметров зависит от операции.

Примеры:

{ "factor": 1.35 }
{ "thousands_separator": " ", "decimal_separator": "," }
{ "search": "руб.", "replace": "" }

Частые случаи​

  • Разделители дробной части — decimal_normalize превращает «1 234,56» в число
  • Наценка — multiply с коэффициентом 1.35
  • Округление до целых — round
  • Чистка текста — trim, затем uppercase или lowercase
  • Словарная замена — value_map

Подробнее про числовые операции — в статье Коэффициенты.

Что преобразования не умеют​

  • Условных ветвлений нет. Нельзя написать «если цена больше 100, то…». Если значение должно зависеть от условия, используйте фильтры.
  • Формул по нескольким полям нет. Трансформер применяется к одному значению; chain — тоже к одному, но в несколько шагов.
  • Работы с датами нет. Отдельной операции для дат в наборе нет.
  • Объединения данных из нескольких файлов нет. Для этого есть отдельный сценарий обработки.

Преобразования сохраняются​

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

Связанные статьи​