Импорт из XML и YML

Укажите адрес сайта

Установить

Лицензирование
У всех модулей на Маркетплейс единая логика лицензирования.
Модуль приобретается один раз и им можно пользоваться без каких-либо ограничений по времени. Но период обновлений и техподдержки модуля составляет 1 год. Т.е., если потребуется обновить модуль через год после покупки, то необходимо будет приобрести продление модуля. Стоимость продления модуля на 1 год всегда равна 50% от текущей стоимости модуля.

Покупка
После оформления заказа и поступления оплаты автоматически будет выслан купон для активации на email, указанный в заказе. Также информация о купоне будет отображена на странице "Мои заказы".

Активация модуля
Полученный после оплаты купон нужно активировать в административной части сайта на странице "Marketplace" -> "Обновление решений" -> "Активация купона". После активации также может потребоваться регистрация решения. В этом случае на странице "Marketplace" -> "Обновление решений" -> "Установка обновлений" появится кнопка для регистрации.

Импорт из XML и YML

Покупка и лицензирование Купить 5 000 руб. Продлить 2 500 руб.
Попробовать (14 дней)

На данный момент предусмотрено только одно событие esol.importxml:OnEndImport. Данное событие выполняется после окончания импорта. В качестве параметров в него передаётся ID профиля импорта и массив с результатами импорта.
Обратите внимание, что при ручном запуске импорта обработчики на событие OnEndImport не должны выполняться слишком долго. Иначе можно столкнуться с ограничением на максимальное время выполнения php-скрипта и импорт будет завершаться с ошибкой. При запуске импорта по крону подобных ограничений нет.
Модуль все операции создания/изменения элементов инфоблока производит через стандартные API-методы Битрикса. Поэтому все стандартные обработчики событий выполняются. Но есть некоторые нюансы.
1) Модуль обновляет только те поля элементов, которые нужно изменить (т.е., значения которых в файле импорта отличаются от значений на сайте). Поэтому и в обработчики событий попадают только изменяемые поля. Если нужно передавать в обработчики все поля, которые загружаются из файла, то можно включить в настройках профиля импорта на 1-м шаге галочку "Принудительно обновлять все загружаемые поля".
2) Свойства элементов инфоблока модуль записывает с помощью API-метода CIBlockElement::SetPropertyValuesEx. Поэтому для отслеживания изменений свойств необходимо использовать обработчики событий OnIBlockElementSetPropertyValuesEx и OnAfterIBlockElementSetPropertyValuesEx.
В данном случае необходимо включить на сервере расширение XMLReader для php.
Если сайт работает на виртуальной машине Битрикса, то для включения данного расширения нужно зайти на сервер через ssh, переименовать файл /etc/php.d/30-xmlreader.ini.disabled в файл /etc/php.d/30-xmlreader.ini и перезапустить apache.
Выбор и загрузка файла импорта
Для загрузка файл с ftp-сервера достаточно задать в профиле ссылку на файл в таком виде:
ftp://логин:пароль@site.ru/folder/file.xlsx
Т.е., логин и пароль указываются в самой ссылке на файл.
Можно передать модулю ссылку такого вида:
https://disk.yandex.ru/d/DalOWMNP8OOebw#*.xlsx
Здесь после символа "#" указывается название файла по маске. В маске допустимы следующие символы:
1) * - любая последовательность символов
2) ? - один любой символ
3) {csv,xls,xlsx} - в фигурных скобах через запятую можно указать несколько разных вариантов написания какой-то части названия файла.
Привязка товаров к разделам
Для этого достаточно включить на 1-м шаге опцию "Загружать привязку к разделам только для новых элементов", а на 2-м шаге указать раздел для импорта. Выбранный на 2-м шаге раздел будет применяться только для новых товаров.
Запуск импорта по крону
Необходимо на странице настроек модуля включить галочку "Не загружать повторно один и тот же файл" и настроить запуск импорта в кроне с каким-то небольшим интервалом (например каждые 10-15 минут).
При каждом запуске модуль будет проверять файл импорта на изменение. Если файл не изменен, то на этом выполнение скрипта в кроне завершится. Если же файл изменен, то запустится импорт.
Одновременный запуск 2-х процессов импорта одного профиля в этом случае исключен, даже если файл слишком часто меняется. Пока один процесс импорт не завершится, второй процесс не будет запущен.
Нет, перенастройка крона не требуется. В крон-команде указывается ID выполняемого профиля. По этому ID при каждом запуске крона модуль автоматически подтягивает актуальные настройки профиля.
Загрузка отдельных видов полей
Для передачи булевых полей используйте следующие значения:
1) "1", "да", "yes", "y" - истина
2) "0", "нет", "not", "n" - ложь
Регистр не имеет значения.

Для загрузки свойств инфоблока, которые отображаются в виде галочки, нужно смотреть настройки этого свойства. Чаще всего в виде галочки отображается свойство типа "Список". В настройках списка можно посмотреть, какое значение должно иметь свойство при включенной галочке. Для отключения галочки в таком свойстве нужно загрузить пустое значение.