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