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

Предыстория: мы группа веб-разработчиков, и около года тому назад мы стали создавать интернет-магазины для своих клиентов. Но, вскоре загоревшись идеей магазинов сделали и свой собственный магазин. В качестве движка выбрали уже проверенную сборку 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 Добавили дополнительных картинок на тему как Выглядит процесс "Назначения" и "Возврата заданий".
Снизу добавил возможность демо доступа. Сейчас мы так же добавим более обширный прайс "для экспериментов".

Submitted bymarazmus (не проверено)on сентября 24, 2010 - 18:46

Burnis, супер! :)

Это мегакрутая штука, которая написана людьми, которые реально работают с огромной кучей товаров. Просто офигенно :)

И деньги в принципе не очень большие, отобьются буквально с нескольких продаж, так что не переживайте за цену.

И заодно вопрос - обновления включены в стоимость? Если включены, то на какой срок?

Спасибо :)

Submitted byburnison сентября 24, 2010 - 20:35

Ответ на от marazmus (не проверено)

Обновления включены на полгода. Но как показала практика мы и потом продолжаем отсылать обновления.

Просто на полгода мы точно не потеряем еще интерес к этому.

Мне недавно как раз поступило предложение сделать интернет магазин, отказался... Теперь кажется, что не зря. Всё так запутанно. Хотя, может если парочку таких сделать, то потом это будет казаться проще простого, может и стоит попробвать! В любом случае спасибо за подробную инструкцию с иллюстрациями.

Добавить комментарий

Содержимое данного поля является приватным и не предназначено для показа.

Filtered HTML

  • Допустимые HTML-теги: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type='1 A I'> <li> <dl> <dt> <dd> <h2 id='jump-*'> <h3 id> <h4 id> <h5 id> <h6 id>
  • Строки и абзацы переносятся автоматически.
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.