[msBonus] Бонусная система miniShop2
Начисление бонусов за покупки и дальнейшее их списание в счет оплаты новых заказов. На весь магазин устанавливается коэффициент начисления бонусов, например: 10 руб. или 20% от стоимости товара, так же каждому товару можно установить свой коэффициент.

В окне заказа отображаются начисления и списания.

При создании заказа бонусы (сумму которую решил потратить покупатель) списываются, списание попадает транзакцию (заготовка для истории начисление в личном кабинете). Бонусы начисляются при статусе заказа «оплачен». При отмене заказа начисленные бонусы списываются, а потраченные возвращаются, так же все логируется в транзакциях.
По дефолту при оплате заказа бонусами покупателю не будут начислены бонусы, в настройках компонента можно это отключить.
Вынес все максимально в один плагин для более удобной настройки под любой проект.

Установка
На странице оформления заказа
Бонус при регистрации
На странице товара доступен плэйсхолдер {$bonus} с кол-вом бонусов которые будут получены при покупке товара
modstore.pro/packages/integration/msbonus
Демо доступно на тестовом тарифе modhost.pro
Если есть предложения по функционалу — с радостью выслушаю.

В окне заказа отображаются начисления и списания.

При создании заказа бонусы (сумму которую решил потратить покупатель) списываются, списание попадает транзакцию (заготовка для истории начисление в личном кабинете). Бонусы начисляются при статусе заказа «оплачен». При отмене заказа начисленные бонусы списываются, а потраченные возвращаются, так же все логируется в транзакциях.
По дефолту при оплате заказа бонусами покупателю не будут начислены бонусы, в настройках компонента можно это отключить.
Вынес все максимально в один плагин для более удобной настройки под любой проект.

Установка
На странице оформления заказа
{var $msBonus = '!msBonus' | snippet}
{$msBonus.form} - форма для списания бонусов
{$msBonus.discount} - сколько бонусов "зарезервировано"
{$msBonus.accrual} - сколько бонусов будет начисленоБонус при регистрации
if($modx->event->name == 'OnUserSave' && $mode == 'new'){
$miniShop2 = $modx->getService('miniShop2');
$msCustomerProfile = $modx->getObject('msCustomerProfile', $user->id);
$msCustomerProfile->set('account', 5000);
$msCustomerProfile->save();
}На странице товара доступен плэйсхолдер {$bonus} с кол-вом бонусов которые будут получены при покупке товара
modstore.pro/packages/integration/msbonus
Демо доступно на тестовом тарифе modhost.pro
Если есть предложения по функционалу — с радостью выслушаю.
Комментарии: 43
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Возможно ли ограничить максимальное количество бонусов, которыми можно оплатить текущую покупку?
Имеется ввиду товар или корзина целиком?
Спасибо, Василий
и вопрос по работе с modx чатом, есть подвижки в этом компоненте?
(про демо протупил, прошу простить)
Потихоньку дописываю, хотел в первых числах декабря — не успел. Возможно к концу месяца будет прояснение.
А как быть с табличкой транзакций?
или
$msBonus = $modx->getService('msbonus', 'msBonus', $modx->getOption('core_path'). 'components/msbonus/model/msbonus/', array());
версия modx 2.5.2-pl
что делать?
хотел написать свою версию, вовремя наткнулся на этот пункт… Застолбили — так сделайте конфетку
Хотелось бы чтоб модуль учитывал скидку от msDiscount, типа максимальная скидка 20%, 5-10% делает через скидку, и остальное бонусами
Сейчас, из коробки, ничего не трогая, при попытке продать что-то используя бонусы, не переходит с формы продажи, вот что в консоле:
default.js:119 Uncaught TypeError: Cannot read property 'success' of null
at Object.success (default.js:119)
at i (jquery.min.js:2)
at Object.fireWith [as resolveWith] (jquery.min.js:2)
at y (jquery.min.js:4)
at XMLHttpRequest.c (jquery.min.js:4)
А вообще по таким вопросам есть тех.поддержка
вывел из беты, у меня на 10 магазинах проблем не возникло, тестовые сайты на modhost тоже проблем не вызвали. Добавил грид истории транзакий (сколько кто потратил и получил), + грид счетов пользователй (можно подкинуть бонусов с админки).
на сервере php 7.0.5, modx 2.5.2-pl, пробовал в опере 46.0.2597.57 и edge
правда пришлось чутка переписать под себя, например, мне не нужно, что бы бонусы списывались с товара который уже идет по акции, и еще что-то… уже и не припомню)
Скажите, пожалуйста, можно ли с помощью этого дополнения устанавливать бонусы в виде баллов. Чтобы это был не коэффициент, а конкретное число для каждого товара. Также можно ли отключить возможность оплаты этими баллами.
То есть, чтобы можно было прописать количество баллов к каждому товару и чтобы эти баллы копились у пользователя. Если так сделать нельзя с помощью данного дополнения, то может что-то сможете порекомендовать?
Заранее спасибо.
Бонусов: [[!GetUserBonuses]]
Снипет GetUserBonuses
<?php
$msCustomerProfile = $modx->getObject('msCustomerProfile', $modx->user->id);
return $msCustomerProfile->account;