Не нашли ответы на свои вопросы в наших публикациях? Задайте вопрос в службу техподдержки!
В модуле реализована возможность интеграции без изменения шаблонов сайта, для этого необходимо активировать настройки "Сквозная интеграция в шаблон сайта". Пример вы можете увидеть в видео "Быстрый старт"
- Получение суммы бонусов за товар
- Пример интеграции в шаблон компонента catalog.element
- Расчет бонусов для списка товаров.
- Бонусы за товары в корзине
- Баланс пользователя и бонусы в заказах
Получение суммы бонусов за товар
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:

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

3/ С версии 3.1.11 есть расширенный метод получения бонусов за заказы пользователя:
array \Acrit\Bonus\Order::getUserOrdersBonusFull($userId);
array \Acrit\Bonus\Order::getUserTransactionsAll($userId);
Данный метод используется в компоненте "Бонусный счет пользователя (Полная история)"
(acrit.bonus:bonus.account.full) со стандартным шаблоном вывода: 
array \Acrit\Bonus\Core::getUserTransactions($userId);

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