- Вступление
- Установка Ksenmart
- Бэк-энд часть компонента (админ.панель)
- Фронт-энд часть
- Чего не хватает Интернет-магазинам на Joomla
- Что хотелось бы видеть в Ksenmart
1. Вступление
Итак, ниже предлагается обзор компонента Интернет-магазина на Joomla под названием Ksenmart - разработка московской веб-студии LDM & Co. Прежде всего, давайте скачаем компонент с официального сайта Ksenmart.
Дистрибутив компонента весит порядка 4.3Мб. и включает в себя кучу всевозможных модулей и плагинов. Будет неплохо, если разработчики подготовят несколько версий дистрибутива: минимальный (компонент, модуль корзины и авторизации) и all-in-one (все модули и плагины в одном дистрибутиве), либо организуют нормальный файловый архив с разделениями по категориям и пользователи смогут скачать ровно то, что и нужно.
2. Установка Ksenmart
Установка дистрибутива подразумевает использование всего набора имеющихся возможностней бесплатной версии по-максимуму: будет установлен компонент, многочисленные модули и плагины. Давайте перечислим их:
Модули Ksenmart
- Модуль скидок KsenMart 3.1.4
- Модуль подписки KsenMart 2.0
- Простой поиск KsenMart 2.0
- Список продуктов KsenMart 2.0
- Модуль контактов KsenMart
- Миникорзина KsenMart 2.0
- Отзывы о магазине
- Способы доставки и оплаты KsenMart 2.0
- Информация аккаунта KsenMart 2.0
- Поиск Ksenmart
- Категории Ksenmart
Плагины доставки
- Доставка курьером по Москве и области
- Плагин добавляет способ оплаты курьеру.
- Фиксированная цена по регионам
- Плагин добавляет возможность создавать доставку с фиксированной ценой по регионам.
Системные плагины
- Вывод скидок
- Вывод скидок рассчитанных плагинами.
- Плагин подготовки компонента к кешированию
- Этот плагин заполняет хлебные крошки , обновляет счетчики и делает другие вещи до кеширования компонента.
Плагины платежных систем
- Оплата курьеру
- Плагин добавляет способ оплаты курьеру.
- Оплата квитанцией
- Плагин добавляет способ оплаты квитанцией Сберкабанка.
- Robokassa
- Плагин добавляет способ оплаты Robokassa.
- YesCredit
- Плагин добавляет способ оплаты в кредит с помощью сервиса YesCredit.
Плагины статистики
- Количество посещений сайта
- Плагин добавляет возможность назначать скидки покупателям магазина в зависимости от количества посещений сайта.
- Время на сайте
- Плагин добавляет возможность назначать скидки покупателям магазина в зависимости от времени на сайте.
- Просмотрено страниц
- Плагин добавляет возможность назначать скидки покупателям магазина в зависимости от количества просмотренных страниц.
- Просмотрено товаров
- ...
Плагины скидок
- Обратный отсчет
- Плагин добавляет возможность назначать скидки покупателям магазина с обратным отсчетом.
- Купоны
- Плагин добавляет возможность создавать купоны на скидку.
- Накопительная скидка
- Плагин добавляет возможность назначать скидки покупателям магазина в зависимости от общего объема покупок.
- Фиксированная скидка
- Плагин добавляет возможность назначать фиксированные скидки покупателям магазина.
- Скидка на заказ
- Плагин добавляет возможность назначать скидки покупателям магазина в зависимости от суммы текущего заказа.
Table 'db_joom3.r2ghv_ksenmart_products' doesn't exist SQL=ALTER TABLE `r2ghv_ksenmart_products` ADD `purchase_price` DOUBLE NOT NULL AFTER `old_price`;
Хммм. Компонент невозможно удалить из системы. При попытке удалить Ksenmart повторно, получаю:
Unknown table 'db_joom3.r2ghv_ksen_seo_config,db_joom3.r2ghv_ksen_seo_texts, db_joom3.r2ghv_ksen_s' SQL=DROP TABLE `r2ghv_ksen_seo_config`, `r2ghv_ksen_seo_texts`, `r2ghv_ksen_seo_types`, `r2ghv_ksen_users`, `r2ghv_ksen_user_addresses`, `r2ghv_ksen_user_fields`, `r2ghv_ksen_user_fields_values`, `r2ghv_ksen_widgets`, `r2ghv_ksen_widgets_types`, `r2ghv_ksen_widgets_types_values`, `r2ghv_ksen_widgets_users_config`, `r2ghv_ksen_billing_data`, `r2ghv_ksen_files`;
Правда, отмечу, что у меня на сервере MariaDB, есть ли такая ошибка на классическом MySQL, не знаю. Однако ошибка неприятная - нужно или чистить БД путем танцев с бубнами в Phpmyadmin или сносить полигон и ставить заново...
3. Бэк-энд часть компонента (панель управления)
Итак, после установки попадаем в панель администрирования компонента. Интерфейс сперва кажется непривычным (концепция Flat UI), однако через время становится интуитивно понятным. Светло-зеленый и белый цвета смотрятся не очень контрастно.
Общие настройки - Настройки административной части
Очень здорово, что реализована подготовка мини-эскизов для админ.панели, это делает навигацию быстрой.
3.1. Каталог
Ноу-хау компонента. Интересная концепция, при помощи которой очень удобно управлять содержимым каталога. Категории и производители находятся в доступности одного клика, невероятно удобно и просто! Однако в этом способе есть один недостаток, который может оказаться существенным: в случае роста категорий и увеличения кол-ва производителей, они будут загружаться лентой - визуально некрасиво и дольше время генерации страницы. В случае с товарами такой проблемы нет, поскольку реализовна пагинация. Производители и категории идут в “довесок” из расчета, что их много не будет. Возможно, в большинстве случаев это так, но компонент нужно сделать универсальным и предусмотреть использования большого кол-ва категорий и производителей (если есть “заточка” под изменение цен для регионов, значит допустимо построение большого магазина. Например, сеть Аптек - тысячи наименований лекарств).
3.2. Список товаров и функционал сравнения
Режим изменения цен на лету - замечательная штука! Но нужно внести доработку в UI. Например, есть некая цена. Я нажимаю в окошко для ее изменения и вижу, что стилистически оформление поменялось - элемент в режиме редактирования. Изменил цену и…. По логике, чтобы изменения вступили в силу, я нажимаю в соседнюю область чтобы выйти из режима редактирования элемента и изменения вступили в силу.
3.3. Экспорт / импорт
Тестируем функционал импорта / экспорта.
Импорт из CSV
Видим возможность загрузки файла и выбор кодировки файла windows-1251 и utf-8. Кстати, utf-8 лучше сделать по умолчанию если на винде последней такая кодировка.
Экспорт в Yandex.Market
Подающее надежды решение, позволяющее реализовать интеграцию Ksenmart в Яндекс маркет. Выделяю все категории, указываю название магазина, название компании, нажимаю “сохранить”, далее нажимаю /administrator/components/com_ksenmart/views/exportimport/tmpl/ym-xml.php и XML ленту для выгрузки. Также возможна выгрузка в некий ROIStat (сервис сквозной бизнес аналитики и увеличения прибыли).
Дополнительная плюшка - формирование pdf документа. Необходимость в этом иногда бывает, но редко. Будет дополнительное преимущество. (это важно при большой нагрузке или пакетной обработке).
3.4. Акции и скидки
Мощный инструментарий и ноу-хау компонента. Итак, вот какие типы скидок можно создать:
- Обратный отсчет
- Купоны
- Накопительная скидка
- Фиксированная скидка
- Скидка на заказ
Обычно такие решения идут платными дополнениями к скриптам Интернет-магазинов и они разные (накопительная скидка и скидка на заказ), здесь же комбинированное решение из коробки. Ни один другой компонент Интернет-магазина на Joomla не может похвастаться подобным в беслатной версии.
3.5. Отчеты
Доступные варианты:
- Отчет по продуктам
- Отчет по заказам
- Товары, за которыми следят
- Избранные товары
Отмечу реализацию сортировки по кол-ву заказов. Таким образом, можно отобразить в админ.панели список товаров по продажам на убывание. Востребованная ныне фишка.
Что хотелось бы видеть в следующей версии:
- Формирование и выгрузка отчетов в pdf и csv форматах на выбор;
- Pie chart (чарт-пирог) - визуальная статистика. можно на jquery + hyml5 +css3, можно и без красоты. сами графики строить в отдельной вкладке чтобы не отвлекали. а кому нужно - зайдут и посмотрят графический график;
- Встраивание кода от Google analytics и Яндекс метрика. Позволит собирать статистику продаж и передавать во внешний сервис для оценки общей конверсии.
3.6. Валюты и курсы
Список из трех валют по умолчанию. Евро стоит заменить на значок € В списке валют вывести еще одну колонку “валюта по умолчанию” и сделать иконку “основная валюта” (так короче звучит, чем “назначить по умолчанию” , в англ. set sa default currency)
3.7. Оплата
Оплата квитанцией - нужна валидация полей. Р/с и кор.счет не должны быть меньше или больше положенного кол-ва знаков (12 или 16ти значное число, нужно проверить) В идеале на будущее реализовать механизм поиска названия банка по введенному БИК. Так реализовано в интернет-банкинг системах. Нужно поискать в сети информацию, если такая база общедоступна (как регионы и города), то это будет очень крутое дополнение. С другой стороны, данные заполняются один раз и специально заморачиваться не стоит. Для западных клиентов нужна другая квитанция на SWIFT оплату. Для России нужен также модуль “квитанция оплаты Сбербанком” - это востребовано и люди покупают такой модуль, его суть - квитанция на печать в формате Сбербанка. Можно сделать платным дополением. RoboKassa и Йескредит не сохраняют настройки также. Вероятно конфликт скриптов.
По платежным шлюзам - обязательно внедрить возможность включения тестового шлюза. в PayPal это Sandbox. В Робокассе тоже что-то есть, если для этого нужна галочка “использовать тестовый режим”, ее нужно реализовать. Стоит дописать два модуля - оплата Webmoney и Яндекс деньгами. Возможно, на коммерческой основе.
3.8. Доставка
Модули доставки. В настройках есть параметр:
Цена по области(за км)
Не всегда указывается цена за километр, зачастую указывается фиксированная цена по области. Нужно предусмотреть такой режим. Поля пользователя - если авторы планируют выходить за пределы СНГ, стоит включить поле “Обращение: господин / госпожа” и сделать его необязательным (Title: Mr. (мистер) / Mrs (миссис) / Ms. (мисс)
Pop Up окно с выбором списка регионов. Следует вывести окошко для поиска или без окошка, но при нажатии на букву чтобы позиционировало на нужную строку. Лента регионов большая, хочется набрать Краснодарский край и получить нужную строчку. :-)
3.9. SEO
Реализована возможность управления формированием URL, мета-данных и title. Авторы не зря поставили на этом акцент.
Предложение опционально формировать ЧПУ в виде: category1/product005. Иногда такая опция полезна, когда тысячи товаров (см.ulmart.ru)
3.10. Страны и регионы
Магазин имеет предустановленые регионы России. Можно добавлять новые поля (страны, регионы).
3.11. Пользователи
На фронте есть модуль "Подписки", но такого функционала не нашел в панели администрирования магазина. В списке пользователей будет полезным добавить колонку страна или регион для группировки по этим параметрам.
Классических пользовательских групп нет, есть привязка к стандартным группам пользователей Joomla. В общем-то, интересный ход. Однако в других магазинах пользовательские группы вводятся для того, чтобы назначить скидку на пользовательскую группу. Добавили админа в группу Gold и назначили Gold скидку в 10%. Все покупки осуществляются с учетом скидки.
4. Фронт-энд часть
Выглядит весьма опрятно. Заточен под Bootstrap. В модуле выбора регионов выбираю регион Москва, нажимаю далее - ничего не происходит. Нужно в демо-данных забить разницу цен в зависимости от регионов для демонстрации функционала.
Категория с товарами
Сортировать по цене / популярности. Нужны еще параметры: по дате, по алфавиту и иконка со стрелочкой вверх / вниз, по клику меняется выдача в обратном порядке.
В категории есть переключение способа отображения товаров: сетка, плитка, список. Весьма достойно.
Карточка товара
На фронте три таба:
- Описание
- Отзывы
- Оставить отзыв
Натолкнуло на мысль, что неполохо было бы добавить еще несколько табов опционально. Например, характеристики или инструкция. Сделать по аналогии с CCK - возможность в режиме редактирования товара добавить еще однин textarea элемент (или удалить его)
Комментарии
Нужно для гостя вывести вкладку оставить комментарий (юзабилити), но делать проверку и писать: отзывы доступны только зарегистрированным пользователям.
Оформление заказа
Поле для ввода купона - ничего не ввожу и нажимаю “Пересчитать” - перегружается страница с оформлением заказа.Нужна валидация поля. Обязательные поля для ввода выделить красной звездочкой. Отсутствует возможность согласиться с правилами магазина (договор-оферта). Нужно вывести это чекбоксом и ссылкой на popup окно с правилами магазина (с договором-офертой согласен). На этапе оформления заказа валидация телефона присутствует, это хорошо.
Заказ оформляется гостем. А как насчет зарегистрированных пользователей и как регистрироваться? Важно, чтобы это было вынесено не только в модуль, но и на этапе офорлмения заказа в компоненте был режим авторизоваться или купить гостем - нужно стимулировать к регистрации и пользованию личным кабинетом.
Личный кабинет
На предыдущем шаге сделал заказ, он ждет подтверждения админа. На странице мои заказы на фронте ничего нет. Вкладка “отзывы” - добавляю отзыв, он куда-то уходит? Снова нажимаю этот таб и вижу снова форму пустую с отзывом. Логично вывести в табе уже оставленный отзыв.
Модуль поиска
Выводится на длинный модуль поиска, в результате выдачи которого видим товары с изображениями. Спасибо за это, ибо тот же Virtuemart или JoomShopping имеют простые плагины поиска без изображений в результате выдачи.
Фильтр товаров
Фишка магазина. По умолчанию пусть срабатывает механизм на лету как сейчас - это выигрышно смотрится, особенно для небольших магазинов. (желательно предусмотреть опциональное отключение поиска на лету для разгрузки БД на высокопосещаемых проектах - в этому случае юзеру нужно нажать кнопку "поиск" в фильтре)
Скорость генерации страниц на фронте приятно радует, а это немаловажный фактор.
5. Чего не хватает Интернет-магазинам на Joomla?
Говоря о российском рынке, это, однозначно, интеграция Joomla магазина с 1С. Даже под Virtuemart нет стабильного решения, которое позволяло бы закрыть вопрос без головной боли. Есть несколько сайтов, предлагающих подобные модули, но о них ходят противоречивые отзывы (плохая поддержка). Соответственно, клиент, заказавший Интернет-магазин на Joomla<, рано или поздно, захочет синхронизировать его с 1С. В этом случае прибегают к услугам фрилансеров, которые пишут на стороне 1С обработчик, выгружающий дампы напрямую в БД Joomla через SSH туннель. Решение половинчатое и не очень красивое. В идеале использовать протокол обмена данными Commerce2ML, специально для этого разработанный. Далее. Кроме Hikashop другие магазины не могут похвастаться функционалом сравнения из коробки, а это полезная фишка. И, как раз, Ksenmart это покрывает, однако над функционалом сравнения нужно работать еще.
6. Что хотелось бы видеть в Ksenmart
- Многоязычность. Сделать можно по аналогии c JoomShopping - в режиме редактирования товара все настройки будут выводиться табами (Russian / English). Сделать это частью платного функционала. Опционально отключать в админке чтобы не таскать лишние табы если язык один.
- UIKit / Bootstrap. По умолчанию поддерживается тяжеловесная Bootstrap. Стандарт де факто в Joomla 3. Однако сейчас набирает обороты альтернативный фронтэнд фреймворк UIKit от YOOtheme, который делает то же самое, но весит в разы меньше. Сделать задел под опциональный выбор. Будущее за UIKit.
- Продавцы. Отсутствует как функционал. В магазинах обычно есть производители (manufacturers) и продавцы (vendors). Это нужно реализовать.
- Модуль оплаты PayPal. Актуально уже и для России. Советую сделать модуль бесплатным в случае, если компонент планируется продвигать на международный рынок.
В целом, Ksenmart хоть пока и сыроват, но уже получился довольно интересным начинанием, достойным внимания и который можно использовать для создания Интернет-магазина. Желаю разработчикам удачи в подготовке следующих релизов, а сообществу поддержать хорошую российскую разработку.