Проблемы обновления Интернет-магазинов, или история создания Drumode (Система управления Интернет-магазинов на Ubercart)

Главные вкладки

Аватар пользователя realburnis realburnis 24 сентября 2010 в 9:00

Предыстория: мы группа веб-разработчиков, и около года тому назад мы стали создавать интернет-магазины для своих клиентов. Но, вскоре загоревшись идеей магазинов сделали и свой собственный магазин. В качестве движка выбрали уже проверенную сборку CMS Drupal и модуль Ubercart.
1. Как бы это не звучало банально, после открытия магазина мы столкнулись с некоторыми проблемами:
Первая проблема, которую мы перед собой увидели – это Импорт товаров в Ubercart. Нужно заметить, что когда делали Интернет-магазины клиентам, такие проблемы часто не замечались. Ведь заказчики, как правило, немаленькие предприятия, которые могут себе позволить человека на рутинную работу.
2. Вторую проблему, появившуюся у нас после налаженного «Импорта товаров» можно охарактеризовать как «проблема добавления описаний, картинок, определение категорий к товарам».

Начнем со второй проблемы, так как она получилась более глобальная, но при этом не освещена ни в одном из известных нам источников. Что дает повод думать, что все её решают другими способами, либо просто занимаются рутиной.

Суть нашей проблемы заключалась в том, что объем товаров в нашем региональном магазине был довольно велик. Имея несколько поставщиков, мы получали еженедельно от каждого прайсы по 1.5к – 3к товаров! Но все эти прайсы/остатки имели собой только несколько колонок: Артикул/Наименование товара/Иногда Бренд товара/Стоимость для нас.

Попытки просить наших поставщиков как-то добавить туда описание / фотографии / желательно категории – не увенчались успехом. Аргументов у всех как один был – у них нет информации в удобном стандартизированном виде для того, что бы дать нам её.

Но, что это за Интернет-магазин без полноценных описаний, фотографий, категорий? Можно, конечно, вообще просто выкладывать прайсы в экселе на сайт, и успешно делать продажи (я знаю в регионах «бизнесменов», которые так и делают и довольно успешно), но, хочется идти к идеалу. Строить правильное и интересное, а главное развиваться и быть лучшими.

И мы начали делать это вручную: делали импорт прайса для Ubercart (об этом ниже) на сайт, с помощью Views делали выборку «последних по дате добавленных товаров» – все они без картинок и категорий, – и пошли вкалывать!

Но! Но! Но! После сорокового товара в сутки, лично у меня начинало заклинивать мозг. Потому что постоянно в Друпале нужно было переходить к ноде, жать «Изменить», загружать фотографию, вставлять описание, выбирать категории, потом нажимать «Отправить»! После этого нужно было как-то вернуться опять к выдаче «неготовых товаров» (а это или вновь открытые вкладки, или «назад», «назад»)…

А если нас пусть даже с разными ролями делали одновременно, то мы постоянно путались! Мы договаривались, что кто-то делает «конец списка», а кто-то «начало» встречались в середине…

Но! Мы хотели нанять еще несколько людей на эту работу. Хотели сделать так, что бы их было удобно контролировать, и что бы они друг другу не мешали. Именно тогда, мы поняли, что пора писать свою программу, работающую в купе с Drupal – DruMode!

Что получилось в итоге, сейчас опишу.

Drumode – система обновления товаров для интернет-магазинов, созданных на движке Drupal + Ubercart. Он показывает все «неготовые товары» в интернет-магазине и позволяет с легкостью изменить описание, поля товара, добавить изображение товара, назначить категории товара. И все это через веб-интерфейс с использованием современных веб-технологий (jquery, tinymce в качестве WYSWYG, ajax).

Друмод состоит из двух частей: Административная и Модераторская части.

Административная часть

Позволяет установить основные настройки: доступ к БД Друпала, список ролей пользователей Друпала, которым разрешен доступ к этой системе (так называемые модераторы), список полей, редактируемые модераторами и другое… Позволяет назначить модераторам редактируемые товары…
image
Процесс назначения заданий происходит довольно просто.

Вы нажимаете Назначить задания конкретному модератору (тем пользователям Drupal, которым разрешен доступ в систему обновления), а потом просто выделяете мышкой товары, которые надо обновить, и жмете назначить.


Если Вам не понравилась работа модератора по некоторым товарам, Вы можете Вернуть ему задания на доработку.

image

Система ведет учет полученных и выполненных заданий по каждому модератору, ведет статистику его работы:
image

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

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

*. Неготовые товары, которые нас интересуют, определяются по следующему алгоритму:
– товар не имеет описания,
– у товара нет картинки, или
– у товара не определены какие-либо категории (по одному или нескольким словарям таксономии).

Товар, отвечающий данным требованиям появляется в списке ожидающих обновления и доступен к препарированию (обновлению) с помощью DruMode .

Модераторская часть

Модераторская часть позволяет через веб-интерфейс изменять информацию о товарах, не перезагружая страницу: изменять заголовок, описание, цены и любые поля, созданные с помощью CCK, добавлять фотографии, назначать категории.

* Примечателен тот факт, что с помощью этой системы, Вы можете ограничить контент-менеджеров от доступа к таким вещам как «закупочная цена» или поставщик – все то, что вы может быть захотите указать в определенных терминах или каталогах, или CCK полях но не желательное для просмотров третьих лиц. Ведь модераторы смогут видеть и редактировать только ту часть, которую Вы им назначите.

Если модератор думает, что товар готов, но не окончательно, он может нажать клавишу «Сохранить» и перейти к новым товарам. Если же он считает, что обновленный им товар полностью готов, ему следует сразу нажать «Готово». В таком случае данный товар переходит в список готовые, и «исчезает» из общего списка, не бросаясь больше глаза!

image

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

Модуль импорта Druport

* Так же DruMode включает в себя наш модуль DruPort – модуль импорта в Ubercart (о котором упоминалось выше).
Модуль имеет независимый интерфейс, позволяет импортировать из прайсов такие данные как: заголовок, описание, цены, поля CCK, имя файла картинки, категории товара.

Модуль понимает такие форматы как:
TSV – текстовые файлы с разделительными табуляции,
СSV Россия – текстовые файлы с разделителями точка запятой,
CSV Европа – текстовые файлы с разделителями запятой.
Понимает кодировки: utf-8, utf-16 LE, utf-16 BE, win-1251.
Модуль делает импорт идентифицируясь по Артикулу товара (а не по Заголовку, как известном node_import).

image

Модуль примечателен тем, что делает импорт товаров поэтапно, частями, запуская процесс по ajax: после установки всех настроек импорта создается процесс импорта, и через ajax он запускается частями по 20 товаров. Администратор импорта наблюдает процесс работы импорта в режиме реального времени: сколько сделано / сколько осталось.

Таким образом, решается проблема «зависания, при импорте больших прайсов» – DruPorte не только по минимуму использует процессор и память сервера, но еще и не зависает, и всегда доступно и видно, на сколько он выполнил свою работу.

Кстати для удобства DruPort умеет так же делать экспорт товаров из Ubercart – что порой является очень актуальным. Форматы и кодировки экспорта аналогичны как и для импорта.

image

image

На этой ноте пока заканчиваю, скажу лишь, что мы не можем пока себе позволить бесплатно раздавать эти модули и полная версия DruMode (включающей в себя DruPort) стоит на данный момент 90 $. Данный пост я пишу больше для того что бы получить критику или советы . Потому что прекрасно понимаю, что Хабра не рекламная площадка.

Возможна так же продажа отдельной версии DruPort (без DruMode) за адекватные деньги.

Все сделки на сегодняшний день мы готовы реализовывать как за электронные деньги так и за безналичный расчет с оформлением договоров и.т.д.

В ближайших версиях, мы планируем:
DruMode – получит внутренний чат, и Аднимистраторы смогут общаться с Модераторами.
DruPort мы научим экспортировать/импортировать товары из и в XML, возможно XLS.
И еще многое многое другое.

За более дательной информацией, вы можете обращаться как в личку, так и ICQ (вся контактная информация есть в личке).

upd Добавили дополнительных картинок на тему как Выглядит процесс "Назначения" и "Возврата заданий".
Снизу добавил возможность демо доступа. Сейчас мы так же добавим более обширный прайс "для экспериментов".

Комментарии

Аватар пользователя glu2006 glu2006 24 сентября 2010 в 9:17

Прикольно, жаль что цена выросла по сравнению с прошлыми 30$, но там был "недопил" и жаль что Ваша система работает сама по себе, хотя может это ее плюсы. Удачи в продажах, думаю что будет востребовано.

Аватар пользователя realburnis realburnis 24 сентября 2010 в 10:04

Спасибо за проявленный интерес.
Но цена не выросла - это просто уже новый продукт.

А тот "недоделыш" теперь выров просто в DruPorte - продается и отдельно от DruMode. И теперь полностью настраивается через веб-интерфейс.

Его стоимость пока договорная. Но колеблется в райне 40-50 американских рублей.

Пост я писал для хабры. Но там оказался уже "отхабренным" и не имею тех. возможности инициировать его туда. Поэтому пишу в любимый друпал.ру.

Аватар пользователя realburnis realburnis 24 сентября 2010 в 10:06

Как уже писал, делал пост для хабры. И боялся хабраэфекта -) Поэтому демоверсия уже есть! Просто пока не анонсировали.

Сейчас разгребусь чуток с делами и думаю размещу демодоступ! Пока все что непонятно спрашивайте.

Аватар пользователя realburnis realburnis 24 сентября 2010 в 10:25

Доступ в административную часть Drumode

http://cgi.satus.ru/drumode
логин: root
пользователь: 12345

Доступ в непосредственно в сам друпал с простым уберкартом:
http://cgi.satus.ru/user
логин: admin
пароль: 12345

Собственно если вы хотите увидеть в "модераторской части" достаточно создать пользователя в друпале и присвоить ей какуюто роль. Либо использовать уже существующие moderator
Если созданите новую роль, её нужно будет прописать по в настройках DruMode

На всякий случай создал пользователя модератора!:
логин: drupal
пароль: drupal

Призываю к адеватности!
1. На хостинге нет ни гд2 ни гд2 поэтому прошу картинки вставлять только png и gif - jpg не обработается. То это дело в хостинге который пока долго пересобирать для демодоступа.

2. Так как возможно будут тестировать сразу несколько людей. Старайтесь вести себя прилично и не удалять все подряд....

Собственно пока все. Сейчас убежал. На вопрос отвечу уже ближе к вечеру.

************************************************************

1. Настройки системы: http://cgi.satus.ru/drumode/admining/config
2. Назначение заданий: http://cgi.satus.ru/drumode/admining/users-view?tasks-add=3
3. Выполняемые задания: http://cgi.satus.ru/drumode/admining/users-view?tasks-new=3
4. Выполненные задания: http://cgi.satus.ru/drumode/admining/users-view?tasks-old=3
5. Статистика выполнения: http://cgi.satus.ru/drumode/admining/users-view?user-info=3
6. Импорт товаров: http://cgi.satus.ru/drumode/admining/prods-view?import=demo_import.tsv
7. Экспорт товаров: http://cgi.satus.ru/drumode/admining/prods-view?export

Аватар пользователя realburnis realburnis 24 сентября 2010 в 10:29

Еще хотел спросить у сообщества. Как вообще добиться того, что бы мои посты порой попадали на главную drupal.ru ? Или недорос еще?

Аватар пользователя realburnis realburnis 24 сентября 2010 в 11:43

Демодоступ мы несколько пока ограничили. к примеру отменили сейчас возможность самостоятельно загружать прайсы.
Сейчас залью прайс побольше. Что бы было над чем всем эксперемнтировать!

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 24 сентября 2010 в 14:27

"realburnis" wrote:
DruPort мы научим экспортировать/импортировать товары из и в XML, возможно XLS.

XLS была бы бомба

Есть вопросы:

1) Это поддерживает многоязычность?
2) Я так понял, это отдельное приложение, которое напрямую взаимодействует с БД? Если да, то планируете сделать в виде полноценного модуля? Чтобы и юзеры были стандартными друпал пользователями и тд

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 24 сентября 2010 в 18:44

На самом деле, парни, ваше решение больше для какого-то уж сильно огромного супермаркета, которые, обычно, вообще пишут полностью под себя с нуля.

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

Помоему это В ОБЩЕМ оторвано от реальности и заточено под себя.

О чём я... Если бы это было оформлено в виде стандартного друпаловского модуля, который бы позволял просто импортировать/обновлять товары в формате CSV или, о чудо, в формате XLS через удобный интерфейс с этими всякими примочками на Jquery и с возможностью подстроки прайсов по колонкам - ему бы цены не было.

Аватар пользователя Valeratal Valeratal 24 сентября 2010 в 20:27

вот это верно

а многопользовательность

блин, не так много у нас тут людей, у которых есть зарплата платить обезьянам контенщика (в смысте тем, кто фотки добавляет каждый раз)

Ну, тупо
может проще было договориться с поставщиками об унификации прайсов, чем платить зп нескольким людям

Меня вот интересует действительно
обновление цен из экселя, из 1С импорт-экспорт и тд

Аватар пользователя realburnis realburnis 24 сентября 2010 в 20:52

На самом деле на друпале при желании действительно можно делать большие и хорошие сайты. И мы хотим это показать таким способом.

Drumode - больше чем просто Импрот/Экспорт. Он позволяет именно ускорить работу контент-менеджеров, и более того ускорить возможность проверки их проверки, а самое главное - просто можно с его помощью быстро ! Очень быстро заниматься наполнением своих сайтах.

Не все же заниматься сателлитами и СДЛ. Не обаятельно кому-то "платить зарплату". Можно ведь просто и себе таким образом удобнее "выдавать задания" и друзьями и с ними же заниматься контентом на должном уровне.

Решение в каком-то смысле действительно заточено под себя. Но мы всегда стараемся делать масштабируемые и интересные решения.

Поэтому ведь Друмод и Друпорт в отдельности работает универсально как шестым друпалом так и в пятом - достаточно в настройках просто поменять настройку.

А по-поводу договорится с поставщиками об унификации товаров...поставщиков. У которых скажем так уже свои собственные гипермаркеты. Поверьте наслово. Это скорее невозможно, чем дещевле.. А если даже это измерить в денежном эквиваленте - часто это очень и очень проблематично. Если Ваши поставщики не ларьки, а крупные оптовики...

Аватар пользователя realburnis realburnis 21 марта 2011 в 10:27

Друзья, рады анонсировать вам факт того, что теперь Drumode умеет делать выгрузку в YML, что позволяет владельцем интернет-магазинов под управлением Ubercart безболезненно помещать свои товары в Яндекс Каталог.

Wink

Аватар пользователя realburnis realburnis 8 июня 2012 в 11:56

На всякий случай обновлю эту ветку. Вдруг кто не знает
Давно уже есть Drumode 2.0 - система, которая уже умеет работать просто со всеми типами материалов в Drupal. Не обязательно, с нодами типа "товар".