В версии 0.3.0 нет серьезных изменений в пользовательском интерфейсе — человек непосвященный может даже не заметить всех новшеств. Серьезной модификации подверглись «внутренности» плагина, и именно об этих изменениях и хочется рассказать.
Пощупать демо
Скачать с GitHub
Скачать с AltoCMS.RU (
Настройки
Новый раздел, которого до этого не было — в настройки вынесено управление валютой по умолчанию и валютой в корзине.
Валюта по умолчанию — это валюта, которая будет выбрана автоматически во всех select-ах при операциях с валютой. Например, при создании нового товара необходимо выбрать валюту, в которой указана цена товара — и в этом select-е уже будет выбрана валюта, указанная в данной настройке.
Валюта в корзине — это валюта, в которой будет осуществляться расчет клиента с магазином, и только в этой валюте отображаются цены в корзине. Курс валюты устанавливается в разделе Валюта, что подводит нас к следующему пункту.
Валюта
Есть возможность создать новую валюту, установить курс, номинал валюты, выводимый формат и количество знаков после запятой. Страница создания новой валюты сопровождается подсказками, так что трудностей с этим пунктом возникнуть не должно.
Внутренняя структура
Изнутри плагин подвергся серьезным перестановкам:
1) Расположение шаблонов приведено к единому типу
2) Из базы удалены таблицы, дублирующие подобные сущности
3) Полный отказ от сериализации (serialize) данных в БД
4) Весь код приведен к единому виду и максимально прокомментирован
Некоторые технические особенности
Работа с ценами
Так как плагин представляет собой интернет-магазин, то просто необходимо хранить такие данные, как: цена товара, курсы валют, стоимость доставки и т.п. Для хранения этих данных был выбран следующий подход: перед занесением (например) цены товара в БД происходит умножение значения на единицу с определенным количеством нулей. В итоге, все «деньги» хранятся в целочисленном формате. Почему такое решение предпочтительнее — можно почитать тут.
Объект оплаты
Логика работы корзины с покупками в современных интернет-магазинах не кажется чем-то сверхъестественным: пользователь складывает аккуратненько необходимые ему товары в корзину, выбирает необходимую службу доставки и сервис оплаты, и с счастливым лицом ждет доставки товара после его оплаты.
При проектировании данного функционала в плагине miniMarket был осуществлен подход, позволяющий при необходимости прикрутить оплату чего-угодно, при этом воспользовавшись уже встроенными в плагин методами. Надеюсь, в ближайшее будущее появится статья, как описанный выше функционал можно использовать для своих целей.
В комментариях ниже буду рад выслушать конструктивную критику.
9 комментариев
Автор вы чрезвычайно круты!
С удовольствием бы поддержал монетой развитие.
Из пожеланий:
1. При выборе опций, на мой взгляд, происходит неправильная фильтрация.
Например, если мы выберем форм-фактор как ультрабук, выведутся все ультрабуки, если же мы так же выберем и ноутбуки, то не выведется ничего, хотя должны показаться все ультрабуки, и 0 ноутбуков, т.к. их нет.
minimarket.nbooks.by/catalog/notebook/asus/?c[pros]=20~124~28~14~15
2. Использовать лайтбоксы для отображения картинок, а не открывать в новом окне.
1) На счет фильтра согласен — необходимо переписать запрос, что бы он работал так, как вы это видите. Мне об этом еще после прошлого релиза говорили — но руки пока не дошли.
2) Не против на счет лайтбокса, но такое решение с большой картинкой на данный момент самое оптимальное и не затратное — пока есть другие более приоритетные задачи.
Сначала мы пытались устанавливать какие-то сроки — но теперь стало понятно, что при попытке сделать ХОРОШИЙ продукт, плюс при необходимости иногда заниматься основной работой — следование срокам может привести к «печальным» последствиям.
Короче говоря: совместимость с LS планируется и она БУДЕТ, но на данный момент мы сами не знаем, когда это произойдет.