+7 495 008 8452 пн.-пт. 10:00 – 17:00

Не нашли ответы на свои вопросы в наших публикациях? Задайте вопрос в службу техподдержки!


Модуль "Универсальный импорт" предоставляет широкий спектр различных манипуляций с импортируемыми данными. Это добавляет значительную гибкость данному решению. Одним из способов модифицировать поступающие данные - использовать формулы.

Формулы задаются для каждого импортируемого поля индивидуально. Для этого в наборе опций полей присутствует поле "Формула".

formula_prefix.jpg

Данное поле выполняет команды в формате языка PHP. Входное значение в формуле подставляется вместо сочетания X1. Таким образом, вам нужно во формате PHP задать обработку Х1. Покажем, как это делается, на конкретных примерах.

В приведённом выше с помощью формулы задан префикс. Например, это может быть полезно для XML_ID или заголовка товара. В результате, если на входе будет значение "12345", то в инфоблок запишется значение "prefix_12345". Важно отметить, что текстовые значения необходимо обрамлять в одинарные кавычки.

В следующем примере мы модифицируем формат активности товара на формат, принятый в инфоблоках. Во входном файле статус товара помечается как true/false, а в инфоблок нам нужно сохранять Y/N. 

formula_modif.jpg

Как видите, в формуле проверяется входное значение Х1. Если значение true, то в инфоблок сохраняем Y. В противном случае - N.

И приведём пример преобразования входного значения с помощью коэффициентов. В формуле ниже видно, что входное значение Х1 умножается на коэффициент 0,5. Подобным образом можно организовать, например, динамическую наценку, умножая Х1 на значение больше единицы.

formula_coef.jpg


Еще пример:
преобразовать вес из килограммов в граммы можно следующей формулой, в файле: 0,04 кг, нам нужно в граммах, тогда формула, сперва заменяем запятую на точку, а затем переводим в граммы:

(float)str_replace(',', '.', "X1") * 1000


Дополнительно:
Обратите также внимание на еще один способ изменить данные перед их обработкой - это использовать событие OnBeforeProcessRowInSaveIBData и менять данные в массиве $arInputRow.



Назад в раздел



Часто задаваемые вопросы по модулям экспорта

Видео плейлист по настройке модулей экспорта