[msBonus] Бонусная система miniShop2

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



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



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

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




Установка
На странице оформления заказа
{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

Если есть предложения по функционалу — с радостью выслушаю.
but1head
08 декабря 2016, 12:27
modx.pro
3
7 769
+12

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

lexikon
08 декабря 2016, 14:29
1
0
где брать дополнение?
Возможно ли ограничить максимальное количество бонусов, которыми можно оплатить текущую покупку?
    but1head
    08 декабря 2016, 15:08
    +1
    На модерации в модстор.
    Имеется ввиду товар или корзина целиком?
      lexikon
      08 декабря 2016, 15:46
      0
      корзина целиком… к примеру: заказ на 2000 рублей, на бонусном счете 1000 руб, необходимо чтобы бонусами можно было оплатить только максимум 10% от суммы заказа
        but1head
        08 декабря 2016, 17:02
        +1
        Добавил
      but1head
      11 декабря 2016, 18:33
      0
      Демо доступно на тестовом тарифе modhost.pro
      Спасибо, Василий
        Здоров Александр
        11 декабря 2016, 18:50
        0
        ссылку сделайте не на главную страницу хостинга, а на демо площадку
        и вопрос по работе с modx чатом, есть подвижки в этом компоненте?
          but1head
          11 декабря 2016, 18:54
          0
          Я в раздумьях выкладывать версию диалогов личных или допиливать и групповые, а с ними затык. А затык в проектировании бд, в частности показ сообщений с момента присоедения в чат до выхода из чата. И теперь работает через собственые сокеты на ноде, инструкция под modhost будет.
            Здоров Александр
            11 декабря 2016, 19:00
            0
            от себя можно вернуть пакет с личными (как тех поддержка и онлайн чат), компонент вроде платный был, всплывают некоторые неточности, походу от, пусть и небольшой, но монетизации появится больше времени для группового чата (а вообще спросить у потенциальной аудитории, насколько эта функция критична)
            (про демо протупил, прошу простить)
              but1head
              11 декабря 2016, 19:05
              0
              Так поддержка осуществляется, если есть проблема — решу. Возвращать в магазин не хочу т.к. я уже все переписал, и править баги не очень хочется, так новая версия только оттянется, а 390р мне роли не сыграют на разработку новой версии.
              Потихоньку дописываю, хотел в первых числах декабря — не успел. Возможно к концу месяца будет прояснение.
        Здоров Александр
        11 декабря 2016, 18:59
        0
        del.
          Алексей
          07 января 2017, 14:28
          0
          Есть ли возможность начислить бонусы за уже оплаченные заказы? (до установки компонента msBonus)
            but1head
            07 января 2017, 16:43
            0
            Написать плагин, в таблице msCustomerProfile (если не ошибаюсь) добавить в поле account сумму бонусов.
              Алексей
              08 января 2017, 20:43
              0
              т.е. по сути msBonus использует ту же табличку что и msprofile?
              Написать плагин, в таблице msCustomerProfile (если не ошибаюсь) добавить в поле account сумму бонусов.
              А как быть с табличкой транзакций?
                but1head
                08 января 2017, 20:49
                0
                Да, как и msProfile (через него можно оплачивать товары в магазине вроде бы, но логика под бонусы не подходит).

                $order - объект
                $type - accrual(начисление) \ writeoff(списание)
                $amount - кол-во бонусов
                
                $msBonus->transaction($order, $type, $amount);
                или

                $transaction = $this->modx->newObject('msBonusTransaction', array(
                            'order_id' => $order->id,
                            'user_id' => $order->user_id,
                            'amount' => $amount,
                            'type' => $type,
                            'createdon' => date("Y-m-d H:i:s")
                        )); 
                $transaction-save();
            Андрей Коробков
            10 января 2017, 17:08
            0
            Здравствуйте! Установил msBonus — отвалилось редактирование товара — вылетает с HTTP ERROR 500. Конкретно из-за плагина msBonus на событие msOnManagerCustomCssJs, строка:
            $msBonus = $modx->getService('msbonus', 'msBonus', $modx->getOption('core_path'). 'components/msbonus/model/msbonus/', array());
            версия modx 2.5.2-pl
            что делать?
              but1head
              10 января 2017, 18:10
              0
              В поддержке пришлите доступы
              Алексей
              13 января 2017, 13:20
              0
              Настройка msbonus_writeoff («Разрешить оплату заказа бонусами») позволяет выбрать только «да» и «нет» — нельзя указать процент, как в описании:
              Число или % от суммы заказа
                but1head
                13 января 2017, 13:56
                0
                Неправильный перевод, в след версии обновлю, используйте msbonus_writeoff_max (максимальная сумма оплаты бонусами)

                Андрей Коробков
                06 февраля 2017, 21:18
                0
                Вы им вообще занимаетесь? Писал о косяках почти месяц назад, до сих пор ничего не исправлено. Очень жаль, что политика modstore
                Функциональные возможности присланного дополнения не должны повторять функциональные возможности дополнений, размещенных в Магазине
                хотел написать свою версию, вовремя наткнулся на этот пункт… Застолбили — так сделайте конфетку
                  Это сообщение было удалено
                    Это сообщение было удалено
                      Это сообщение было удалено
                        Это сообщение было удалено
                          Это сообщение было удалено
                            Это сообщение было удалено
                              Это сообщение было удалено
                    Evgeny
                    23 мая 2017, 15:14
                    0
                    Чот не пойму как в кабинете посмотреть текущий баланс клиента

                    Хотелось бы чтоб модуль учитывал скидку от 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)
                    

                      but1head
                      23 мая 2017, 15:17
                      -1
                      Компонент не работает с другими компонентами (ибо зачем), в настройках можно указать максимальный % \ число оплаты заказы, отключить оплату доставки и %\число начисления бонусов за заказ или каждый товар.

                      А вообще по таким вопросам есть тех.поддержка
                      but1head
                      17 июня 2017, 06:51
                      +1
                      1.0.3-pl
                      вывел из беты, у меня на 10 магазинах проблем не возникло, тестовые сайты на modhost тоже проблем не вызвали. Добавил грид истории транзакий (сколько кто потратил и получил), + грид счетов пользователй (можно подкинуть бонусов с админки).

                        Андрей Коробков
                        17 августа 2017, 02:30
                        0


                        на сервере php 7.0.5, modx 2.5.2-pl, пробовал в опере 46.0.2597.57 и edge
                          Михаил
                          16 ноября 2017, 12:00
                          +1
                          Работает ли ТП по этому дополнению? Установил msBonus. Не могу достучаться до ТП.
                            Михаил
                            02 января 2018, 12:34
                            0
                            У кого-нибудь вообще работает это компонент на реальном магазине??
                              Klike
                              02 января 2018, 17:35
                              +1
                              Михаил, в разделе Работа отключены комментарии, и в вашем профиле запрещено отправлять сообщение на вашу почту. Напишите мне на почту, в профиле, помогу с бонусной системой.
                                Evgeny
                                22 января 2018, 20:36
                                0
                                У меня работает, покупатели активно пользуются бонусами
                                правда пришлось чутка переписать под себя, например, мне не нужно, что бы бонусы списывались с товара который уже идет по акции, и еще что-то… уже и не припомню)
                                  Stan Ezersky
                                  18 мая 2018, 11:25
                                  0
                                  А в личный кабинет выводили количество бонусов, не поделитесь?
                                Константин
                                05 марта 2018, 16:32
                                0
                                Добрый день, друзья.
                                Скажите, пожалуйста, можно ли с помощью этого дополнения устанавливать бонусы в виде баллов. Чтобы это был не коэффициент, а конкретное число для каждого товара. Также можно ли отключить возможность оплаты этими баллами.
                                То есть, чтобы можно было прописать количество баллов к каждому товару и чтобы эти баллы копились у пользователя. Если так сделать нельзя с помощью данного дополнения, то может что-то сможете порекомендовать?

                                Заранее спасибо.
                                  Stan Ezersky
                                  18 мая 2018, 11:08
                                  0
                                  Народ, а вывод баланса никто не подскажет?
                                    Evgeny
                                    21 мая 2018, 09:12
                                    2
                                    +1
                                    я так вывожу:

                                    Бонусов: [[!GetUserBonuses]]

                                    Снипет GetUserBonuses
                                    <?php
                                    $msCustomerProfile = $modx->getObject('msCustomerProfile', $modx->user->id);
                                    return $msCustomerProfile->account;
                                    Александр
                                    21 марта 2019, 19:56
                                    0
                                    Добрый, а можно ли как-то сделать, что бы списание бонусов изменяло сразу и итоговую сумму заказа? просто при оплате картой передается значение итоговой суммы, а бонусы как бы пролетают мимо.
                                      Анастасия
                                      19 апреля 2019, 15:21
                                      0
                                      А как можно скачать/купить дополнение? На modstore его нет, ссылка переходит просто в каталог дополнений
                                        Глеб
                                        22 мая 2019, 18:42
                                        0
                                        Дополнение больше не актуально?
                                          Сергей
                                          05 июня 2019, 11:57
                                          0
                                          Автор возобновите работу компонента или добавьте его на бесплатно основе, что бы многие могли его допиливать. Будем не вероятно признательны.
                                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                                            43