DiscountMS2 - Скидки для категорий товаров

Поздравляю всех (или сочувствую всем, спорный вопрос) с началом новой рабочей недели!
Наклепал свой первый более-менее серьезный компонент, хочу представить на суд общественности.

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

Есть возможность указания скидки как со страницы компонента, так и через TV.

Вот так выглядит страница в админке:




Вот так — указание скидки через ТВ:




Добавление новой скидки:





Актуальность: Сейчас есть решения, но, на мой взгляд, порой с чересчур большим функционалом — при загрузке товара проверяется группа пользователя и в зависимости от нее показывается на лету меняющаяся цена. Не проверял, но есть подозрение, что при работе с тысячами товаров будут наблюдаться приличные тормоза. Мое решение меняет цену один раз, после чего никакой обработки не проводится.

Принцип работы: У меня все сделано проще (функционал беднее, но порой он не нужен). В таблицу товара добавляется поле original_price, в котором хранится оригинальная цена товара. При добавлении скидки для категории берется значение из original_price, к нему применяется скидка и окончательный вариант выставляется в поле price.
При большом количестве товаров может зависать! Пока мой предел — 1500 товаров за один раз.

Подробной документации пока нет, может быть добавлю позднее. Возможно закину в modstore (в официальный магазин не хочу, там все на англ. должно быть — лично мне не удобно).

Компонент пока сырой! Опробован на небольшом количестве сайтов! Если использовать на рабочем проекте, то настоятельно рекомендую перед установкой сделать бэкап!

Был опробован с modx 2.5.7, требует для работы новую версию minishop2 (на самом деле при установке пока не требует, так что на компонент надейся, но и сам не плошай).
Для пользователя базы данных должна быть привилегия ALTER (обычно она есть, но не всегда).

Жду отзывов и пожеланий, по возможности буду дорабатывать.
Что на данный момент я не знаю, как сделать:
1) При установке проверка версии минишопа.
2) При создании скидки не получается указать дефолтные значения полей — поставил бы глубину 10 по умолчанию.
3) Не придумал, как лучше сделать выбор категории. На создание выпадающего списка с категориями времени ушло больше, чем на весь компонент. Но есть подозрения, что вписывать id удобнее.

Ссылка на скачивание
Олег
03 июля 2017, 12:43
modx.pro
3
1 537
+12

Комментарии: 2

Андрей
04 июля 2017, 19:53
0
> При создании скидки не получается указать дефолтные значения полей — поставил бы глубину 10 по умолчанию.

При создании поля указать параметр
originalValue: 10

> Но есть подозрения, что вписывать id удобнее.

Можно мультиселект сделать.
    Олег
    05 июля 2017, 09:41
    0
    1) Благодарю, помогло!
    2) Тогда на странице компонента будет путаница, мне кажется.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2