ЧАСТНЫЙ
РАЗРАБОТЧИК

САЙТЫ И МАГАЗИНЫ
НА 1С-БИТРИКС

ЕСТЬ ЗАДАЧА?

Бонусная система для «1С-Битрикс: Управление сайтом»

«Бонусная система» — собственная разработка для интернет-магазинов на CMS «1С-Битрикс: Управление сайтом». Она ведёт счёт покупателя, начисляет бонусы за завершённые покупки и позволяет оплатить бонусами часть следующего заказа в пределах согласованного лимита. Правила и интерфейс адаптирую под магазин.

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

Каждое начисление учитывается отдельно со своим сроком действия. При списании сначала используются бонусы, срок действия которых заканчивается раньше. Если заказ со списанием отменён, бонусы возвращаются с исходными сроками: возврат не продлевает их действие.

Покупка, начисление и списание

В исходном проекте продаются цифровые товары. После оплаты заказ сразу переходит в статус «Выполнен», покупатель получает товар, а обработчик рассчитывает начисление. В другом магазине момент начисления нужно согласовать с его статусами и порядком выполнения заказа.

  1. Заказ завершён и не отменён. Система рассчитывает бонусы как процент от оплаченной суммы и записывает отдельную операцию на счёт покупателя.
  2. Покупатель видит накопленное в кабинете. Бонусы доступны до окончания срока, заданного правилом начисления.
  3. При следующей покупке можно использовать часть баланса. Списание ограничено доступными бонусами и допустимой долей заказа.
  4. Перед сохранением сервер проверяет расчёт заново. Если баланс или сумма изменились, покупателю нужно подтвердить обновлённые условия.

Начисления привязаны к аккаунту покупателя. Для списания бонусов нужно авторизоваться на сайте.

В корзине также показано, сколько бонусов будет начислено за новую покупку. Это прогноз: запись на счёте появляется после события начисления, а не при просмотре корзины.

Покупка, начисление бонусов и списание в следующем заказе
Бонусы начисляются за завершённую покупку и используются в следующем заказе в пределах лимита.

Как система помогает удерживать покупателей

В исходном проекте бонусная система хорошо удерживает покупателей. Здесь для следующей покупки остаётся доступный баланс, а накопленная сумма завершённых заказов влияет на уровень и допустимую долю списания. После недавней покупки действует повышенный лимит.

Результат конкретной программы нужно оценивать по её данным: наблюдение по одному проекту не означает одинакового эффекта для любого магазина.

Правила под задачи магазина

Бонусную систему можно кастомизировать под задачи заказчика. До внедрения согласуем процент начисления, срок действия, уровни, ограничения списания и взаимодействие со скидками. Фиксированные проценты исходного магазина не становятся обязательными условиями вашей программы.

ПравилоКак устроено сейчасЧто согласуем для вашего магазина
Начисление и срок действияПроцент и срок берутся из правила для группы покупателяУчастников программы, размер начисления и срок
Уровень покупателяЗависит от накопленной суммы завершённых неотменённых заказовПороги уровней и допустимую долю оплаты бонусами
Повторная покупкаПосле недавнего завершённого заказа действует повышенный лимит списанияПродолжительность периода и размер лимита
Скидки и промокодыУчтены в собственном оформлении; списание заменяет конкретную скидку первого заказаПорядок применения и совместимость с вашими правилами

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

Скрипт читает процент и срок начисления из настроек в инфоблоке. Пороги уровней, повышенный лимит и часть условий заданы в коде. Готовой панели для изменения всех правил нет; при необходимости способ управления настройками тоже можно доработать.

Если нужная программа уже настраивается готовым модулем, стоит проверить этот вариант. Собственная интеграция имеет смысл, когда требуется изменить механику или связать её с оформлением и кабинетом, которые не покрывает выбранное решение.

Возможности доработки

Отдельной доработкой можно добавить бонусы:

  • по акциям с согласованными условиями;
  • ко дню рождения покупателя;
  • к годовщине регистрации;
  • за заполнение выбранных данных профиля.

Для каждого события определим размер и срок начисления, круг участников и периодичность. Для заполнения профиля — какие поля учитываются и когда условие считается выполненным. При разработке также предусмотрим защиту от повторного начисления за одно и то же событие.

Эти начисления подключаются отдельно от бонусов за заказ.

Отдельной доработкой можно передавать сумму бонусов в Mindbox для подстановки в письма. Какие именно данные передавать и когда их обновлять, согласуем при подключении. Это необязательная интеграция: сама бонусная система работает внутри сайта и не зависит от Mindbox.

Что видит покупатель

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

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

При оформлении покупатель видит доступное списание и предварительное начисление за заказ. В текущем интерфейсе можно списать разрешённый максимум или сохранить бонусы. Другой способ выбора суммы можно разработать под ваш сценарий.

Отдельная страница объясняет программу и содержит калькулятор примеров. Его задача — показать условия, а фактические баланс и лимит сервер рассчитывает по данным покупателя.

Бонусный счёт, уровень, сумма покупок и история начислений в кабинете
В кабинете покупатель видит бонусный счёт, уровень, сумму покупок и историю начислений. На иллюстрации — схема, а не снимок интерфейса.

Сроки и отмена заказа

Истечение срока, возврат списанного и отмена начисления — разные операции. Их важно согласовать до запуска программы.

  • Срок истёк. Неиспользованный остаток соответствующего начисления перестаёт входить в доступный баланс.
  • Отменён заказ, в котором списали бонусы. В собственном оформлении возврат записывается отдельными операциями с прежними сроками. Если срок уже истёк, возвращённые бонусы не становятся доступными заново.
  • Отменён заказ, за который начисляли бонусы. Обработчик снимает оставшийся доступный остаток этого начисления. Уже потраченное не взыскивается, баланс из-за такого снятия не уходит в минус.

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

При возврате бонусов сохраняется исходный срок действия
Отмена заказа возвращает списанные бонусы с прежними сроками. Возврат не продлевает их действие.

Как проверяется списание

При сохранении заказа сервер повторно читает доступный баланс и лимит. Заказ, платёж и бонусное списание записываются в общей транзакции: если связанные проверки завершаются ошибкой, изменения откатываются. Повторный запрос с тем же токеном оформления проверяется по уже созданному заказу.

Для операций одного покупателя предусмотрена блокировка. Она нужна, чтобы параллельные запросы использовали актуальный баланс. Списание распределяется по позициям с учётом точности цен Битрикса, чтобы итог заказа совпадал с записанными суммами.

Такая схема требует таблиц InnoDB, одной базы данных и согласованного пути оформления. Реальные одновременные покупки нужно проверить на тестовом сайте. Ручные изменения и сторонние обработчики проверяются отдельно — наличие блокировки в этом коде не подтверждает их совместимость.

Что нужно для внедрения

Текущая реализация связана с собственным оформлением заказа и кабинетом. Это разработка для адаптации под проект; универсальная установка отдельного модуля без проверки не предусмотрена.

Что проверитьЗачем
CMS, редакцию и модулиСовместимость «1С-Битрикс: Управление сайтом», PHP, модулей интернет-магазина, каталога, инфоблоков и Highload-блоков
Правила программыГруппы покупателей, начисления, сроки, уровни и лимиты
Оформление и статусыМомент начисления, порядок скидок и купонов, обработку отмен и возвратов
Валюту и структуру магазинаТекущая реализация работает с рублями (RUB). Другие валюты и раздельные программы для нескольких сайтов требуют отдельного решения
Старые бонусные данныеПорядок переноса остатков и истории: имеющийся установщик создаёт структуру нового счёта, но не мигрирует прежний
Кабинет и уведомленияПоказ баланса и истории, страницу условий и письмо о начислении

Перед изменениями создаю резервную копию. Затем согласуем правила и критерии приёмки, адаптирую обработчики и интерфейс. На тестовой копии проверяем начисление, лимиты, сроки, отмены, округление и параллельные оформления. После подключения передаю описание настроек; дальнейшие изменения и сопровождение обсуждаются отдельно.

Состав работ, стоимость и сроки определяются после проверки проекта и выбранных правил программы.

ЧТО
ДЕЛАЕМ?

Напишите в удобный канал, пришлите адрес сайта
и опишите, что нужно создать, изменить или исправить.
Стоимость определю после обсуждения.

01 / МЕССЕНДЖЕРMAXНаписать в MAX 02 / МЕССЕНДЖЕРTelegram@Fomichev 03 / ЭЛЕКТРОННАЯ ПОЧТАПочтаfomandrey@mail.ru