2490
29.64
35.57
за сайт
- Проверено Modstore
- Бесплатные будущие обновления
- Работа на тестовом и публичном домене
- 12 месяцев тех. поддержки
Версия
1.0.0-pl
Дата выпуска
26.09.2026
Загрузки
0
Просмотры
8
Внимание, этот компонент требует PHP
8.2
или выше!
Внимание, этот компонент требует MODX 3 или выше.
ms3Discounts — полноценная система скидок и акций для MiniShop3
Создавайте скидки для товаров, категорий и пользователей без сложных PHP-условий и ручного программирования. Настройте, кому, на какие товары, при каких условиях и какую скидку предоставить — остальное компонент рассчитает автоматически.
ms3Discounts использует нативную архитектуру MiniShop3 и современный интерфейс на VueTools + PrimeVue. Правила создаются в визуальном конструкторе, а сложные сценарии можно расширять собственными условиями и действиями.
Возможности
5 типов скидки
Гибкие условия без программирования
Условия собираются визуально и объединяются через AND / OR.
Можно создавать простые правила в несколько кликов и постепенно добавлять дополнительные условия, не усложняя интерфейс.
Сумма именно подходящих товаров
Можно проверять не только всю корзину, но и сумму товаров, которые попадают под конкретную скидку.
Другие товары в корзине при этом не участвуют в расчёте этого условия.
Исключения
Для каждого правила можно задать включения и исключения.
Например:
Несколько скидок одновременно
Для управления совместимостью используются четыре режима:
Для каждой скидки также задаётся приоритет.
Скидка должна не только подходить, но и реально примениться
ms3Discounts различает:
eligible — условия скидки выполнены;
applied — скидка действительно изменила цену.
Это важно при нескольких правилах и ограничениях, когда подходящая скидка может не дать фактической выгоды.
Акции по расписанию
Для каждой скидки можно указать:
Например:
N-й товар и подарки
Можно реализовать:
Подарок не должен самостоятельно становиться причиной выполнения условия акции.
Проверка скидки
Если правило не работает так, как ожидалось, не нужно разбираться в коде.
Встроенная диагностика показывает:
Можно проверить конкретный сценарий, указав пользователя, товар, количество, опции и контекст.
Удобное управление в менеджере
В интерфейсе доступны:
Интеграция с MiniShop3
ms3Discounts работает с механизмами расчёта MiniShop3 и автоматически пересчитывает скидки при изменении корзины, количества или параметров товара.
Размер скидки и данные о применённых правилах доступны в позициях корзины и заказа.
Скидки в каталоге и карточке товара
Компонент позволяет получать данные о действующих скидках и использовать их в собственных шаблонах.
Доступны данные о:
Для разработчиков
ms3Discounts можно использовать не только через manager UI, но и как расширяемый движок скидок.
Архитектура позволяет добавлять собственные:
Например, стороннее дополнение может добавить собственное условие или действие, не изменяя код ms3Discounts.
Современный интерфейс
Manager UI построен на VueTools + Vue 3 + PrimeVue 4 и использует общий стек MiniShop3.
Важно
ms3Discounts отвечает именно за скидки и правила их расчёта.
Промокоды, генерация кодов и управление их использованием не дублируются внутри компонента и могут работать через отдельное дополнение.
Примеры акций
ms3Discounts — единая система скидок для MiniShop3: визуальные правила, гибкие условия, несколько типов скидок, подарки, N-й товар и встроенная диагностика расчёта.
Создавайте скидки для товаров, категорий и пользователей без сложных PHP-условий и ручного программирования. Настройте, кому, на какие товары, при каких условиях и какую скидку предоставить — остальное компонент рассчитает автоматически.
ms3Discounts использует нативную архитектуру MiniShop3 и современный интерфейс на VueTools + PrimeVue. Правила создаются в визуальном конструкторе, а сложные сценарии можно расширять собственными условиями и действиями.
Возможности
- Скидки на конкретные товары, категории и производителей.
- Скидки для групп пользователей и отдельных пользователей.
- Условия по товарам, категориям, производителям, опциям и значениям опций.
- Минимальная сумма корзины или сумма только подходящих под скидку товаров.
- Условия по количеству товаров и позиций.
- Скидки на N-й товар или позицию.
- Подарочные товары с автоматическим добавлением и удалением.
- Исключения товаров, категорий и других объектов.
- Расписание по датам, времени и дням недели.
- Ограничение по контекстам.
- Приоритеты и несколько одновременно подходящих скидок.
- Визуальный конструктор условий с AND / OR.
- Предпросмотр и диагностика расчёта скидки.
- Массовое управление и дублирование скидок.
- Расширение собственными условиями и действиями.
5 типов скидки
- Процентная — например, -10%.
- Фиксированная — например, -500 ₽.
- Фиксированная цена — например, установить цену 999 ₽.
- N-й товар — скидка на каждый второй, третий и следующий товар.
- Подарок — автоматическое добавление бесплатного товара.
Гибкие условия без программирования
Условия собираются визуально и объединяются через AND / OR.
Категория = «Обувь»
И группа пользователя = «Оптовики»
И сумма подходящих товаров >= 20 000 ₽
Можно создавать простые правила в несколько кликов и постепенно добавлять дополнительные условия, не усложняя интерфейс.
Сумма именно подходящих товаров
Можно проверять не только всю корзину, но и сумму товаров, которые попадают под конкретную скидку.
Категория «Чай» → сумма подходящих товаров от 10 000 ₽ → дополнительная скидка 5%
Другие товары в корзине при этом не участвуют в расчёте этого условия.
Исключения
Для каждого правила можно задать включения и исключения.
Например:
Категория «Обувь» → -15%
Исключить производителя «Adidas»
Несколько скидок одновременно
Для управления совместимостью используются четыре режима:
- Stackable — скидка может применяться вместе с другими.
- Best — выбирается наиболее выгодная скидка.
- Exclusive — скидка применяется отдельно от остальных.
- Fallback — используется, если другие правила не дали результата.
Для каждой скидки также задаётся приоритет.
Скидка должна не только подходить, но и реально примениться
ms3Discounts различает:
eligible — условия скидки выполнены;
applied — скидка действительно изменила цену.
Это важно при нескольких правилах и ограничениях, когда подходящая скидка может не дать фактической выгоды.
Акции по расписанию
Для каждой скидки можно указать:
- дату начала;
- дату окончания;
- время начала и окончания;
- дни недели;
- контексты.
Например:
Каждую пятницу с 18:00 до 23:59 — скидка 20% на категорию «Пицца».
N-й товар и подарки
Можно реализовать:
- каждый второй товар со скидкой;
- скидку на N-ю позицию;
- «купи 2 — третий бесплатно»;
- автоматическое добавление подарка;
- автоматическое удаление подарка при потере условий акции.
Подарок не должен самостоятельно становиться причиной выполнения условия акции.
Проверка скидки
Если правило не работает так, как ожидалось, не нужно разбираться в коде.
Встроенная диагностика показывает:
- какие условия выполнены;
- какое условие не выполнено;
- какие товары подходят;
- какая скидка выбрана;
- какой размер скидки рассчитан;
- была ли скидка реально применена.
Можно проверить конкретный сценарий, указав пользователя, товар, количество, опции и контекст.
Удобное управление в менеджере
В интерфейсе доступны:
- список всех скидок;
- поиск и фильтрация;
- быстрое включение и отключение;
- массовые действия;
- изменение приоритета;
- дублирование существующего правила;
- визуальный Rule Builder;
- предпросмотр;
- Trace и диагностика расчёта.
Интеграция с MiniShop3
ms3Discounts работает с механизмами расчёта MiniShop3 и автоматически пересчитывает скидки при изменении корзины, количества или параметров товара.
Размер скидки и данные о применённых правилах доступны в позициях корзины и заказа.
Скидки в каталоге и карточке товара
Компонент позволяет получать данные о действующих скидках и использовать их в собственных шаблонах.
Доступны данные о:
- исходной цене;
- цене после скидки;
- размере скидки;
- проценте скидки;
- применённых правилах.
Для разработчиков
ms3Discounts можно использовать не только через manager UI, но и как расширяемый движок скидок.
Архитектура позволяет добавлять собственные:
- условия;
- действия;
- провайдеры;
- интеграции с другими дополнениями.
Например, стороннее дополнение может добавить собственное условие или действие, не изменяя код ms3Discounts.
Современный интерфейс
Manager UI построен на VueTools + Vue 3 + PrimeVue 4 и использует общий стек MiniShop3.
Важно
ms3Discounts отвечает именно за скидки и правила их расчёта.
Промокоды, генерация кодов и управление их использованием не дублируются внутри компонента и могут работать через отдельное дополнение.
Примеры акций
Категория «Обувь» → -10%
Группа «Оптовики» → -15%
Категория «Чай» → от 10 000 ₽ → дополнительная скидка 5%
Каждую пятницу с 18:00 → -20%
Каждый второй товар → -30%
При покупке двух товаров → третий товар в подарок
ms3Discounts — единая система скидок для MiniShop3: визуальные правила, гибкие условия, несколько типов скидок, подарки, N-й товар и встроенная диагностика расчёта.
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[1.0.0-pl] - 2026-09-26
Fixed
ms3discountsGetDiscountas anmsProductsprepareSnippet: the snippet reads product fields from the nestedrowkey that pdoTools passes. Sale fields (sale_id,percent,base_price,discount,remains,date_end) now merge into product rows. ThemsProductsconfig no longer leaks into the row.- Install resolver: a drop-in already linked by a dev symlink is skipped with an info message instead of a copy error. The resolver replaces a symlink that points elsewhere with a file copy.
- Encryption resolver: the build script can install the package in the same PHP process. The resolver skips loading
EncryptedVehiclewhen the class is already declared, instead of failing with "Cannot redeclare class".
Added
- Discount rows in
ms3_discountsand targets inms3_discount_targets(Phinx). Actions: percent, fixed, fixed_price, nth, gift. - Policies: stackable, best, exclusive, fallback. Targets: product, category, vendor (include or exclude).
- Schedule fields:
date_start/date_end,time_start/time_end,weekdays,contexts. Flags:activation_required,show_in_catalog,show_in_product. - Manager CMP (Vue 3, PrimeVue): overview, list, filters, preview, option lookup from MiniShop3.
- Boot lexicon (
MgrLexicon) for the manager CMP. Vue reads strings through VueTools@vuetools/useLexicon. - Manager API at
/api/mgr/ms3discounts. Permissions:ms3discounts_view,ms3discounts_manage,ms3discounts_delete,ms3discounts_debug. Policyms3DiscountsManagerPolicy. - Cart plugin:
msOnAddToCart,msOnChangeInCart,msOnRemoveFromCart,msOnBeforeGetOrderCostrecalculate the MiniShop3 draft.msOnGetProductPricepreviews one product.msOnGetStatusCartsumsproperties.discount_costintototal_discount. - Gift line with
ms3discounts_gift. Line properties:original_price,discount_price,discount_cost,discount_percent,discounts[],ms3discounts_hash. - Storefront snippets:
ms3discounts,ms3discountsGetDiscount,ms3discountsBuyNow. Fenom chunks:tpl.ms3discounts.list,tpl.ms3discounts.get,tpl.ms3discounts.buynow.row. - System event
ms3discountsOnRegisterProvidersfor extra condition and action providers. - MiniShop3 drop-ins:
core/config/ms3.services.d/50-ms3discounts.phpandcore/config/ms3.routes.d/manager/50-ms3discounts.php. - Russian and English lexicon for the manager Vue UI.
- Phinx migration and transport package.
Notes
- Promocodes are not in this package.
- MiniShop3 cart events pass
controller, notdraft. The plugin reads the order throughcontroller->getDraft()and reloads it from the database before write. - The plugin does not write
cart['discounts']. It does not change delivery or payment. - Uninstall removes the drop-ins and keeps
ms3_discounts/ms3_discount_targets. - The manager UI build (
assets/.../vue-dist/) is not in git.make gateandmake buildrunnpm run build.


Последние обсуждения в сообществе MODX.pro