AUGUST, 28-29
Kyiv, Ukraine

Интеграция Друпала со сторонними системами

Session Type: 
Brainstorm
Field: 
Code it, test it, deploy it
Level of expertise: 
Advanced
Speaker:

Sergei Stryukov (ss81)
Donetsk, Ukraine

Возникала в комментах идея поговорить о миграции "всего что прийдет в голову" в Друпал. Я же предлогаю обсудить не только миграцию, но и интеграцию.
На данный момент я занимаюсь интеграцией ADempiere (http://www.adempiere.com/index.php/ADempiere) и Друпала. Задача эта отличается от миграции только тем что данные бегают как в Друпал так и из Друпала.

Интересна ли вам эта тема? Чистое взаимодействие с ERP системами могу сделать в виду презентации, но это будет скучно и все равно перейдет в обсуждение :)

Жду ваших предложений/отзывов.

Добавлено:

Вынырнув из проекта, собрал себя в кучу и вот некоторые вопросы/тезисы, которые хотелось бы обсудить:
1. Миграция произвольной системы (далее "ПС") в Друпал. Сделал и забыл (но интеграция была так легка что хочется повторить -- это цель).
2. Односторонняя интеграция ПС в Друпал. Друпал получает информацию (обновляя ее регулярно), но ничего не возвращает, выступая лишь ветриной.
3. Двусторонняя интеграция. Друпал выступает как простой и удобный инструмент для реализации онлайн-магазина, но вся бизнес-логика реализуется в ПС.
4. Реализация обмена информацией (чистый импорт, обновление имеющихся товаров, удаление устаревших) между Друпалом и ПС при больших объемах информации (например, порядка 12К-15К товаров с произвольными аттрибутами для каждого товара -- при 20М принимаемых данных это уже проблема).

Задача, на примере которой хотелось бы показать примеры реализации и выслушать критику такова: магазин (ERP система выступает в роли базы) содержит товары, товары разбиты на категории (вложенность категорий произвольная). Каждый товар имеет аттрибуты: бутылка молока -- литраж, футболка -- цвет и размер, ще один продукт может иметь до 10 аттрибутов и более.

Следующий интересный момент - товары могут продаваться в разных вариациях (не подобрал лучшего слова): одна лопата стоит 10р, а 10 лопат стоят 90р и человек может купить "акционный" товар "10 лопат по цене 9".

Еще одна особенность -- типы пользователей (набор -- произвольный). Для каждого типа пользователя, как и для каждого пользователя в отдельности, могут быть установлены свои правила, т.е. свои цены на товары: для пенсионера, для оптовика, для вип-клиента и т.д.

Это пример системы, в которой бизнес-логика решается на стороне ПС, а общение с покупателями -- на стороне Друпала. Вот именно такую систему, а точнее ее реализацию, я и предлагаю вам обсудить.

На самом деле, для того же 1С это такая же банальность как для человека дышать, но вот интеграция с Друпалом вызывает массу вопросов. Перечислю лишь некоторые:
1. Использовать ли встроенные функции модулей или работать на прямую с базой данных.
2. Как импортировать большой объем данных, если использовать API модулей. Ведь Друпал прожорлив в отношении памяти.
3. Использовать ли стандартные решения или городить огород в виде своего модуля.

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

Добавлено:

Ориентируясь на эту классификацию: http://camp09.drupal.ua/ru/presentations -- я бы отнес мое выступление к Круглый стол (дискуссия).

Это я сказал к тому что у меня есть тема, модератором которой я желаю выступить, потому что эта тема меня крайне интересует. Но много рассказывать не хочу, т.к. моя реализация очень далека от идеала. Я могу задать лишь вектор и придерживать разговор в этом векторе. Также, я считаю что остальные реализации также не лишены багов (ну нет идеала в этом мире кроме Темы Лебедева, как он сам считает). Исходя из этого, есть огромное желание составить хотя бы приблизительный мануал (или список настойчивах намеков) для задач взаимодействия друпала с миром.

Comments

#1

Интересна интеграция каталога продукции на Drupal с 1С - импорт остатков на складе из 1С в Drupal и экспорт заказов из Drupal в 1С. Возможно ли такое?

Webremake's picture
#2

У меня, к сожалению, нет опыта работы с 1С, но есть опыт работы с Ubercart. Надеюсь, есть люди, которые с остатками работали и которым есть что сказать. Если так, то нам будет что обсудить :)

ss81's picture
#3

Что сейчас делается в проекте:
1. Импорт продуктов.
2. Каждый продукт имеет свой уникальный набор аттрибутов, которые также импортируются ежедневно. Цена продукта разная для разных наборов аттрибутов (синий большой шарик стоит 5коп, а красный маленький -- 7 коп.).
3. Импорт категорий продуктов.
4. Продукты продаются в разных вариациях (1 бутылка, 5 бутылок, ящик). Каждая вариация также имеет свою цену (реализовано в виде аттрибута).

Думаю, задача с остатками решится не очень сложно.

ss81's picture
#4

Это как раз то, над чем мы сейчас работаем, создавая сайт белорусской трикотажной фабрике.
А как у вас сделан каталог и через какие файлы происходит импорт (Exel, xml, другое?)
Импортировать остатки или номенклатуру из 1С в эти форматы не проблема. Делается одной кнопкой.

Webremake's picture
#5

Импорт происходит с помощью SOAP запроса к веб сервису, который возвращает ответ в виде XML конструкции.

ss81's picture
#6

ух-ты, тогда подробности при встрече :-)

Webremake's picture
#7

glu2006 указал на необходимость использования batchAPI при импорте данных, однако только после прочтения его обсуждения (http://ubercart.ru/node/166) до меня дошло что эту штуку нужно юзать при больших объемах данных (как раз, мой вариант).

есть ли у кого опыт работы с batchAPI? какие подводные камни? реально ли помогает или банальный set_time_limit(0) сделает то же самое?

ss81's picture
#8

batchAPI банально хорош тем, что там есть прогресс бар :) Однако, в то же время, плох тем, что разные месаджи в нем не повыводишь посреди процесса.

neochief's picture
#9

Т.е. если задача крутится по крону, то смысла в нем большого нет?

ss81's picture
#10

Очень занятная тема. Сам в качестве домашних проектов с отдаленной перспективой изучаю открытые ERP системы. Пока что больше нравятся OpenERP и OpenBravo.

slanj's picture