+7 495 008 8452 пн.-пт. 10:00 – 17:00

Не нашли ответы на свои вопросы в наших публикациях? Задайте вопрос в службу техподдержки!


В модуле реализована возможность интеграции без изменения шаблонов сайта, для этого необходимо активировать настройки "Сквозная интеграция в шаблон сайта". Пример вы можете увидеть в видео "Быстрый старт"


Получение суммы бонусов за товар

if (\Bitrix\Main\Loader::includeModule('acrit.bonus')) {
   \Acrit\Bonus\Core::getProductBonus($elementId, $iblockId = false, $count = 1, $arPrice = []);
}
\Acrit\Bonus\Core::getProductBonus($elementId);
$elementId Идентификатор товара. Обязательный параметр

Необязательные параметры
$iblockId Идентификатор инфоблока товара.
$count количество товаров для расчета бонусов
$price массив с ценой товара, например шаблон catalog.element, массив $actualItem['ITEM_PRICES'][ $actualItem['ITEM_PRICE_SELECTED'] ]

$arResult['BONUS'] = \Acrit\Bonus\Core::getProductBonus($arResult['ID'], $arResult['IBLOCK_ID'], $count, $arPrice);
if ($arResult['BONUS']['VALUE']) {
    echo 'Бонус: ' . $arResult['BONUS']['VALUE_FORMAT'] . '';
}


Пример интеграции в шаблон компонента catalog.element

в шаблоне находим код

// выбранный для показа тип цены в каталоге, именно относительно него и рассчитываем бонус
$price = $actualItem['ITEM_PRICES'][ $actualItem['ITEM_PRICE_SELECTED'] ];
   и после него размещаем код
if(\Bitrix\Main\Loader::includeModule('acrit.bonus')){
    $arResult['BONUS'] = \Acrit\Bonus\Core::getProductBonus($actualItem['ID'], $actualItem['IBLOCK_ID'], 1, $price);
}

Выводим бонус в необходимом месте

echo 'Бонус за покупку товара: ' . $arResult['BONUS']['VALUE_FORMAT']

Еще один пример интеграции в bitrix:catalog.element. В шаблоне компонента в самом верху выбираем бонусы на товар, а ниже выводим:

$bonusHtml = '';
if(\Bitrix\Main\Loader::includeModule('acrit.bonus')){
	$price = $arResult['ITEM_PRICES'][ $arResult['ITEM_PRICE_SELECTED'] ];
	$arResult['BONUS'] = \Acrit\Bonus\Core::getProductBonus($arResult['ID'], $arResult['IBLOCK_ID'], 1, $price);
	if (! empty($arResult['BONUS']['VALUE_FORMAT'])) {
		$bonusHtml = '<div class="detail-good-bonus">Бонус за товар: <span>' . $arResult['BONUS']['VALUE_FORMAT'] . '</span></div>';
	}
}

// ниже выводим, где это нужно в шаблоне карточки товара
echo $bonusHtml;

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

В result_modifier.php

if (\Bitrix\Main\Loader::includeModule('acrit.bonus')) {
    \Acrit\Bonus\Core::getProductsBonus($arResult);
}

В шаблоне ...\catalog.item\.default\card\template.php Бонус:

echo $item['BONUS']['VALUE_FORMAT']


Бонусы за товары в корзине

if (\Bitrix\Main\Loader::includeModule('acrit.bonus')) {
    $bonus = \Acrit\Bonus\Core::getCartOrderBonus('CART');
    if (! empty($bonus['VALUE_FORMAT'])) {
        echo "Ваш бонус: ".$bonus['VALUE_FORMAT'];
    }
}


Баланс пользователя и бонусы в заказах (предназначены для публичной части сайта)

1/ Баланс пользовательского бонусного счета с учетом валюты:

\Acrit\Bonus\Core::getUserBalanceFormat($userId, $accountId = false);
$accountId - это бонусный счет текущего сайта (\Acrit\Bonus\Core::getAccountId())

2/ Возвращаем список бонусов за заказы у пользователя $userId.

array \Acrit\Bonus\Order::getUserOrdersBonus($userId);
Ключи массива это orderId:

2023-02-03_00-48-12.png

Есть еще метод getUserOrdersBonusFormat, он аналогичен getUserOrdersBonus только бонус с учетом валюты:
array \Acrit\Bonus\Order::getUserOrdersBonusFormat($userId);
2023-02-03_00-51-56.png

3/ С версии 3.1.11 есть расширенный метод получения бонусов за заказы пользователя:

array \Acrit\Bonus\Order::getUserOrdersBonusFull($userId);

Данный метод используется в компоненте bonus.account (Бонусный счет пользователя)

2023-02-03_00-57-14.png

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

array \Acrit\Bonus\Order::getUserTransactionsAll($userId);

Данный метод используется в компоненте "Бонусный счет пользователя (Полная история)"
Пример работы компонента (acrit.bonus:bonus.account.full) со стандартным шаблоном вывода:

2023-06-15_19-36-54.png

4/ Для того, чтобы получить список всех транзакций на счете пользователя (полную историю списаний и начислений бонусов для пользователя) можно использовать метод (доступен с версии 3.1.34):

array \Acrit\Bonus\Core::getUserTransactions($userId);

2023-02-03_01-02-29.png



Если у вас есть предложения по улучшению API модуля бонусов - напишите нам в тех.поддержку одним из удобных вам способов. 
Ценные идеи мы с удовольствием добавим в модуль.



Назад в раздел



Часто задаваемые вопросы по модулям экспорта

Видео плейлист по настройке модулей экспорта