Разработка кастомной кэшбэк-системы на 1С-Битрикс

Разработка кастомной кэшбэк-системы на 1С-Битрикс — задача, которая возникает, когда стандартные бонусные баллы не покрывают потребности бизнеса. Типичный сценарий: интернет-магазин с 50 000 товаров, клиенты просят начислять кэшбэк не просто процентом на весь чек, а по категориям — 5% на смартфоны,
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Разработка кастомной кэшбэк-системы на 1С-Битрикс
Средний
~1-2 недели

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1458
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    1019
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    761
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    880
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    804
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1163

Разработка кастомной кэшбэк-системы на 1С-Битрикс — задача, которая возникает, когда стандартные бонусные баллы не покрывают потребности бизнеса. Типичный сценарий: интернет-магазин с 50 000 товаров, клиенты просят начислять кэшбэк не просто процентом на весь чек, а по категориям — 5% на смартфоны, 3% на аксессуары и 1% на остальное. Встроенный модуль sale не умеет ни разных процентов, ни сгорания баллов, ни детальной истории транзакций. Мы построили решение, которое закрывает все эти пробелы. Под капотом — кастомные таблицы, события и агенты. Расскажем, как это устроено и с какими граблями столкнулись на практике. Наш опыт: более 50 внедрений, средний рост повторных покупок — 25%. При среднем чеке $27–39. это приносит дополнительно $7–10. с каждого повторного заказа. Если вам нужна разработка кэшбэк-системы, которая действительно работает, начните с анализа ваших правил лояльности. Закажите разработку кэшбэк-системы под ваши задачи.

Почему стандартный модуль Битрикс не подходит для кэшбэк-системы?

Встроенный модуль sale начисляет баллы фиксированным процентом от всей суммы заказа. Нет истории по начислениям, срокам сгорания, правилам по категориям. Для полноценной лояльности с кэшбэком нужна своя схема. Мы используем кастомные таблицы (см. ниже) и обработчики событий. Бонусные баллы 1С-Битрикс не покрывают кастомные правила. Кастомная система в 4 раза гибче стандартной: вы можете задать любой процент для категории, бренда или отдельного товара.

Как работает кастомная кэшбэк-система на 1С-Битрикс?

Архитектура хранения данных — разработка кастомной кэшбэк

Кэшбэк — отдельная сущность, не тождественная «бонусным баллам». Мы создаём три таблицы: аккаунт пользователя, история транзакций и правила начисления. Вот ключевые DDL:

CREATE TABLE b_cashback_account ( ID INT AUTO_INCREMENT PRIMARY KEY, USER_ID INT NOT NULL UNIQUE, BALANCE DECIMAL(10,2) NOT NULL DEFAULT 0.00, TOTAL_EARNED DECIMAL(10,2) NOT NULL DEFAULT 0.00, TOTAL_SPENT DECIMAL(10,2) NOT NULL DEFAULT 0.00, UPDATED_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, INDEX idx_user (USER_ID) ); CREATE TABLE b_cashback_transaction ( ID INT AUTO_INCREMENT PRIMARY KEY, USER_ID INT NOT NULL, ORDER_ID INT NULL, TYPE ENUM('earn', 'spend', 'expire', 'adjust') NOT NULL, AMOUNT DECIMAL(10,2) NOT NULL, BALANCE_AFTER DECIMAL(10,2) NOT NULL, DESCRIPTION VARCHAR(500) NOT NULL DEFAULT '', STATUS ENUM('pending', 'confirmed', 'cancelled') NOT NULL DEFAULT 'pending', EXPIRES_AT DATE NULL, CREATED_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP, INDEX idx_user_type (USER_ID, TYPE), INDEX idx_order (ORDER_ID), INDEX idx_expires (EXPIRES_AT, STATUS) ); CREATE TABLE b_cashback_rule ( ID INT AUTO_INCREMENT PRIMARY KEY, NAME VARCHAR(255) NOT NULL, CONDITION_TYPE ENUM('category', 'brand', 'product', 'order_total', 'all') NOT NULL, CONDITION_VALUE VARCHAR(1000) NULL, CASHBACK_PERCENT DECIMAL(5,2) NOT NULL, MIN_ORDER_AMOUNT DECIMAL(10,2) NOT NULL DEFAULT 0.00, ACTIVE CHAR(1) NOT NULL DEFAULT 'Y', SORT INT NOT NULL DEFAULT 100, DATE_FROM DATE NULL, DATE_TO DATE NULL, INDEX idx_active_sort (ACTIVE, SORT) ); 

Расчёт процента кэшбэка для товаров в корзине

Правила применяются по приоритету (SORT). Для каждой позиции корзины ищем подходящее правило. Вот сокращённый алгоритм на PHP:

class RuleCalculator { public static function calculateForOrder(\Bitrix\Sale\Order $order): array { $result = []; $basket = $order->getBasket(); $activeRules = self::getActiveRules(); foreach ($basket as $basketItem) { $productId = $basketItem->getProductId(); $price = $basketItem->getFinalPrice(); $qty = $basketItem->getQuantity(); $productMeta = self::getProductMeta($productId); $matchedRule = self::findRule($productMeta, $order->getPrice(), $activeRules); if ($matchedRule) { $cashbackAmount = round($price * $qty * $matchedRule['CASHBACK_PERCENT'] / 100, 2); $result[] = [ 'PRODUCT_ID' => $productId, 'PRODUCT_NAME' => $basketItem->getField('NAME'), 'RULE_ID' => $matchedRule['ID'], 'RULE_NAME' => $matchedRule['NAME'], 'PERCENT' => $matchedRule['CASHBACK_PERCENT'], 'CASHBACK_AMOUNT' => $cashbackAmount, ]; } } return $result; } } 

Как происходит начисление и сгорание кэшбэка?

Кэшбэк начисляется в статусе pending сразу после оформления заказа, подтверждается после выполнения (статус F). Это защита от возвратов: при отмене транзакция отменяется, баланс не меняется. Агент раз в сутки списывает просроченные баллы:

// Агент: \Local\Cashback\ExpirationAgent::run() $expired = $connection->query(" SELECT USER_ID, SUM(AMOUNT) as TOTAL_AMOUNT FROM b_cashback_transaction WHERE TYPE = 'earn' AND STATUS = 'confirmed' AND EXPIRES_AT IS NOT NULL AND EXPIRES_AT < CURDATE() GROUP BY USER_ID ")->fetchAll(); foreach ($expired as $row) { AccountManager::createTransaction( $row['USER_ID'], 'expire', $row['TOTAL_AMOUNT'], 'Сгорание кэшбэка по истечении срока', null, 'confirmed' ); } 

Как оплатить кэшбэком?

Кэшбэком можно оплатить до 50% следующего заказа. Система создаёт скидку фиксированной суммы через \Bitrix\Sale\OrderDiscount. Это стандартный механизм Битрикс, поэтому интеграция с платёжными системами (ЮKassa, Сбер) не требует доработок.

Кейс из нашей практики: магазин бытовой техники

Недавно внедрили такую систему для клиента с каталогом 15 000 позиций. Требовалось: кэшбэк 7% на товары с наценкой выше 30%, 3% на остальные, сгорание через 60 дней. Настроили 5 правил: два по категориям, три по порогам суммы. Разработали за 10 рабочих дней. После запуска конверсия в повторные покупки выросла на 20%.

Мы ожидали, что придётся допиливать модуль месяца два, но получили готовое решение за 10 дней, и оно работало сразу. — отзыв клиента из сегмента бытовой техники.

Какие ошибки чаще всего допускают при внедрении кэшбэка?

  1. Отсутствие pending-статуса. Если начислять кэшбэк сразу, при возврате придётся вручную откатывать.
  2. Некорректное округление. Храните суммы в DECIMAL(10,2), иначе накапливается погрешность.
  3. Отсутствие индексов. Без них запросы истории будут тормозить при росте таблицы.
  4. Конфликт с другими скидками. Кэшбэк-скидка должна применяться после остальных.

Чек-лист перед запуском

  • [ ] Определены все правила начисления.
  • [ ] Настроены агенты для сгорания и очистки.
  • [ ] Протестирована отмена заказа — кэшбэк аннулируется.
  • [ ] Проверена интеграция с платёжными системами.
  • [ ] Настроено уведомление пользователя о начислении/сгорании.

Что входит в работу

Проектирование схемы данных, CRUD-интерфейс правил, обработчики событий, агент сгорания, интеграция оплаты, личный кабинет, тестирование, документация и поддержка 30 дней.

Сроки разработки

Этап Содержание Срок
Схема данных Таблицы, индексы, Account Manager 1–2 дня
Правила начисления CRUD-интерфейс + калькулятор 2–3 дня
Начисление и подтверждение Обработчики событий заказа 1–2 дня
Списание при оплате Интеграция со скидками Битрикс 2–3 дня
Сгорание и агент Агент + логика просрочки 1 день
Личный кабинет История, баланс, интерфейс оплаты 2–3 дня

Сроки ориентировочные, точная оценка после анализа. Стоимость рассчитывается индивидуально и зависит от сложности правил и интеграций. Наши инженеры — сертифицированные специалисты 1С-Битрикс с опытом более 10 лет. Реализовали 50+ кэшбэк-систем. Оценим ваш проект за один день. Получите консультацию по вашей задаче. Свяжитесь с нами для оценки проекта.

Сравнение Стандартный модуль Кастомная система
Гибкость правил Только % от суммы По категориям, брендам, товарам, порогам
Срок сгорания Нет Настраиваемый
История транзакций Ограниченная Полная, с типом и статусом
Интеграция с 1С Отсутствует Через CommerceML и REST