API реализующий функционал импорта данных из любого формата (CML, XML, CSV, TXT) в Drupal.
Состоит из управляющего модуля importkit и дочерних модулей, реализующих функционал хранения и удаления данных.
Модуль построен на патерне Observer с применением фабрики классов. Основной принцип взаимодействия с импортируемым контентом возложен на ридеры.
Для XML разбора используется самый быстрый движок на данный момент XMLReader. (Но вы можете легко написать и свой)
Данный модуль позволит в короткие сроки сделать импорт из любого формата в выбранный материал Drupal. Легко свяжет 1С + Ubercart и 1С + Commerce, или просто позволит выгрузить любой сложности каталог с наименованиями и подробным описанием. Легко позволит заполнить CCK поля абсолютно любыми данными.
http://cmlservice.com/modules/importkit
В модуле были учтены все достоинства и недостатки модуля Importer и является достойным его продолжением.
Внимание!!! модуль Importer больше не развивается.
Комплект поставки
CommerceML2
- cml_store_content - Позволяет импортировать данные из 1С (CommerceML2)
- cml_store_category - Позволяет строить категории из 1С (CommerceML2)
- cml_store_price - Позволяет импортировать ценовые предложения из 1С (CommerceML2)
- cml_store_stock - Позволяет импортировать остатки товаров из 1С (CommerceML2)
- cml_store_order - Позволяет создавать заказы и отправлять их в 1С (CommerceML2)
Возможности модуля
- Импорт товарных позиций с описанием
- Импорт изображений
- Импорт полного списка категорий
- Импорт цен
- Импорт остатков
- Импорт атрибутов (в разработке)
- Импорт полей (в разработке)
- Создание и экспорт ордеров (заказов) в 1С
Принцип работы
- Observer -> Служит для информирования Listner о возникших событиях (ImportkitObservable)
- Listner -> Основной класс для распределения задач (ImportkitListnerContent)
- Reader -> Класс читающий документ импорта (ImportkitParserCML)
- Store -> Модуль хранилища и взаимодействия с Drupal (cml_store_content)
Предложения или Сообщения об ошибках: Ссылка
Песочница на Drupal.org Ссылка (Поддержите модуль)
Скачать: Скачать
Вложение | Размер |
---|---|
2013-06-30_00.39.37_osj4gvq6h5.png | 14.39 КБ |
2013-06-30_00.41.44_agpv5fm3c5.png | 14.75 КБ |
2013-06-30_00.42.51_rxdqzdt9pi.png | 19.41 КБ |
Комментарии
Весь список модулей: http://cmlservice.com/drupal-modules
день добрый, 1 вопрос
"
Импорт атрибутов (в разработке)
Импорт полей (в разработке)
"
особенности(фичи, features) можно обновить модулем importkit? Т.к. при импорте требуется указывать минимальное и максимальное кол-во товара при заказа через модуль который реализует свой функционал как раз через "особенности".
Данный функционал сделан в Drupal 6 Importkit и хорошо работает, для начала портирую его на Drupal 7, а уже потом отлажу и перенесу на Importkit.
Не совсем пойму какое отношение экспорт/импорт имеет к фичам(особенностям). Если только для хранения конфигурации.
Если Вы имели ввиду что-то другое, пожалуйста опишите свою просьбу подробнее.
Магазина на U3 принадлежит оптовику, потому в файле импорта есть колонка "минимальное кол-во для заказа". В U3 есть модуль uc_product_minmax, работает нормально т.е. если указать ограничения они действуют, но указывать их надо через "особенности". Соответственно задавать эти "особенности" необходимо при импорте товарных позиций. В целом нет ничего сложного спец импорт сделать, но вроде какая необходимость если importkit это поддерживает
Ок гляну как лучше реализовать такую взаимосвязь
пока да
это легко сделать, все добавления полей вынесены в отдельные функции
Написано что может черпать данные из csv, а как этот csv должен выглядеть? можно на примере Commerce Kikstart 1 показать?
Основной упор делается на XML, а точнее CommerceML2 формат 1С. Но сделать вообще не проблема в CSV.
Mirocow, а поподробнее можно?
если нада, добавлю
Также начата работа по поддержки протокола HTTP
Mirocow, дак как насчет того чтобы модуль брал данные из csv?
Дописать не проблема, но вот хранить деревья и структуризированные данные лучше в JSON или XML
Какой работать с модулем в коммерце? там же два типа материала..
что указывать в типе?
Product Dicplay
или
Product rewiev?
там настройки есть, выставите тот что нужен
Что делать?
Устанавливаю модуль, включаю, грузятся пустые страницы (белые) по всему сайту.
Подскажите, пожалуйста
Drupal 7.23
После включения модуля
502 Bad Gateway
Модуль работает только на версиях начиная от PHP 5.35
возможно у Вас та же ошибка
но лучше стучите в скайп разберем проблемы
И да скоро выйдет довольно серьезные обновления для модуля Commerce и Ubercart (Drupal 7)
Часть обновлений уже находится в репозитории
Для Commerce реализованы атрибуты (могут поставляться в виде "ЗначенияСвойств" или "ХарактеристикиТовара")
UPDATE
Разобрался. Они выгружаются только в таксономию. Но вот допустим у меня свойство номенклатуры в 1-с "Внутренний код", а оно уникально. Значит будет столько же терминов таксономии? Может такие свойства лучше выгружать в друпал как поля? Как такое реализовать никто не сталкивался?
Добавлена работа в автоматическом режиме и работа через консоль
Process ImportkitListnerContent->parse() starting...
Завершено
Process ImportkitListnerOffers->parse() starting...
Завершено
Process ImportkitListnerPrice->update() starting...
Завершено
Process ImportkitListnerStock->import() starting...
Завершено
Process ImportkitListnerContent->batch() starting...
Processed chunks 20/71800
Time passed: 5.15 sek.
Process ImportkitListnerContent->batch() starting...
Processed chunks 40/71800
Time passed: 7.38 sek.
Process ImportkitListnerContent->batch() starting...
Processed chunks 60/71800
Time passed: 4.71 sek.
Process ImportkitListnerContent->batch() starting...
Processed chunks 80/71800
Time passed: 5.26 sek.
...
Process ImportkitListnerContent->batch() starting...
Processed chunks 900/71800
Добавлен информативный вывод о процессе импорта
Добавлено API к каждому этапу обработки xml документа
На данный момент времени API выглядит так
function importkit_api_importkit_node($op, $node, $element){
switch($op){
case 'create':
// Do something
// $node->test = 1;
break;
case 'update':
// Do something
// $node->test = 1;
break;
}
}
function importkit_api_importkit_product($op, $product, $element){
switch($op){
case 'create':
// Do something
// $product->test = 1;
break;
case 'update':
// Do something
// $product->test = 1;
break;
}
}
Так же добавлен расширенный набор команд для drush
Наконец-то прикрутил кнопочку сбора пожертвований. Если кто хочет внести свой вклад в развитие модуля, милости прошу.
http://cmlservice.com/modules/importkit
Кто нибудь использует модуль в Drupal7+Ubercart3? Интересует ежедневное обновление остатков, цен и пр. Если да, то какую версию используете?
Последнее время обновления сыпались с завидной регулярностью, и я видимо поспешил обновляться )
Суть в том, что, в последних версиях перестали загружаться/обновляться цены и картинки. Вылезает ошибка "the cache guid: # is empty in the "cml_store_stock"" и после этого батч процес прерывается.
Откатился на версию https://bitbucket.org/mirocow/importkit/commits/af22c4b9a8741aeb57766427.... В этой версии все загружается, но при обновлении остатков, если товара уже нет в файле "offers.xml" то и его остатки не обновляются на сайте. Возможно так и должно быть!? Я раньше на это внимание как-то не обращал.
По первому вопросу автор говорит что у него все работает. Возможно я что-то упускаю... Отпишитесь кто использует последнюю версию https://bitbucket.org/mirocow/importkit/commits/f0bee046671c9084fe1787e8...
Писал писал. в итоге глючность d.ru все запорола
в кратце. минус модуля — отсутствие документации. тяжеловато с ходу
попробовал демо данные:
цены почему то разделились на 100. см скрин. откуда берется Product SKU? генерируется сам? как его задать?
Цены не делятся на 100 а множатся на установленный множитель в админке. Дело в том что 1С может выгружать как в копейках так и в рублях. Или в местной валюте. Именно по этому был введен множитель. "The rate of the retail price"
Или из поставляемых данных 1С (Артикул) или генерится
Постучите в skype, попробую разобраться и помочь
Теперь все понятно
Но вот у меня проблема, сляпал на базе ваших демо данных два своих коротких import.xml и offers.xml, все импортируется, но вариации не цепляются к продуктам.
Вместо этого, создается еще одна вариация из непонятно каких данных с артикулом взятым из import.xml и она цепляется в продукту
Подскажите, в какую сторону копать?
Вот мои файлики
import.xml
<КоммерческаяИнформация ВерсияСхемы="2.04" ДатаФормирования="2012-03-04T7:20:33">
<Каталог СодержитТолькоИзменения="false">
<Товары>
<Товар>
<Ид>dee6e1d0-55bc-11d9-848a-00112f43529a</Ид>
<Артикул>К-120003</Артикул>
<Наименование>Кроссовки "ADIDAS"</Наименование>
<БазоваяЕдиница Код="715" НаименованиеПолное="Пара (2 шт.)" МеждународноеСокращение="NPR">пара</БазоваяЕдиница>
<ПолноеНаименование>Кроссовки "ADIDAS"</ПолноеНаименование>
<Группы>
<Ид>dee6e1cf-55bc-11d9-848a-00112f43529a</Ид>
</Группы>
<ЗначенияСвойств>
<ЗначенияСвойства>
<Ид>14ed8b20-55bd-11d9-848a-00112f43529a</Ид>
<Значение>Обувной комбинат</Значение>
</ЗначенияСвойства>
</ЗначенияСвойств>
<СтавкиНалогов>
<СтавкаНалога>
<Наименование>НДС</Наименование>
<Ставка>18</Ставка>
</СтавкаНалога>
</СтавкиНалогов>
<ЗначенияРеквизитов>
<ЗначениеРеквизита>
<Наименование>ВидНоменклатуры</Наименование>
<Значение>Обувь</Значение>
</ЗначениеРеквизита>
<ЗначениеРеквизита>
<Наименование>ТипНоменклатуры</Наименование>
<Значение>Товар</Значение>
</ЗначениеРеквизита>
<ЗначениеРеквизита>
<Наименование>Полное наименование</Наименование>
<Значение>Кроссовки "ADIDAS"</Значение>
</ЗначениеРеквизита>
<ЗначениеРеквизита>
<Наименование>Упаковка</Наименование>
<Значение>пара (1 пара)</Значение>
</ЗначениеРеквизита>
<ЗначениеРеквизита>
<Наименование>ЕдиницаИзмеренияУпаковки</Наименование>
<Значение>пара</Значение>
</ЗначениеРеквизита>
<ЗначениеРеквизита>
<Наименование>КоэффициентУпаковки</Наименование>
<Значение>1</Значение>
</ЗначениеРеквизита>
<ЗначениеРеквизита>
<Наименование>Вес</Наименование>
<Значение>0.9</Значение>
</ЗначениеРеквизита>
</ЗначенияРеквизитов>
</Товар>
</Товары>
</Каталог>
</КоммерческаяИнформация>
offers.xml
<КоммерческаяИнформация ВерсияСхемы="2.04" ДатаФормирования="2012-03-04T7:20:33">
<ПакетПредложений СодержитТолькоИзменения="false">
<Предложения>
<Предложение>
<Ид>dee6e1d0-55bc-11d9-848a-00112f43529a#3df1947d-7886-11df-b33a-0011955cba6b</Ид>
<Артикул>К-120003-43-bezh</Артикул>
<Наименование>Кроссовки "ADIDAS" (Размер: 43, Цвет: Бежевый)</Наименование>
<ХарактеристикиТовара>
<ХарактеристикаТовара>
<Наименование>Размер</Наименование>
<Значение>43</Значение>
</ХарактеристикаТовара>
<ХарактеристикаТовара>
<Наименование>Цвет</Наименование>
<Значение>Бежевый</Значение>
</ХарактеристикаТовара>
</ХарактеристикиТовара>
<Цены>
<Цена>
<Представление>2 000 RUB за шт</Представление>
<ИдТипаЦены>2d83d2dc-65b0-11e1-8628-08002721c469</ИдТипаЦены>
<ЦенаЗаЕдиницу>2000.00</ЦенаЗаЕдиницу>
<Валюта>RUB</Валюта>
<Единица>пара</Единица>
<Коэффициент>1</Коэффициент>
</Цена>
</Цены>
<Количество>99</Количество>
</Предложение>
<Предложение>
<Ид>dee6e1d0-55bc-11d9-848a-00112f43529a#3df1947e-7886-11df-b33a-0011955cba6b</Ид>
<Артикул>К-120003-43-black</Артикул>
<Наименование>Кроссовки "ADIDAS" (Размер: 43, Цвет: Черный)</Наименование>
<ХарактеристикиТовара>
<ХарактеристикаТовара>
<Наименование>Размер</Наименование>
<Значение>43</Значение>
</ХарактеристикаТовара>
<ХарактеристикаТовара>
<Наименование>Цвет</Наименование>
<Значение>Черный</Значение>
</ХарактеристикаТовара>
</ХарактеристикиТовара>
<Цены>
<Цена>
<Представление>2 100 RUB за шт</Представление>
<ИдТипаЦены>2d83d2dc-65b0-11e1-8628-08002721c469</ИдТипаЦены>
<ЦенаЗаЕдиницу>2000.00</ЦенаЗаЕдиницу>
<Валюта>RUB</Валюта>
<Единица>пара</Единица>
<Коэффициент>1</Коэффициент>
</Цена>
</Цены>
<Количество>23</Количество>
</Предложение>
</Предложения>
</ПакетПредложений>
</КоммерческаяИнформация>
Для начала хотелось бы знать какой у вас модуль
Как настроен итд
Как настроен сам Import Kit
Установлен Commerce Kick Start 7.x-2.9 и Import Kit 7.x-0.6-dev (последний с сайта)
настройки скриншотом тут http://img-fotki.yandex.ru/get/9092/9638899.148/0_ba863_59fbf482_orig
Как я понял, проблема в неверно заполненных настройках. Как будет время обязательно напишу мануал на эту тему.
было бы не плохо, потому что без этого нет возможности тестировать вариации товара создаются верно, но не привязываются к товару
В крайнем релизе автор уже поправил этот момент, вариации уже привязываются, проверено на Commerce.
поставил крайний релиз. действительно привязывается.
но вижу кое-какие шероховатости остались. у меня например создалось одно лишнее предложение, взятое из import.xml, которого вообще не должно быть
буду тестировать дальше
возможно надо было сделать предварительную очистку, и потом заново импорт
Всем привет!
Есть сайт интимного белья, в связке —джумла + шкафоподобный virtuemart с авто синхронизацией каталога поставщика, формирует весь контент файл (http://www.site.ru/catalog.htm) с сервера поставщика. Возможно ли реализовать подобное в связке Drupal + Ubercart + модуль импорта?
С корня нашего сайта cron периодически запускает файл, и дальше видимо происходит парсинг /.../htdocs/import/index.php
<?php<?
$catalog_page_sourse=file_get_contents("http://site.ru/catalog.htm");
//echo $catalog_page_sourse;
//phpinfo();
?>
возможно
Добрый день! Подскажите пожалуйста почему могут не грузиться картинки на сайт, сам товар с описанием и т.д грузит, кроме картинок.
Drupal 7 uc3
картинки лежат по такому пути sites/1c/import_files/d1/d1b31199521b11e1a7aed43a968f9ecd_e1c34cdb89744eac9ffdc52c37f692e6.png
пример товара из import.xml:
<Ид>d1b31199-521b-11e1-a7ae-d43a968f9ecd</Ид>
<Штрихкод>4607039962765</Штрихкод>
<Артикул>10103</Артикул>
<Наименование>ВС Серия Сомелье/Шампунь профилактический, фл. 250мл</Наименование>
<БазоваяЕдиница Код="796">шт</БазоваяЕдиница>
<Группы>
<Ид>d1b31197-521b-11e1-a7ae-d43a968f9ecd</Ид>
</Группы>
<Описание>Устранение перхоти, себореи и раздражений кожи головы.
</Описание>
<Картинка>import_files/d1/d1b31199521b11e1a7aed43a968f9ecd_f4a5c1f162104ca6aff03b42a88e382b.png</Картинка>
<Картинка>import_files/d1/d1b31199521b11e1a7aed43a968f9ecd_e1c34cdb89744eac9ffdc52c37f692e6.png</Картинка>
<Изготовитель>
<Ид>a0d8b52c-d3fd-11e2-8c5d-0025224ace0c</Ид>
<Наименование>ООО НПК "Тринити М" г.Новосибирск</Наименование>
<ОфициальноеНаименование>ООО НПК "Тринити М" г.Новосибирск</ОфициальноеНаименование>
</Изготовитель>
<СтавкиНалогов>
<СтавкаНалога>
<Наименование>НДС</Наименование>
<Ставка>Без налога</Ставка>
</СтавкаНалога>
</СтавкиНалогов>
<ЗначенияРеквизитов>
<ЗначениеРеквизита>
<Наименование>ОписаниеФайла</Наименование>
<Значение>import_files/d1/d1b31199521b11e1a7aed43a968f9ecd_f4a5c1f162104ca6aff03b42a88e382b.png#Устранение перхоти,
</Значение>
</ЗначениеРеквизита>
<ЗначениеРеквизита>
<Наименование>ОписаниеФайла</Наименование>
<Значение>import_files/d1/d1b31199521b11e1a7aed43a968f9ecd_e1c34cdb89744eac9ffdc52c37f692e6.png#ВС шампунь профилактический</Значение>
</ЗначениеРеквизита>
<ЗначениеРеквизита>
<Наименование>ВидНоменклатуры</Наименование>
<Значение>Товар</Значение>
</ЗначениеРеквизита>
<ЗначениеРеквизита>
<Наименование>ТипНоменклатуры</Наименование>
<Значение>Товар</Значение>
</ЗначениеРеквизита>
<ЗначениеРеквизита>
<Наименование>Код</Наименование>
<Значение>УТ-00000282</Значение>
</ЗначениеРеквизита>
<ЗначениеРеквизита>
<Наименование>Полное наименование</Наименование>
<Значение>ВС Серия Сомелье/Шампунь профилактический, фл. 250мл</Значение>
</ЗначениеРеквизита>
</ЗначенияРеквизитов>
</Товар>
настройки прикрепил.
Готов заплатить за помощь!
Этот модуль готовое решение для интеграции с 1с или он лишь реализует API для написания своего модуля?
Это готовое решение
Возможности CommerceML2
То есть я могу импортировать атрибуты товаров под которые предварительно не были созданы поля?
если в imports.xml есть товары, которые отсутствуют в offers.xml, то происходит импорт, а в качестве цены записывается нолик в product entity. к тому же не привязывается к ноде, но нода при этом создается. это нормально?
также хотелось бы спросить, как ведет себя модуль, если с был произведен импорт, прошло какое-то врямя, в импорт файле произошли изменения
- исчез один из товаров - что произойдет?
- добавился новый товар - что произойдет?
Не получается импортировать описание товара. Никак не пойму как правильно настроить.
Исправления
1) Возвращена случайно удаленная функция создания и привязки фото (Ubercart 3)
2) Реализована загрузка св-в типа "Справочник"
3) Добавлены описания к пунктам запуска
4) Пофикшены баги
5) И куча другого функционала
Подробности можно прочитать в комитах
https://bitbucket.org/mirocow/importkit/commits/all
Иструкция по настройке обмена УТ 11 CmlService.com
http://cmlservice.com/instructions/1c.8.1-8.3
Начата разработка поддержка протокола http://v8.1c.ru/edi/edi_stnd/131/
Проблемаы этого решения:
1) Высокая нагрузка на сервер (немного минимализируется при использовании сжатых файлов)
2) Нагрузка на сервер протольными запросами
3) Ограничение при передачи картинок
4) Не стабильная работа и полностью зависший 1С
Mirocow, пожертвования прикрутите не только в Яденьгах, например и в вебманях. Хотел кинуть деньжат на полезный модуль, но яндексовскими монетами не пользуюсь.
Добавил в шапке
Спасибо
Подскажи если решил эту проблему?
К сожалению нет. С тех пор больше не пробовал. Хорошо бы авторы модуля сделали документацию по этому вопросу…
А кто-нибудь сталкивался с проблемой показа на сайте товара, исключенного из выгрузки?
Другими словами: сегодня в выгрузке есть товар, он на сайте показывается, все верно. А завтра - он закончился, мы его убираем, но на сайте он остается да еще и с нулевой ценой, а нужно чтобы отключался - не выводился на сайт.
Если у кого-то есть решение, готовы посотрудничать.
Всех приветствую
Нужен ли подобный модуль для Drupal 8?
День добрый.
конечно, нужен.
Здравствуйте, нигде не могу найти дискуссию по работе 3х модулей CML Exchange, CML Migrate и CML Api для Друпал 8.
Пришлось додумывать самому. Обратился к разработчикам модуля за помощью, но ценник слишком большой.
Решил сам. Для тестирования интеграции с 1с закинул файлы import.xml, offers.xml, и папку import_files в одну директорию sites/default/files/cml
Создал cml entity и прикрепил к нему оба файл xml.
Запустил миграцию cml и вижу что продукты и термины таксономии загрузились, а вот картинки никак.
Создал все необходимые поля по очень скудной инструкции в ютюбе. Но все еще не могу никак включить картинки. Им мешает какая-то мелочь. Но никак не могу понять какая.
Уважаемый Mirocow. Знаю вы работаете над этим модулем. Прошу помогите разобраться с вашим детищем.
Добрый день, не могли бы вы разъяснить какой должен быть вид у информации в файле импорта, чтобы занести её в FIELDS, а не свойства. Видел подобные вопросы, но они оставались без ответа, быть может мне повезет )
p.s. описание товара импортируется даже без указания ID, это баг или фича?