Модуль импорта файлов формата YML в Битрикс - большое обновление
11 декабря 2014
Автор: Бедросова Юлия
Модулю импорта из YML в Битрикс - почти год. В течение года мы выкатывали в маркетплейс исправления мелких багов, но практически не расширяли функционал модуля, хотя дописали к модулю очень много фич по индивидуальным заказам клиентов.
Переделать модуль полностью, серьезно расширить функционал - хотелось, но сдерживал страх поддержки старой версии, посредством которой у многих клиентов модуля регулярно в автоматическом режиме происходит обновление каталогов товаров от поставщиков.
После долгих раздумий и ведра выплаканных слез, мы придумали, как сделать, чтобы новая версия не зависела от старой и не ломала импорт старым клиентам. У модуля теперь 2 независимых ветки: 5.0 и 6.0 Они загружаются в одном модуле, работают на разных классах, создают в системе 2 разных, не мешающих друг другу и независимых типов импорта. IMPORT_YML и IMPORT_YML_6_0. Второй вид YML импорта загружается в текущем глобальном обновлении, никак не затрагивая работу уже существующих настроенных импортов.
Если старый клиент захочет перейти на новую версию импорта, ему нужно будет заново сделать настройки профилей импорта для его нового типа. Пока этого не сделано, у старых клиентов импорт будет работать по-старому. А новые клиенты смогут сразу настраивать YML импорт на версии 6.0
Чего нового в версии 6.0 ?
1 Самые глобальные изменения коснулись настроек импорта свойств. Раньше все свойства из YML файла записывались в одно множественное свойство, а для конкретных клиентов мы разбрасывали свойства, куда нужно, посредством кастомизации событий записи и апдейта элемента инфоблока. Это было неудобно.
В новой версии на этапе настройки импорта загружаемый файл анализируется и пользователю предлагается распределить какое поле из файла пойдет в какое свойство инфоблока. Доступен так же и вариант создания нового поля - либо строкового, либо списочного типа.
2 Еще одно важное изменение касается внешних кодов загружаемых товаров и разделов. В старой версии модуля товарам и разделам в качестве внешнего кода проставлялся идентификатор соответствующего товара или раздела из файла. Но оказалось, что у многих клиентов в системе существуют параллельно несколько видов импорта, а цифровые идентификаторы из файлов могут быть неуникальны. Поэтому мы добавили к внешним кодам префикс. В одном из ближайших обновлений мы сделаем возможным задавать этот префикс отдельно для каждого профиля импорта.
Кроме этого произошел ряд архитектурных изменений модуля, который в дальнейшем упростит для нас его поддержку и выпуск регулярных обновлений.
В ближайших планах - обкатать и отладить версию 6.0, которая сейчас доступна для скачивания как бета-обновление - мы подарим ее нескольким первым клиентам. В дальнейших планах - добавить импорту возможность загружать несколько видов цен и склеивать товары разных цветов и размеров в один товар с торговыми предложениями.
Переделать модуль полностью, серьезно расширить функционал - хотелось, но сдерживал страх поддержки старой версии, посредством которой у многих клиентов модуля регулярно в автоматическом режиме происходит обновление каталогов товаров от поставщиков.
После долгих раздумий и ведра выплаканных слез, мы придумали, как сделать, чтобы новая версия не зависела от старой и не ломала импорт старым клиентам. У модуля теперь 2 независимых ветки: 5.0 и 6.0 Они загружаются в одном модуле, работают на разных классах, создают в системе 2 разных, не мешающих друг другу и независимых типов импорта. IMPORT_YML и IMPORT_YML_6_0. Второй вид YML импорта загружается в текущем глобальном обновлении, никак не затрагивая работу уже существующих настроенных импортов.
Если старый клиент захочет перейти на новую версию импорта, ему нужно будет заново сделать настройки профилей импорта для его нового типа. Пока этого не сделано, у старых клиентов импорт будет работать по-старому. А новые клиенты смогут сразу настраивать YML импорт на версии 6.0
Чего нового в версии 6.0 ?
1 Самые глобальные изменения коснулись настроек импорта свойств. Раньше все свойства из YML файла записывались в одно множественное свойство, а для конкретных клиентов мы разбрасывали свойства, куда нужно, посредством кастомизации событий записи и апдейта элемента инфоблока. Это было неудобно.
2 Еще одно важное изменение касается внешних кодов загружаемых товаров и разделов. В старой версии модуля товарам и разделам в качестве внешнего кода проставлялся идентификатор соответствующего товара или раздела из файла. Но оказалось, что у многих клиентов в системе существуют параллельно несколько видов импорта, а цифровые идентификаторы из файлов могут быть неуникальны. Поэтому мы добавили к внешним кодам префикс. В одном из ближайших обновлений мы сделаем возможным задавать этот префикс отдельно для каждого профиля импорта.
В ближайших планах - обкатать и отладить версию 6.0, которая сейчас доступна для скачивания как бета-обновление - мы подарим ее нескольким первым клиентам. В дальнейших планах - добавить импорту возможность загружать несколько видов цен и склеивать товары разных цветов и размеров в один товар с торговыми предложениями.
Предлагаем еще прочесть