Корзина пуста
Войти О магазине FAQ Авторы Хостинг Сообщество
Контроль скидок магазина
Войдите, чтобы оформить заказ.
Загрузите дополнение из админки вашего сайта. Как?
Система скидок для магазинов* на MODX Revolution

* Система скидок позволяет работать с любым магазином на MODX Revolution. Действующая версия содержит обработчики только для магазина [miniShop2].


Скидки на продукт

Приложения >> Контроль скидок >> Вкладка «Скидки на Продукт».


Панель управления скидками на продукт.

Доступно:


  • сортировка по группе пользователя
  • сортировка по классу опций продукта
  • поиск по описанию, классу, ключу, значению
Окно редактирования скидки на продукт.
  • группа пользователя
  • класс опции продукта
  • ключ опции продукта
  • значение опции продукта
  • сравнение
  • скидка продукта
  • условие
  • описание
Расчет скидки на продукт.

В зависимости от условий задания скидки, полученных опций продукта, для каждого продукта по группе пользователя
формируется массив скидок вида:


	[msProductData] = array(
	0 => 10,
	1 => 35,
	2 => 20
	)
	[msVendor] = array(
	0 => 16
	)
	[msProductOption] = array(
	0 => 50,
	1 => 10
	)

Где ключ массива — класс опции продукта, а значения — возможные скидки на продукт.


Для расчета скидки используется настройка product_option_expression вида:


	max~$msProductOption + max~$msProductData + max~$msVendor

в данном случае рузультат общей скидки по группе пользователя на продукт представляет из себя сумму максимальных
скидок. Записывается в переменную groups и для расчета итоговой скидки используется настройка
product_group_expression вида:


	max~$groups

Итоговая скидка на продукт равна максимальной скидке на продукт по группам пользователя.


Пример задания скидки на продукт.

Постановка на скидку оптовикам:


  • дать скидку на продукты бренда «adidas» 10%


    Создаем скидку с параметрами:


    [x] группа Оптовики


    [x] класс msVendor


    [x] ключ name


    [x] значение adidas


    [x] скидка 10%


    [x] сравнение (string) — Равно


  • дать скидку на все продукты нового поступления скидку 5%


    Создаем скидку с параметрами:


    [x] группа Оптовики


    [x] класс msProductData


    [x] ключ new


    [x] значение 1


    [x] скидка 5%


    [x] сравнение (integer) — Равно


  • дать скидку на все продукты стоимостью более «3 000 руб.» 10%


    Создаем скидку с параметрами:


    [x] группа Оптовики


    [x] класс msProductData


    [x] ключ price


    [x] значение 3000


    [x] скидка 10%


    [x] сравнение (float) — Больше


  • дать скидку на все продукты c цветом «белый» 5%


    Создаем скидку с параметрами:


    [x] группа Оптовики


    [x] класс msProductOption


    [x] ключ value


    [x] значение белый


    [x] скидка 5%


    [x] сравнение (string) — Равно


    [x] условие {«key»:«color»}


  • дать скидку на продукты категории «ботинки», «штиблеты» 100 у.е.


    Создаем скидку с параметрами:


    [x] группа Оптовики


    [x] класс modResource


    [x] ключ parent


    [x] значение [11,12] — где 11,12 id нужных нам категорий


    [x] скидка 100


    [x] сравнение (mixed) — Присутствует


Скидки на заказ

Приложения >> Контроль скидок >> Вкладка «Скидки на Заказ».


Панель управления скидками на заказ.

Доступно:


  • сортировка по группе пользователя
  • сортировка по классу опций заказа
  • поиск по описанию, классу, ключу, значению
Окно редактирования скидки на заказ.
  • группа пользователя
  • класс опции заказа
  • ключ опции заказа
  • значение опции заказа
  • сравнение
  • скидка заказа
  • условие
  • описание
Расчет скидки на заказ.

В зависимости от условий задания скидки, полученных опций заказа, для каждого заказа по группе пользователя
формируется массив скидок вида:


	[msSessionCart] = array(
	0 => 100,
	1 => 350,
	2 => 200
	)
	[msCustomerProfile] = array(
	0 => 160
	)
	[msOrder] = array(
	0 => 500,
	1 => 100
	)

Где ключ массива — класс опции заказа, а значения — возможные скидки на заказ.


Для расчета скидки используется настройка order_option_expression вида:


max~$msSessionCart + max~$msCustomerProfile + max~$msOrder

в данном случае рузультат общей скидки по группе пользователя на заказ представляет из себя сумму максимальных
скидок. Записывается в переменную groups и для расчета итоговой скидки используется настройка
order_group_expression вида:


max~$groups

Итоговая скидка на заказ равна максимальной скидке на заказ по группам пользователя.


Пример задания скидки на заказ.

Постановка на скидку оптовикам:


  • дать скидку на заказ при сумме в корзине больше «20 000 руб.» 10%


    Создаем скидку с параметрами:


    [x] группа Оптовики


    [x] класс msSessionCart


    [x] ключ total_cost


    [x] значение 20000


    [x] скидка 10%


    [x] сравнение (float) — Больше


  • дать скидку на заказ при кол-ве в корзине товаров больше «20 шт.» 10%


    Создаем скидку с параметрами:


    [x] группа Оптовики


    [x] класс msSessionCart


    [x] ключ total_count


    [x] значение 20


    [x] скидка 10%


    [x] сравнение (float) — Больше


  • дать скидку на заказ при наличии ранее покупок на сумму свыше «50 000 руб.» 20%


    Создаем скидку с параметрами:


    [x] группа Оптовики


    [x] класс msCustomerProfile


    [x] ключ spent


    [x] значение 50000


    [x] скидка 20%


    [x] сравнение (float) — Больше


  • дать скидку на заказ при наличии заказов оплаченных ранее через «Яндекс Кассу» 5%


    Создаем скидку с параметрами:


    [x] группа Оптовики


    [x] класс msOrder


    [x] ключ delivery


    [x] значение 2


    [x] скидка 5%


    [x] сравнение (integer) — Равно


    [x] условие {«status»:2}


Сравнение

Приложения >> Контроль скидок >> Вкладка «Сравнение».


Панель управления сравнениями опций.

Доступно:


  • поиск по описанию, названию
Окно редактирования сравнения опций.
  • имя сравнения
  • тип значений сравнения
  • выражения сравнения
  • переменные
  • описание
Расчет сравнения опций.

Для сравнения применяется заданное выражение. Доступные переменные:


  • c — значение полученной опции
  • v — значение заданное для сравнения

Сравнение истинно при результате вычисления отличного от нуля — результат вычисления скидки помещается в массив
скидок или же сравнение ложно — скидка не вычисляется.


При сравнении учитывается заданный тип данных, доступны string, integer, float.


Так же вы можете составить свое собственное сравнение с использованием дополнительных переменных заданных через
параметр переменные (json строка)*.


Операторы сравнения.

Доступные операторы:


  • + сложение
  • - вычитание
  • * умножение
  • / деление
  • = равно
  • != не равно
  • < меньше
  • > больше
  • in присутствует в массиве
  • !in не присутствует в массиве
  • min~ наименьшее значение
  • max~ наибольшее значение
  • sum~ сумма значений
  • shift~ первое значение
  • pop~ последнее значение
  • rand~ рандомное значение
Настройка

Системные настройки >> discontrol


Раздел «Основные» настройки.
  • product_classes классы продукта


    Список классов продукта через запятую.


    По умолчанию доступно modResource,msProductData,msVendor,msProductOption,msSessionCar


  • order_classes классы заказа


    Список классов заказ через запятую.


    По умолчанию доступно msCustomerProfile,msOrder,msSessionCart


Раздел «Скидка» настройки.
  • allow_zero_price разрешить нулевую стоимость продукта


    Разрешить нулевую стоимость продукта в результате скидки.


  • allow_zero_cost разрешить нулевую стоимость заказа


    Разрешить нулевую стоимость заказа в результате скидки.


  • product_option_expression выражение расчета скидки по опциям продукта


    Результат скидки будет помещен в массив groups.


    По умолчанию max~$msProductOption + max~$msProductData + max~$msVendor — сумма максимальных скидок.


  • product_group_expression выражение расчета скидки по группе пользователя


    Результат скидки является окончательным.


    По умолчанию max~$groups — максимальное значение из возможных.


  • order_option_expression выражение расчета скидки по опциям заказа


    Результат скидки будет помещен в массив groups.


    По умолчанию max~$msSessionCart + max~$msCustomerProfile + max~$msOrder — сумма максимальных скидок.


  • order_group_expression выражение расчета скидки по группе пользователя


    Результат скидки является окончательным.


    По умолчанию max~$groups — максимальное значение из возможных.


Проверка

Приложения >> Контроль скидок >> Вкладка «Скидки на Продукт» >> Вкладка «Проверка»


Приложения >> Контроль скидок >> Вкладка «Скидки на Продукт» >> Вкладка «Проверка»


Проверка скидок.

Для продуктов и заказав реализована панель проверки скидок.


Доступно:

  • выбор пользователя
  • выбор продукта
  • выбор магазина
  • переменные
	* выражение расчета скидки по опции

	* выражение расчета скидки по группе

	* дополнительные переменные

	Можно указать в виде json строки с указанием класса скидки, ключа и значения
Пример проверки скидки на продукт.

Проверить величину скидки незарегистрированного пользователя на «продукт 1»


Задаем следующие параметры:


[x] пользователь Нет


[x] продукт «продукт 1»


В окне расчета появится лог расчета скидки на продукт.


	[user:groups] [0]
	[discounts] [{"msProductData":["5"]}]
	[option:expression] max~$modResource + max~$msProductOption + max~$msProductData + max~$msVendor +
	max~$msSessionCart
	[group:discounts] [5]
	[group:expression] max~$groups
	[price:evaluate] 50
	[discount:evaluate] 5
	[newprice:evaluate] 45

Расшифровка лога расчета:


  • [user:groups] группы пользователя


    [user:groups] [0]
    		

    получена группа 0


  • [discounts] скидки продукта по опциям


    [discounts] [{"msProductData":["5"]}]

    для данного продукта действует скидка 5 у.е. по классу msProductData


  • [option:expression] выражение для расчета скидки по опциям


    [option:expression] max~$modResource + max~$msProductOption + max~$msProductData + max~$msVendor +
    			max~$msSessionCart
    		

    дефолтное значение для расчета скидки, равно сумме всех максимальных значений по опциям продукта


  • [group:discounts] скидки продукта по группам


    [group:discounts] [5]
    		

    получена скидка 5 у.е.


  • [group:expression] выражение для расчета скидки по группам


    [group:expression] max~$groups
    		

    максимальное значение из возможных


  • [price:evaluate] стоимость продукта


    price:evaluate] 50
    		

    получена стоимость продукта 50 у.е.


  • [discount:evaluate] скидка продукта


    [discount:evaluate] 5
    		

    получена скидка продукта 5 у.е.


  • [newprice:evaluate] новая стоимость продукта


    [newprice:evaluate] 45
    		

    получена новая стоимость продукта 45 у.е.


Пример проверки скидки на заказ.

Проверить величину скидки незарегистрированного пользователя на «заказ» при сумме покупок 5500 у.е.


Задаем следующие параметры:


[x] пользователь Нет


[x] магазин «miniShop2»


[x] переменные


	{"msSessionCart":{"total_cost":5500},"cost":5500}

В окне расчета появится лог расчета скидки на заказ.


	[user:groups] [0]
	[discounts] [{"msSessionCart":["60"]}]
	[option:expression] max~$msCustomerProfile + max~$msOrder + max~$msSessionCart
	[group:discounts] [60]
	[group:expression] max~$groups
	[cost:evaluate] 5500
	[discount:evaluate] 60
	[newcost:evaluate] 5440

Расшифровка лога расчета:


  • [user:groups] группы пользователя


    [user:groups] [0]
    		

    получена группа 0


  • [discounts] скидки продукта по опциям


    [discounts] [{"msSessionCart":["60"]}]
    		

    для данного заказа действует скидка 60 у.е. по классу msSessionCart


  • [option:expression] выражение для расчета скидки по опциям


    [option:expression] max~$msCustomerProfile + max~$msOrder + max~$msSessionCart
    
    		

    дефолтное значение для расчета скидки, равно сумме всех максимальных значений по опциям заказа


  • [group:discounts] скидки продукта по группам


    [group:discounts] [60]
    		

    получена скидка 60 у.е.


  • [group:expression] выражение для расчета скидки по группам


    [group:expression] max~$groups
    		

    максимальное значение из возможных


  • [cost:evaluate] 5500 стоимость заказа


    [cost:evaluate] 5500
    		

    получена стоимость заказа 5500 у.е.


  • [discount:evaluate] скидка заказа


    [discount:evaluate] 60
    		

    получена скидка заказа 60 у.е.


  • [newcost:evaluate] новая стоимость заказа


    [newcost:evaluate] 5440
    		

    получена новая стоимость заказа 5440 у.е.



Скидки — Сниппет dcDiscounts

Сниппет dcDiscounts для информирования покупателей о полученных и возможных скидках.


Параметры сниппета:
  • object — объект получения информации о скидке


    доступно msProduct и msOrder


    по умолчанию msOrder


  • class — класс получения информации о скидке


    по умолчанию msSessionCart


  • key — ключ получения информации о скидке


    по умолчанию total_cost


  • comparison — сравнение


    вывод либо полученных скидок (true), либо возможных (false)


    по умолчанию true


  • type — тип данных расчета


    доступно string, integer, float, mixed


    по умолчанию float


  • expression — выражение подсчета


    в сниппете доступны следующие переменные:


    * v - значение указанное в скидке
    
    			* c - значение полученное по указанному ключу
    
    			* p - значение стоимости (продукта/ заказа)
    
    			* d - значение скидки (продукта/ заказа)
    		

    по умолчанию $c — $v


  • tplRow — чанк вывода информации о скидке


    по умолчанию


    			@INLINE
    			<div class="[[+comparison]]">[[+data.discount]] - [[+data.calc]]</div>
    		
  • tplOuter — чанк обертки


    по умолчанию


    @INLINE
    			<div>[[%discontrol_[[+object]]]] [[%discontrol_comparison_[[+comparison]]]]:
    				<div class="discontrol-discounts [[+selector]]" data-propkey="[[+propkey]]">[[+output]]</div>
    			</div>
    		
  • tplEmpty — чанк вывода информации об отсутствии скидок


    по умолчанию


    @INLINE
    			<div>No discounts</div>
    		
  • frontendCss — Файл с css стилями для подключения на фронтенд


  • frontendJs — Файл с javascript для подключения на фронтенде


  • selector — Имя CSS класса, который будет использован как jQuery селектор для инициализации


  • limit — Лимит выборки результатов


  • showLog — Вывод информации о работе сниппета в лог MODX


Пример вызова сниппета.

Постановка на скидку:


  • скидка на продукт 4% при общей сумме заказа более 4000 у.е
  • скидка на продукт 7% при общей сумме заказа более 20000 у.е
Вывод информации о полученных скидках на странице продукта
	[[!dcDiscounts?
	&object=`msProduct`
	&comparison=`1`
	&expression=`$d`
	]]
Вывод информации о возможных скидках на странице продукта
	[[!dcDiscounts?
	&object=`msProduct`
	&comparison=`0`
	&expression=`$v - $c`
	]]


Задавайте вопросы по настройке и эксплуатации платных дополнений.
1.1.19-beta (20.12.2016)
==============
- Fix "create, update" discount processor
- Improvement "comparison" grid [js]

1.1.18-beta (15.12.2016)
==============
- Improvement "condition" [dcData]

1.1.17-beta (18.11.2016)
==============
- Fix "getPrice" method

1.1.16-beta (08.11.2016)
==============
- Add "number_format" setting
- Add "formatNumber" method

1.1.15-beta (08.11.2016)
==============
- Add "invokeEvent" method
- Add "dcOnBeforeGetData", "dcOnAfterGetData" event

1.1.14-beta (07.11.2016)
==============
- Add "arrayCondition" method
- Add dcdataminishop2mssessioncart" condition
- Add dcdataminishop2mssessionorder" condition
- Add dcdatamsproductmssessioncart" condition

1.1.13-beta (18.10.2016)
==============
- Add "discount_order_with_cost" setting

1.1.12-beta (17.10.2016)
==============
- Improvement "dcDataMsProductMsProductOption" class

1.1.11-beta (11.10.2016)
==============
- Fix "initialize Discontrol"

1.1.10-beta (07.10.2016)
==============
- Fix "combo"
- Improvement "modUser", "modUserProfile" class

1.1.9-beta (10.09.2016)
==============
- Add "modUser" class
- Add "modUserProfile" class
- Improvement "Math" class

1.1.8-beta (09.09.2016)
==============
- Improvement "Order" discount

1.1.7-beta (02.09.2016)
==============
- Add "msOptionPrice" compatibility with version > 2.0

1.1.6-beta (26.07.2016)
==============
- Change "tables" (value)
- Change "description"

1.1.5-beta (26.07.2016)
==============
- Improvement "discount" window

1.1.4-beta (22.07.2016)
==============
- Fix "format" discount
- Add "All" group

1.1.3-beta (21.07.2016)
==============
- Fix "loadClass"
- Add "customClass"
- Add "example" custom class

1.1.2-beta (20.07.2016)
==============
- Fix "dcProductDiscount" snippet
- Fix "remove" discount
- Add "copy" discount

1.1.1-beta (20.07.2016)
==============
- Add "dcProductDiscount" snippet

1.1.0-beta (19.07.2016)
==============
- Fix "tools" class
- Add miniShop2 compatibility with version > 2.4

1.0.12-beta (28.06.2016)
==============
- Add "price increase"

1.0.11-beta (08.06.2016)
==============
- Fix "check" discounts
- Fix "Math"
- Fix "dcDataMiniShop2MsCustomerProfile", "dcDataMiniShop2MsOrder" getData

1.0.10-beta (29.05.2016)
==============
- Improvement "dcDataMiniShop2MsSessionOrder" getData
- Improvement "default.js"

1.0.9-beta (26.05.2016)
==============
- Add "properties" lexicons
- Add "docs"
- Change "formatPrice"
- Change "dcDiscounts"
- Add "msSessionOrder" class
- Add "dcDataMiniShop2MsSessionOrder" getData

1.0.8-beta (25.05.2016)
==============
- Refactoring code
- Fix "check" data
- Fix "formatPrice"
- Fix "getPrice","getCost"
- Add "docs"

1.0.7-beta (24.05.2016)
==============
- Add "formatPrice"
- Add "recalculate miniShop2 cart"

1.0.6-beta (23.05.2016)
==============
- Add "dcDiscounts"

1.0.6-beta (22.05.2016)
==============
- Fix "check" data

1.0.5-beta (21.05.2016)
==============
- Add "in", "!in" operator
- Add getData "modResource"

1.0.4-beta (20.05.2016)
==============
- Reformat code

1.0.3-beta (19.05.2016)
==============
- Add "check" panel for orders

1.0.1-beta-1.0.2-beta (19.05.2016)
==============
- Add "check" panel for goods

1.0.0-beta
==============
- Initial
  1. Antey 22 июля 2016, 08:39 #
    Хороший компонент.
    Если сравнивать с конкурентом — здесь больше вариантов влияния на скидку.
    Чего не хватает:
    Дата начала/окончания.
    Группа: Все.
    1. shurikchel 24 ноября 2016, 11:51 #
      Мне очень понравился компонент. Все очень просто. Разбираться особо не пришлось, поставил и настроил скидку моментально. Спасибо разработчику. Отличные примеры в описании, по ним все заработало как надо.
      Войдите на сайт, чтобы прокомментировать.
      График скачиваний дополнения за последние 30 дней. Серым фоном отмечены выходные.
      Название
      Discontrol
      Версия
      1.1.19-beta
      Дата выпуска
      20.12.2016
      Автор выпуска
      Володя Володин
      Цена
      990 a
      Загрузок
      89
      Версия MODX
      от 2.4
      Теги
      Другие дополнения автора
      msJDE, modTelegram, msPec, modClassVar, msKit, UserAvatar, ModPNotify, DaData, GeoLocation, mspTinkoff, msPointsIssue, QuickView, mspPayin, ExportPage, msListOrders, UserSignature, msOptionsColor, mspIM, UserFiles, msStatOrders, VirtualPage, msOptionsPrice2, msBatchEditor, mscZone, mspPayAnyWay, mspYaCassa, CurrencyRate, PayAndSee, msNewPrice, mspUP, mscDistance, msDellin2, msSetInCart, msMerchant, msBuyNow, msFavorites
      Поделиться