Разработка модуля импорта/экспорта для Ubercart
Прислано: Zadira
ср, 19/05/2010 - 00:07
Требуется разработать модуль импорта/экспорта товаров в Drupal 6 + Ubercart 2.2:
1. Обмен данными с 1С8 (каталог и заказы)
2. Загрузка товаров из таблицы xml и csv
3. Понимать кодировку Windows
Более подробно:
- Загрузка товаров должна производиться по Артикулу. Если товара с данным артикулом не существует, то создается новый. Если существует, то информация о товаре обновляется.
- Товары, которые не присутствуют в загружаемом файле, удаляются из базы. Изображения которые ему принадлежат тоже должны быть удалены с сервера.
- Свойства товара, которые есть у товара на сайте, но которых нет в загружаемой таблице - не меняются. То есть если пользователь добавил изображение через сайт, а при загрузке поле "Изображение" в таблице пустое, то первоначально введенные данные не стираются.
- Товары должны импортироваться сохраняя структуру каталога.
- Ошибки экспорта должны выводиться на экран с указанием какой товар не может экспортироваться и почему.
- Экспорт должен производиться простым способом с минимальным количеством шагов.
Жду предложений по цене и срокам
- Zadira's blog
- Для комментирования войдите или зарегистрируйтесь
По срокам около месяца по деньгам примерно выльется в 1500 - 2000 не наших денег. Контакты в профиле.
- Для комментирования войдите или зарегистрируйтесь
Да за такие деньги проще лицензию битрикса купить....
- Для комментирования войдите или зарегистрируйтесь
Да за такие деньги проще лицензию битрикса купить....
Ну так купите :)
У Всех почему-то складывается мнение что если CMS free то и разработки решений под нее тоже нихрена не стоят.
Неделя работы специалиста кодера друпал стоит около 500 долларов (40 часов), на написание Вашего модуля уйдет никак не меньше 2,5 - 3х недель. Вот и делайте выводы.
Конечно можно написать какую нибудь полукостыльную версию а потом в процессе работы ее допиливать и т.д., тогда будет дешевле.
Вообще тема импорта данных в уберкарт и из него поднималась неоднократно и у меня есть наработки по этой теме, но к примеру я уперся в разматывание xml для большого количества товаров, ложится сервер. А как разматывать xml в батч процессе решения нет, + еще и нехватка времени и денег на продолжение разработок.
- Для комментирования войдите или зарегистрируйтесь
А если без xml?
Если только CVS (но в кодировке Windows)
- Для комментирования войдите или зарегистрируйтесь
А если без xml?
Если только CVS (но в кодировке Windows)
А что великий труд пересохранить файл в другой кодировке?
По моему нет, и тогда можно смело юзать node_import у него есть конечно свои минусы, но за отсутсвием альтернативы...
- Для комментирования войдите или зарегистрируйтесь
Если предоставлять как сервис неискушенному человеку, то node_import не подходит
Мало того что человеку нужно устанавливать дополнительное программное обеспечение для перевода в другую кодировку, так ему чтобы сделать загрузку нужно пройти множество шагов модуля node_import.
Плюс опять же он не подходит для синхронизации с табличным файлом та как не удаляет.
Скорее для первоначальной загрузки подходит.
- Для комментирования войдите или зарегистрируйтесь
Скорее для первоначальной загрузки подходит.
Я это все прекрасно знаю, но!
Альтернативы нет + о каком дополнительном софте для перекодирования вы говорите :) с этим даже стандартный notepad из винды справляется.
Вообще интеграция с 1С это одна большая задница, поскольку разновидностей конфигурирования как грязи, и гораздо проще взять за жабры 1С-ника чтоб он сконфигурировал свою систему под выгрузку чем подстраиваться.
Либо придется писать маппинг как в node_import но только писать так чтоб он сохранялся, далее надо создать и написать функционал для ведения таблицы соответствия внешних SKU и NID поскольку без нее мы получим кашу при импорте и экспорте, причем эта таблица должна так-же хранить и соответствие ID категорий каталога и не только таксономии, ведь еще есть и модуль category.
Далее необходимо засунуть всю процедуру импорта или экспорта в batch процесс чтоб импорт не прерывался по time выполнения скриптов на сервере.
Вот три веселеньких задачки решив которые мы получим на выходе полноценный импорт - экспорт.
Вы считаете что это не 2,5 - 3 недели разработки? И с большего не важно в каком формате будет файл для импорта, хоть txt (просто с XML это еще геморроя добавит на 3-4 дня).
Я еще не заикался про картинки, остатки и цены.
- Для комментирования войдите или зарегистрируйтесь
Вы считаете что это не 2,5 - 3 недели разработки? И с большего не важно в каком формате будет файл для импорта, хоть txt (просто с XML это еще геморроя добавит на 3-4 дня).
возьми и сделай Модуль импорта Товаров из CommerceML 1С D6
гораздо проще взять за жабры 1С-ника чтоб он сконфигурировал свою систему под выгрузку чем подстраиваться.
у 1с даже стандарт есть для магазинов CommerceML
- Для комментирования войдите или зарегистрируйтесь
возьми и сделай Модуль импорта Товаров из CommerceML 1С D6
Я подозреваю что Ваш модуль сядет на попу при импорте 20 - 30.000 товарных позиций (попробуйте его используя XML файл размером 4-5Мб), ничего нового в нем для себя не открыл, для корректной работы данного модуля на любых хостингах нужен batch process которого у Вас просто нет а значит импорт умрет на тайм лимит по скриптам.
у 1с даже стандарт есть для магазинов CommerceML
Про это я тоже знаю но во первых не все организации его пользуют, во вторых для любого стандарта необходимо делать маппинг, т.е. выставлять соответствие полей номенклатуры и ССК полей товара. И усложню задачу :) если у нас несколько разных групп товаров с разным набором ССК полей, как тогда быть?
- Для комментирования войдите или зарегистрируйтесь
Я подозреваю что Ваш модуль сядет на попу при импорте 20 - 30.000 товарных позиций (попробуйте его используя XML файл размером 4-5Мб)
в 4 Мб входит только 4000 позиций товара. в обновлении уже есть лимит по количеству загружаемых нод.
- Для комментирования войдите или зарегистрируйтесь
to glu2006 а можете на словах хотябы рассказать как вы batch собираетесь реализовывать? через php?
- Для комментирования войдите или зарегистрируйтесь
Да за такие деньги проще лицензию битрикса купить....
Именно. Многие ведутся на opensource статус Drupal, но разработка на Друпал часто ПРЕВЫШАЕТ стоимость аналогичного и узко заточенного коммерческого решения.
Друпал - это в некотором смысле развод (ща начнётся :). Покупая коммерческий продукт, человек автоматически получает право качать права, для Друпал такое не проканает: не платишь - закрой рот, тебе никто ничего не должен.
Именно поэтому Майкрософт честнее Линукса :)
- Для комментирования войдите или зарегистрируйтесь
Да за такие деньги проще лицензию битрикса купить....
Именно. Многие ведутся на opensource статус Drupal, но разработка на Друпал часто ПРЕВЫШАЕТ стоимость аналогичного и узко заточенного коммерческого решения.
Зачем битрикс? phpshop -- старт от 3990 руб. лепота!
- Для комментирования войдите или зарегистрируйтесь
Зачем битрикс? phpshop -- старт от 3990 руб. лепота!
Нужна гибкость при разработке, и все возможные фильтры каталога да и не совсем чистый магазин делаем, по мимо магазина еще контента много.
- Для комментирования войдите или зарегистрируйтесь
блин, да это ж я глумлюсь!
- Для комментирования войдите или зарегистрируйтесь
У Друпала уже есть встроенное в ядро batchAPI, главное правильно эти данные ему подсунуть ;) почитать тут http://api.drupal.org/api/group/batch
Я писал миграцию со стороннего форума на друпаловский, великолепно работает :) 25.000 юзеров более 400.000 постов и комментов. Все через стандартные функции друпала т.е. user_save, node_save, comment_save.
- Для комментирования войдите или зарегистрируйтесь
это я знаю, просто вопрос наверное не правильно задал, batch как то должен "резать" файл xml для этого как я понимаю он все равно должен загрузить весь файл в память, должна возникнуть таже проблема с нехваткой ресурсов, или я чего то не понимаю.
- Для комментирования войдите или зарегистрируйтесь
это я знаю, просто вопрос наверное не правильно задал, batch как то должен "резать" файл xml для этого как я понимаю он все равно должен загрузить весь файл в память, должна возникнуть таже проблема с нехваткой ресурсов, или я чего то не понимаю.
Так вот я и писал в комментах что затык с batch именно с xml и решения на эту тему просто пока нет к сожалению.
- Для комментирования войдите или зарегистрируйтесь
http://webi.ru/webi_articles/big_xml.html а такой велосипед не пробовали?
- Для комментирования войдите или зарегистрируйтесь
Судя по тексту и комментам должно работать. При написании очередного импорта обязательно попробую, спасибо за ссылку.
- Для комментирования войдите или зарегистрируйтесь
проблему со временем можно решить с помощью batch? вы планируете выпустить модуль, который анонсировали почти год назад?
- Для комментирования войдите или зарегистрируйтесь
проблему со временем можно решить с помощью batch? вы планируете выпустить модуль, который анонсировали почти год назад?
Не можно, а именно batch процесс и решает проблему времени на скрипты, а модуль тоже планируем выпустить, он бы давно увидел свет, но мешала проблема с xml + времени наскрести на него, поскольку спасибами за его разработку сыт не будешь, а инвесторы так и не нашлись.
- Для комментирования войдите или зарегистрируйтесь
цена вопроса 500 так как все уже написано
Если надо что то дописать то за дополнительную плату
Все это умеет
1. Обмен данными с 1С8 (каталог и заказы)
2. Загрузка товаров из таблицы xml и csv
3. Понимать кодировку Windows
и даже больше
Контакты в личке
- Для комментирования войдите или зарегистрируйтесь
цена вопроса 500 так как все уже написано
Если надо что то дописать то за дополнительную плату
Все это умеет
1. Обмен данными с 1С8 (каталог и заказы)
2. Загрузка товаров из таблицы xml и csv
3. Понимать кодировку Windows
и даже больше
Контакты в личке
Если не секрет, как Вы в batch процесс засунули xml?
Хотя бы суть механизма, код и сами написать можем.
- Для комментирования войдите или зарегистрируйтесь
делил кусками
- Для комментирования войдите или зарегистрируйтесь
делил кусками
Руками или программно?
- Для комментирования войдите или зарегистрируйтесь
Конечно программно
- Для комментирования войдите или зарегистрируйтесь
очень ветка полезная. отпишусь для трекера.
может быть скинемся на разработку в скором времени? Если разработки не против таких инвестиций.
+ потом выложим даже в свободный доступ.....
ТОлько скинуться желательно будет не вдвоем -)
хотя опять же.
такое чувство часто, что в друпале каждый кучкуется малыми группами и НЕ ДЕЛИТСЯ СЕКРЕТНЫМИ технологиями _) очевидно из за того, что часто просто нет времени, часто - страшно.
И в итоге не всегда можно ощутить всю прелесть СИНЕРГИИ -)
- Для комментирования войдите или зарегистрируйтесь
ТОлько скинуться желательно будет не вдвоем -)
Subscribe
Кстати, было бы неплохо здесь вести поддержку заказов сообщества - приклеить тему, описать т.з., опубликовать бюджет-план, бюджет-факт и т.д.
- Для комментирования войдите или зарегистрируйтесь
приклеить тему, описать т.з., опубликовать бюджет-план, бюджет-факт и т.д.
- нереально. У всех свои подходы и способы внутреннего учета. Универсального не получится. Сделать обмен - не сложно. Сложно сделать универсально-настраиваемым на все случаи.
- Для комментирования войдите или зарегистрируйтесь
Так сделать базовую версию. А под себя кждый сможет допилилить код в нужных местах.
Код сделать с комментариями в нужных местах. И инструкцию какую-нибудь возможно...
Мне кажется это проще быстрее и дешевле будет реализовать, чем универсально-настраиваемый под каждого модуль.
- Для комментирования войдите или зарегистрируйтесь
batch api это гуд конечно
но как быть в ситуации, когда требуется вытягивать данные по orders из уберкарта на 10-20 тыс позиций, подтягиваемые из 4-5 таблиц...
просто вопрос с временем выполнения решается, а с аут оф мемори - fail. даже убивая временные массивы...
это про експорт правда. но суть не меняется.
ломаю голову (
- Для комментирования войдите или зарегистрируйтесь
batch api это гуд конечно
но как быть в ситуации, когда требуется вытягивать данные по orders из уберкарта на 10-20 тыс позиций, подтягиваемые из 4-5 таблиц...
просто вопрос с временем выполнения решается, а с аут оф мемори - fail. даже убивая временные массивы...
это про експорт правда. но суть не меняется.
ломаю голову (
Вычитывать небольшими пачками к примеру по 100 записей и все.
- Для комментирования войдите или зарегистрируйтесь
модуль написан, и в ближайшее время будет выложен на ваш суд
Модуль будет иметь API достаточное чтоб внести корректировку до и после обработки
Также модуль будет поддерживать 2 вида работы batch и обычный (если записей не более x)
поддержка cck - будет включена в базовый модуль и будет идти отдельно
- Для комментирования войдите или зарегистрируйтесь
модуль написан, и в ближайшее время будет выложен на ваш суд
Модуль будет иметь API достаточное чтоб внести корректировку до и после обработки
Также модуль будет поддерживать 2 вида работы batch и обычный (если записей не более x)
поддержка cck - будет включена в базовый модуль и будет идти отдельно
Отличная новость!
- Для комментирования войдите или зарегистрируйтесь
А мы написали пока сторонний модуль, котрый пишет напрмяю в Базу. Думаю на друпале.ру нас затакое возненавидят но работает....!
Если будет время сделаем и интеграцию в Сам друпал.Первая версия как у нас по таймаутам отрубалась. Будем мыслить дальше.
- Для комментирования войдите или зарегистрируйтесь
По таймаутам - решение очень плохое и грозит потерей данных и битыми таблицами
- Для комментирования войдите или зарегистрируйтесь
модуль написан, и в ближайшее время будет выложен на ваш суд
Модуль будет иметь API достаточное чтоб внести корректировку до и после обработки
Также модуль будет поддерживать 2 вида работы batch и обычный (если записей не более x)
поддержка cck - будет включена в базовый модуль и будет идти отдельно
Ждем! Очень ждем!
- Для комментирования войдите или зарегистрируйтесь
Ждем! Очень ждем!
ООП Drupal тоже ждут уже около года.
Да, mdinc Mirocow?
- Для комментирования войдите или зарегистрируйтесь
Была необходимость экспорта/импорта около 1400 материалов (в т.ч. и товаров) с недельку-две назад, очень ждал готового модуля в этой теме.
Потом стало поджимать время. В результате переделал под себя модуль Ubercart CSV/Excel Export. Поскольку никогда этим не занимался, переделал тупо, в лоб, получился страшно медленный, но работает. Импорт - стандартно через Node Import.
Рекомендую такой подход для нетерпеливых. Затрат - один-два вечера на разобраться, но зато все сделано под свои нужды.
- Для комментирования войдите или зарегистрируйтесь
Была необходимость экспорта/импорта около 1400 материалов (в т.ч. и товаров) с недельку-две назад, очень ждал готового модуля в этой теме.
Потом стало поджимать время. В результате переделал под себя модуль Ubercart CSV/Excel Export. Поскольку никогда этим не занимался, переделал тупо, в лоб, получился страшно медленный, но работает. Импорт - стандартно через Node Import.
Рекомендую такой подход для нетерпеливых. Затрат - один-два вечера на разобраться, но зато все сделано под свои нужды.
А не подскажите где можно найти вами переделанный модуль?
Со стандартным не разобрался. Импорт то вроде есть. А вот формат файла мне не понятен и операции Экспорта он не осуществляет.
- Для комментирования войдите или зарегистрируйтесь
Виноват, не совсем понял что Вы хотите найти...
Если Вы про модуль, который я взял для переделки как исходный, то здесь. Еще можно поискать варианты на ubercart.org, например, здесь.
Если Вы про модуль, который я получил после переделки, могу его выложить. Но к-хм... как бы это сказать... я не программист, это мой чуть ли не первый опыт в PHP и MySQL, поэтому извиняйте. Подход у меня было такой - сляпать, перегнать данные и забыть. Пользоваться повседневно им неудобно. И наверняка придется переделывать под себя.
Выложить?
PS Для Node Import входной формат файла - CSV. Этот модуль умеет только импортировать.
- Для комментирования войдите или зарегистрируйтесь
Мне нужно сделать экспорт существующей на сайте базы.
С помощью существующих модулей мне это сделать не удалось.
Вот и прошу ваш, переделанный. Может с помощью него получится :)
- Для комментирования войдите или зарегистрируйтесь
Мне нужно сделать экспорт существующей на сайте базы.
С помощью существующих модулей мне это сделать не удалось.
Вот и прошу ваш, переделанный. Может с помощью него получится :)
Экспорт куда?
в файл, в 1С, в другую базу.
- Для комментирования войдите или зарегистрируйтесь
В файл
- Для комментирования войдите или зарегистрируйтесь
Варианты:
- из phpmyadmin экспорт выбранных таблиц в CSV;
- ну и не ругайте за поделку... :)
PS В закомментированной строке копируются в выбранную папку файлы изображений товаров. Если это нужно - раскомментировать.
- Для комментирования войдите или зарегистрируйтесь
Пасиба. Пошел изучать
- Для комментирования войдите или зарегистрируйтесь
Что-то это не то. Получил файл, в котором одной колбасой все ноды. Даже без разделения на поля. Просто текст сплошняком.
- Для комментирования войдите или зарегистрируйтесь
Смотрите блокнотом? Скорее всего проблемы с кодировкой.
Попробуйте открыть с помощью excel, выбрать кодировку UTF-8 и соответствующие разделители. А еще лучше - OpenOffice-ом, у меня (правда, под линуксом) открывается по умолчанию без проблем.
- Для комментирования войдите или зарегистрируйтесь
Сделал так как вы пишите. Лучше не стало. Прикрепил то, что получилось.
- Для комментирования войдите или зарегистрируйтесь








Комментарии