Выдано 122938 лицензий
4

Бонусы на товары

Эффективным способом стимулирования и привлечения клиентов является предоставление им бонусов. Бонусные программы активно используются оффлайн-магазинами, мотивируя к постоянным взаимоотношениям.

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

Для добавления бонусов в основном меню магазина выберите СкидкиБонусы.

Список бонусов

Установка бонуса для товара производится через столбец Скидки в списке товаров, затем выберите Бонус → Добавить.

Добавление работы с бонусами в XSL-шаблоны и типовые динамические страницы

В код XSL-шаблона товара и списка товаров добавьте вывод информации о доступных бонусах:

<!-- Бонусы для товара -->
<xsl:if test="count(shop_bonuses/shop_bonus)">
    <div class="shop_property product-bonuses">
        +<xsl:value-of select="shop_bonuses/total" /> бонусов
    </div>
</xsl:if>

В XSL-шаблон МагазинПлатежнаяСистема добавьте флажок для возможности частичной оплаты с лицевого счета:

<table class="shop_cart">
    <tr class="total">
        <th>Форма оплаты</th>
        <th>Описание</th>
    </tr>
    <xsl:apply-templates select="shop_payment_system"/>
</table>

<!-- Добавить -->
<xsl:if test="siteuser/transaction_amount/node() and siteuser/transaction_amount &gt; 0">
    <p>
        <label><input type="checkbox" name="partial_payment_by_personal_account" /> Частично оплатить с лицевого счета, на счету <strong><xsl:value-of select="siteuser/transaction_amount" /><xsl:text> </xsl:text><xsl:value-of select="shop_currency/name" /></strong></label>
    </p>
</xsl:if>
<!-- /Добавить -->

<input name="step" value="4" type="hidden" />
<input value="Далее →" type="submit" class="button" />

В типовую динамическую страницу корзины в 4-й шаг добавьте обработку возможности частичной оплаты с лицевого счета:

// Окончание оформления заказа
case 4:
    // Оплата бонусами с лицевого счета
    if (Core_Array::getPost('partial_payment_by_personal_account', 0))
    {
        $_SESSION['hostcmsOrder']['partial_payment_by_personal_account'] = TRUE;
    }

Ограничение применения бонусов

По умолчанию пользователь может оплатить 100% суммы заказа средствами на лицевом счете. В случае, если необходимо ограничить применение бонусов, то вы можете в обработчиках платежных систем задать свойство _bonusMultiplier, который может принимать значение от 0 до 1, где значение 0 - не принимать, 1 - применять 100%, 0.5 - применять 50% и так далее.

class Shop_Payment_System_HandlerXXX extends Shop_Payment_System_Handler
{
	// Разрешить только 30% оплачивать при частичной оплате с лицевого счета
	protected $_bonusMultiplier = 0.3;
}

* _bonusMultiplier введен с верии 6.8.6

Не нашли ответ на свой вопрос в документации? Направьте обращение в или онлайн чат.

Комментарии

  • Редакция

    Какая редакция должно быть?

    14.11.2018 01:43:42 felixbek

    Без темы

    Бизнес или Корпорация.

    14.11.2018 09:20:00 alexander.egorov
  • если средств на счету не хватает.

    Раз появилась такая возможность, то как сделать тогда так, чтобы если средств на счету для оплаты заказа не хватает, то убрать вообще оплату со счёта?
    То есть логика будет наверно такой:
    1) если нет средств вообще на счету - то и нет возможности выбрать для оплаты лицевой счёт, 2) если есть но не хватает - то выбираем любой способ оплаты + возможно частично оплатить с лиц сч. (но способа оплаты с лиц счёта нет),
    3)Если средств достаточно для оплаты целиком заказа - то тогда никакой частичной оплаты а просто плат система с лиц счёта

    13.04.2018 12:45:55 kvasiliy