Описание Drumode 1.x

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

 

В качестве движка выбрали уже проверенную сборку CMS Drupal и модуль Ubercart. Как бы это не звучало банально, после открытия магазина мы столкнулись с некоторыми проблемами:

1. Первая проблема, которую мы перед собой увидели – это Импорт товаров в Ubercart.

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

 

2. Вторую проблему, появившуюся у нас после налаженного «Импорта товаров» можно охарактеризовать как «проблема добавления описаний, картинок, определение категорий к товарам».

 

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

 

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

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

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

 

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

А если нас пусть даже с разными ролями делали одновременно, то мы постоянно путались!

Мы договаривались, что кто-то делает «конец списка», а кто-то «начало» встречались в середине… Но! Мы хотели нанять еще несколько людей на эту работу. Хотели сделать так, что бы их было удобно контролировать, и что бы они друг другу не мешали. Именно тогда, мы поняли, что пора писать свою программу, работающую в купе с Drupal – DruMode! Что получилось в итоге, сейчас опишу. Drumode – система обновления товаров для интернет-магазинов, созданных на движке Drupal + Ubercart.

 

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

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

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

Мини-картинка

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

Мини-картинка

Мини-картинка

 

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

Мини-картинка

 

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

Мини-картинка

Так же в системе есть возможность выставлять оценки работы модератора, что это может оказаться в итоге решающим фактором при начислении заработной платы. Если Ваши товары уже имеют какую-то упорядоченность (в нашем случае, все товары сразу после импорта в любом случае отнесены к каким-то брендам), то Вы можете назначать задания модераторам не из общего списка, а выбирая конкретный бренд. *. Неготовые товары, которые нас интересуют, определяются по следующему алгоритму: – товар не имеет описания, – у товара нет картинки, или – у товара не определены какие-либо категории (по одному или нескольким словарям таксономии). Товар, отвечающий данным требованиям появляется в списке ожидающих обновления и доступен к препарированию (обновлению) с помощью DruMode .

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

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

Мини-картинка

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

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

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

Модуль примечателен тем, что делает импорт товаров поэтапно, частями, запуская процесс по ajax: после установки всех настроек импорта создается процесс импорта, и через ajax он запускается частями по 20 товаров. Администратор импорта наблюдает процесс работы импорта в режиме реального времени: сколько сделано / сколько осталось. Таким образом, решается проблема «зависания, при импорте больших прайсов» – DruPorte не только по минимуму использует процессор и память сервера, но еще и не зависает, и всегда доступно и видно, на сколько он выполнил свою работу. Кстати для удобства DruPort умеет так же делать экспорт товаров из Ubercart – что порой является очень актуальным. Форматы и кодировки экспорта аналогичны как и для импорта. 

Мини-картинка

Мини-картинка