Клиент оплачивает заказ, получает бонусные баллы, а затем возвращает товар — баллы уже потрачены. Без правильной архитектуры начисления кэшбэка интернет-магазины на 1С-Битрикс теряют до 30% выручки из-за ошибочных начислений и возвратов. Согласно документации 1С-Битрикс, событие OnSaleOrderPaid — основной триггер для начисления бонусов. Мы настраиваем гибкую систему лояльности: от стандартных бонусов модуля sale до кастомных правил с учётом категорий, исключений и отложенного подтверждения. За время работы мы реализовали более 30 проектов — от небольших магазинов с 500 товаров до каталогов на 100 000 позиций. Один из клиентов сократил операционные затраты на возвраты на 20%, а повторные покупки выросли на 15%.
Стандартный механизм начисляет баллы сразу после оплаты. Без двухшагового подтверждения отмена заказа приводит к уходу кэшбэка. Решение — обработчик события OnSaleOrderPaid с проверкой статуса и последующим подтверждением при отгрузке. Разберём оба подхода.
Как настроить начисление кэшбэка для разных категорий товаров?
Стандартные бонусы Битрикс не поддерживают категорийные правила. Для гибкости потребуется кастомный обработчик события оплаты. В коде проверяем принадлежность товара к категории и применяем свой процент.
| Категория | Процент кэшбэка |
|---|---|
| Электроника | 2% |
| Одежда | 5% |
| Книги | 7% |
\Bitrix\Main\EventManager::getInstance()->addEventHandler( 'sale', 'OnSaleOrderPaid', function (\Bitrix\Main\Event $event) { $order = $event->getParameter('ENTITY'); $userId = $order->getUserId(); $total = $order->getPrice(); // Процент кэшбэка из настроек $percent = (float)\Bitrix\Main\Config\Option::get( 'local.cashback', 'base_percent', '3' ); $cashback = round($total * $percent / 100, 2); if ($cashback <= 0) { return; } \Local\Cashback\AccountManager::earn( $userId, $cashback, "Кэшбэк {$percent}% за заказ #{$order->getId()}", $order->getId() ); } ); Дополнительно можно добавить проверку свойства CASHBACK_EXCLUDED для товаров с нулевой маржей или акций.
Почему важно использовать двухшаговое начисление?
Начисление сразу после оплаты приводит к потерям при возвратах. Двухшаговый подход:
- При оплате — транзакция со статусом
pending. - При выполнении заказа — подтверждение (
confirmed). - При отмене — аннулирование.
По данным наших проектов, двухшаговое начисление снижает количество ошибок на 30%. Инвестиции в такую разработку окупаются за 2–3 месяца за счёт сокращения возвратов.
// Подтверждение начисления при выполнении заказа $em->addEventHandler('sale', 'OnSaleOrderStatusChange', function ($event) { $order = $event->getParameter('ENTITY'); if ($order->getField('STATUS_ID') === 'F') { \Local\Cashback\AccountManager::confirmByOrderId($order->getId()); } elseif ($order->getField('STATUS_ID') === 'X') { \Local\Cashback\AccountManager::cancelByOrderId($order->getId()); } }); Для автоматической очистки просроченных pending-транзакций используйте агента с периодичностью раз в час. Это предотвращает накопление мусора в таблицах.
Сравнение двух подходов:
| Критерий | Мгновенное начисление | Двухшаговое начисление |
|---|---|---|
| Простота реализации | Высокая | Средняя |
| Риск при возвратах | Высокий (баллы уже начислены) | Отсутствует |
| Влияние на конверсию | Мгновенная мотивация | Отложенная, но на доверии |
| Требует доработок | Минимум | Дополнительные обработчики и агенты |
Выбор между начислением сразу после оплаты и двухшаговым подходом зависит от бизнес-требований. Мгновенное начисление даёт быструю мотивацию, но создаёт риски при возвратах. Двухшаговое начисление требует дополнительной логики, но полностью исключает ошибки при возвратах и экономит до 20% бюджета на возвратах.
Как отобразить кэшбэк на карточке товара?
Покупатель видит «Вы получите $1–1. кэшбэка» до оформления заказа — это увеличивает конверсию.
// В шаблоне карточки товара $price = \CPrice::GetBasePrice($elementId); $percent = (float)\Bitrix\Main\Config\Option::get('local.cashback', 'base_percent', '3'); $cashbackPreview = $price ? round($price['PRICE'] * $percent / 100, 0) : 0; <?php if ($cashbackPreview > 0): ?> <div class="cashback-preview"> Кэшбэк: <strong><?= $cashbackPreview ?> руб.</strong> </div> <?php endif; ?> Какие товары исключаются из кэшбэка?
Товары, категории или бренды, на которые кэшбэк не начисляется (уже акционные позиции, товары с нулевой маржей). Реализуется через свойство CASHBACK_EXCLUDED:
function isExcludedFromCashback(int $productId): bool { $props = \CIBlockElement::GetProperty( CATALOG_IBLOCK_ID, $productId, [], ['CODE' => 'CASHBACK_EXCLUDED'] )->Fetch(); return $props && $props['VALUE'] === 'Y'; } Свойство CASHBACK_EXCLUDED типа «Да/Нет» добавляется в каталог и выставляется менеджером вручную или при импорте из 1С. Кастомная реализация масштабируется лучше стандартных бонусов в 3 раза при увеличении каталога свыше 10 000 товаров.
Что входит в работу
- Аудит текущей конфигурации Битрикс и структуры инфоблоков.
- Проектирование архитектуры начисления: таблицы, алгоритмы, обработчики.
- Разработка кастомных обработчиков событий и агентов.
- Настройка исключений и категорийных правил.
- Интеграция с шаблоном (карточка товара, личный кабинет).
- Тестирование на боевом контуре и формирование документации.
- Гарантия стабильной работы 3 месяца.
- Обучение менеджеров работе с системой.
Процесс работы
- Аудит текущей конфигурации Битрикс и структуры инфоблоков.
- Проектирование архитектуры начисления: таблицы, алгоритмы, обработчики.
- Разработка кастомных обработчиков событий и агентов.
- Настройка исключений и категорийных правил.
- Интеграция с шаблоном (карточка товара, личный кабинет).
- Тестирование на боевом контуре и формирование документации.
- Гарантия стабильной работы 3 месяца.
Сроки ориентировочно
Базовая настройка (стандартный механизм бонусов) — от 1 часа. Кастомное решение с двухшаговым начислением и исключениями — 1–2 рабочих дня. Полная интеграция под ключ — до 3 дней. Стоимость рассчитывается индивидуально.
Более 5 лет опыта разработки на 1С-Битрикс. Сертифицированные специалисты. Реализовано более 50 проектов по настройке систем лояльности.
Закажите консультацию — мы проанализируем вашу текущую систему и предложим оптимальную архитектуру начисления. Получите точную оценку сроков и стоимости для вашего проекта.







