Одно из самых интересных и полезных нововведений в версии UMI.CMS 2.8 - это новый модуль "Обмен данными".
Сегодня я расскажу о том, какие возможности предоставляет этот модуль и какие задачи позволяет решить.
В версии 2.7 импорт и экспорт данных были частью модуля "Интернет магазин", при проектировании 2.8 мы решили расширить этот функционал и вынести его в отдельный модуль. Модуль входит в редакцию Pro Commerce, но его можно купить отдельно для любой редакции семейства "pro".
Новый внутренний формат umiDump 2.0
Изучая список пожеланий наших партнеров, мы полностью переработали механизм обмена данными, начиная с разработки нового внутреннего формата umiDump 2.0.
Новый внутренний формат поддерживает импорт и экспорт не только страниц, но и объектов и типов данных.
Через интерфейс модуля "Обмен данными" и через API можно импортировать все виды сущностей UMI.CMS: страницы, типы, объекты. Это позволяет более плотно интегрировать любые сервисы с UMI.CMS, а так же позволит разработчикам собственных модулей создавать любые структуры данных (типы, справочники, страницы) при инсталляции модуля.
Также, это открывает возможность написания собственных расширенных конфигураций UMI.CMS, которые легко устанавливаются через модуль "Обмен данными" или с помощью инсталлятора, запускающего импорт данных через API.
При экспорте разделов сайта в umiDump 2.0, система автоматически соберет структуру типов данных, которые используются для экпортируемых страниц. Экспортировать определенные типы и объекты на данный момент можно только через API. Мы разрабатываем интерфейсы для модуля "Обмен данными", которые позволят это сделать прямо из модуля, в ближайших обновлениях они будут доступны.
Импорт больших объемов данных
Одной из основной задач, которую мы решили, была возможность успешно импортировать очень большие объемы данных разных форматов на виртуальном хостинге. Новый модуль может успешно импортировать xml-файлы формата umiDump 2.0 и CommerceML 2.0 практически неограниченного размера.
Подсистема импорта умеет грамотно разбивать большие xml-файлы этих форматов на логически завершенные куски, а затем импортировать их в несколько этапов, значительно снижая требовательность к ресурсам.
Обмен данными в стандартной поставке позволяет:
- импортировать/экспортировать каталоги товаров формате CommerceML 2.0
- импортировать/экспортировать прайс-листы в формате CommerceML 2.0
- экспортировать заказы в формате CommerceML 2.0
- импортировать/экспортировать любые сущности в формате umiDump 2.0
- экспортировать список предложений в формате yandexML (для интеграции интернет - магазина с Яндекс.Маркет)
Более подробно о форматах можно прочитать в обновленной документации.
Возможность кастомизации импорта существующих форматов, а так же подключение собственных
Основное преимущество разработанного механизма импорта-экспорта - это гибкость. Система работает лишь с внутренним форматом, остальные форматы легко преобразуются в него или из него, благодаря xslt-преобразованиям.
Такая гибкость позволяет разработчику без особого труда сделать поддержку собственного формата. Для этого, в большинстве случаев, достаточно лишь написать свои xsl-шаблоны для преобразования данных в umiDump 2.0 и зарегистрировать свой формат в системе.
Для изменения логики преобразования любого из существующих форматов в umiDump 2.0, предусмотрена возможность расширения xsl-шаблонов. Для этого в папках /xsl/import/custom и /xsl/export/custom есть специальные кастомные шаблоны для каждого из поддерживаемых форматов.
Достаточно переопределить лишь некоторые xsl-шаблоны, чтобы изменить логику формирования внутреннего формата под конкретный проект. Так же, в 2.8.1 появятся события (umiEventPoint) на импорт всех сущностей, что позволит еще более гибко расширять импорт под определенные задачи.
Автоматическая интеграция с 1С: Управление торговлей 8
Модуль "Обмен данными" имеет надстройку, которая позволяет обмениваться данными с 1С в автоматическом режиме.
Для стандартной процедуры обмена данными с 1С никаких настроек UMI.CMS со стороны разработчика не требуются. Необходимо лишь настроить обмен данными с сайтом в 1С.
Надстройка позволяет управлять интернет магазином прямо из 1С, не заходя на сайт вообще, а именно:
- выгружать каталоги товаров на сайт
- обновлять свойства товаров из 1С
- обновлять цены и наличие на складах
- обрабатывать заказы в 1С
После выгрузки товаров из 1С можно полностью изменить структуру полученного каталога, используя модуль "Структура" в UMI.CMS. Это позволяет не привязываться к структуре 1C-номенклатуры, которая, в большинстве случаев, для интернет-магазина не применима. Измененная структура не пострадает при последующих обновлениях из 1С, но товары и категории в ней корректно обновятся или создадутся.
Через интерфейс модуля "Обмен данных" можно вручную экспортировать каталог и прайс-лист и загрузить его в 1С. Эту возможность удобно использовать, когда товары есть на сайте, а в 1С их еще нет. Так же, можно в любой момент предоставлять номенклатуру вашей продукции или прайс-лист партнерам или сторонним сервисам.
Вот, вкратце, основные возможности нового модуля. Если есть желание узнать о чем-то подробнее - буду рад ответить в комментариях.
Комментирование доступно только авторизованным пользователям.
Пожалуйста, зарегистрируйтесь или войдите на сайт.
Зачем его выносить то? Еще и Шаблоны данных вынести в отдельный платный модуль осталось...
2. Посмотрите в варианте установке "Охотниц" - там есть и tpl и xslt-версии
У меня есть несколько типов данных, дочерних к объекту каталога, у каждого их которых свой и различный набор полей. Вывести колонки в модуле каталог оказалось невозможно - они берутся только из базового типа. Просто тупо взять и мпортировать csv, созданные для прежнего eshop - естественно, завершилось неудачей. Возникли непонятные сущности вида {Object Object}
Пример csv из документации, мягко говоря, не вдохновляет: как минимум, он другой, не такой, какой был для eshop. Подумайте, что бедная секретарша теперь будет должна перелопатить около 400 файлов.
Во-вторых, непонятно как обновлять товары. Ну хорошо, загрузил я его так, без id. Как я укажу системе при следующем импорте, что это тот же самый товар? Только не надо предлагать выгрузить потом каталог ;)
К тому же, id, который раньше обязательно должен быть и быть уникальным - у нее используется внутри их системы учета товаров.
В общем, вопрос - как импортировать товары в каталог из csv?
В инструкциях вижу только настройку обмена с 1С:8. У клиента стоит 7-я версия, но он может выгрузить XML нужного формата, нужен образец.
import.xml - каталог
offers.xml - прайс-лист
Все более-менее понятно теперь, но еще один вопрос: дефолтная цена (exchange.translator.1c_price_type_id) где-то в админке устанавливается?
При попытке добавить новый подраздел, с указанием произвольного Ид, выдает ошибку разбора XML; с пустым Ид просто ничего не создает.
2. Можно пример CML, который вы пытаетесь загрузить? Пришлите, пожалуйста на почту в СЗ.
Это из-за того что CommerceML служит для импорта именно из 1С. В таком случае создается иерархия типов данных, аналогичных структуре групп в 1С - по другому не возможно решить массу проблем с уникальными свойствами товаров из 1С. В принципе, можно запроста изменить эту логику. Переопределить xsl-шаблоны формирования umiDump из CommerceML в /xsl/import/custom. Можно назначить всем товарам один тип данных. Но в таком случае, все свойства будут в одном типе.
Для обмена данными между umi.cms 2.8, необходимо использовать umiDump 2.0. Там все будет именно так, как вы хотите - логично и изящно )
Подскажите направление в котором копать, если это вообще возможно. А то новая версия вдохновляет, хочется с ней поработать.
Для 1С 7.x мы планируем разработать отдельное решение.
... усердно склоняют к Битрексу, а проект хочется делать на Юми...
а экспорт нормальный будет? или перенести каталог на другую цмс-ку не судьба без доп.затрат?
Наша компания использует Navision как основную ERP-систему. Около года назад мы пытались огранизовань автоматический файловый транспорт. Но в виду огромного количества объектов торговой системы транспорт стал "подвисать". На тот момент талица свойств объектов имела около 1 млн записей.
Решение в пользу SOAP протокола не заставило себя долго ждать.
Возможно, SOAP это новая ступень, если говорить о высокой (промышленной) интенсивности обмена данными. Прямой и обратный транспорт сейчас производится в полуавтоматическом режиме.
На данном этапе наш проект имеет около 850 тыс. объектов и 9 миллионов свойств объектов CMS.
сейчас как я понимаю Вы посчитали вообще все сущности и все их поля и получили 0.85 и 9 млн соответственно
Применые количество данных:
клиенты ~7,5т
адреса ~8т
товары ~13т
дисконтные карты ~200т
оформленные заказы ~13т
адреса доставок аналогично заказам
строки заказов ~25т
остальные объекты в меньшем количестве
Надо заметить, что у нас тариф аренды серверного оборудования средней ценовой категории. В день порядка 20т пользовательких хитов и около 3,5т технических запросов. Без оптимизации не обошлось, но это в пределах кастомизации БД под проект.
Мля, за полцены!!!!!!!!!!!!! И доделывать, работать на качество никто не спешит - себе в убыток.
Основное достоинство новой версии для юзера -это переход на jquery+tinyMCE (особенно плагины менеджеров картинок и файлов)...
Но не проще ли купить к бесплатной системе эти коммерческие модули к тинимсе - конечно проще....
Про этот модуль - он не подходит к 2.7 и никто не собирается адаптировать (ясно что никогда - чтобы продавать модуль+апгрейд, т.е. 6+9 =14 (почти отдельная лицензия).
А это не что иное как ЖЛОБСТВО в чистом виде, т.к. подобная функция - ДОЛЖНА была быть в базовой конфигурации К ЛЮБОМУ КАТАЛОГУ!!!!!!!
(Подобные модули есть во всех бесплатных системах)
Были бы в ЮМИ нормальные, хоть бы ОДИН путевый разработчик и адекватные цены на апдейты - мы бы сейчас не сидели на старых движках и не искали движки под новые проекты (хостцмс, друпал - варианты не лучше, но оказалось проще заказать дописать недостающий функционал).
Сложилось твердое мнение, что в Юми от версии к версии основной задачей является осложнение жизни клиентам, начиная от постоянной смены структуры папок до постоянноой переработки апгрейдо-инсталляционных- шифровальных блоков, что нужно не клиентам, а ЮМИ. На клиентов ресурсов не хватает.
По поводу разработчиков - вы заблуждаетесь, общался лично с некоторыми - очень толковые ребята, просто времени на все не хватает у них.
Сравнивать бесплатную CMS с платной - бесмысленно. Платные обновления - это не только обновление кода, но и поддержка, которая у юми работает отлично и которая получает за это зарплату.
Релизовать самому другой формат выгрузки данных весьма проблематично, на сколько я понимаю (проблема в сплиттере файла при импорте)
И это я только поверхностно начал знакомиться с системой, выбирая покупать или искать другую.
P.S. пару слов про капчу в "добавить комментарий". Ошибся с капчей (не переключил раскладку, скорее всего). Ни сообщения об ошибке, ни перелистывания к блоку "добавить комментарий" (он еще и свернут). Текст, конечно же, не сохранился.
неужели все-таки до сих пор нет ЭЛЕМЕНТАРНОЙ и НЕОБХОДИМОЙ функциональности ИМПОРТА/ЭКСПОРТА объектов каталога в/из *.csv файлов???
Подтвердите, уважаемые UMI-исты