Разработка партнерского кабинета на 1С-Битрикс
Партнёрский кабинет — инструмент для управления партнёрской программой через сайт. Партнёр регистрируется, получает реферальную ссылку, привлекает клиентов и отслеживает вознаграждения в личном разделе. 1С-Битрикс предоставляет базовый механизм аффилиатов в модуле sale, но для полноценной партнёрской программы его приходится существенно дорабатывать.
Штатный механизм аффилиатов
Модуль sale включает подсистему «Аффилиаты» (\Bitrix\Sale\Affiliate). Базовый функционал:
- Регистрация партнёра через компонент
bitrix:sale.affiliate.register - Генерация реферальной ссылки с параметром
partner_id - Отслеживание переходов и заказов, совершённых по реферальной ссылке
- Расчёт комиссии (фиксированный процент от суммы заказа)
- Компонент
bitrix:sale.affiliate.cabinet— просмотр статистики и баланса
Ограничения штатного решения:
- Один уровень реферальности (нет многоуровневых программ)
- Фиксированный процент без гибких условий (нет зависимости от объёма, категории товара, уровня партнёра)
- Минимальный интерфейс — статистика без визуализации, нет графиков и аналитики
- Нет механизма выплат — только начисление на внутренний счёт
- Нет маркетинговых материалов и промо-инструментов
Для реальной партнёрской программы штатный модуль используется как фундамент, а бизнес-логика надстраивается через кастомные обработчики и дополнительные сущности.
Регистрация партнёра
Процесс регистрации партнёра отличается от обычной регистрации пользователя. Партнёр заполняет расширенную анкету:
- ФИО / Название компании
- ИНН (для юрлиц)
- Сфера деятельности, каналы продвижения
- Реквизиты для выплат (расчётный счёт, электронный кошелёк)
- Согласие с условиями партнёрской программы
Заявка не активируется мгновенно — она попадает на модерацию. Менеджер проверяет данные, принимает решение. При одобрении партнёру присваивается группа пользователей «Партнёры» и начальный уровень программы.
Техническая реализация: расширенная форма на bitrix:main.register с дополнительными UF_*-полями, обработчик OnAfterUserRegister создаёт запись в таблице партнёров (highload-блок) и отправляет уведомление менеджеру.
Реферальная система
Партнёр получает уникальную ссылку вида https://site.ru/?partner_id=XXX или https://site.ru/?ref=PROMO_CODE. При переходе по ссылке в cookie записывается идентификатор партнёра с настраиваемым сроком жизни (обычно 30–90 дней).
Модели атрибуции:
- Last click — вознаграждение получает партнёр, чья ссылка использовалась последней перед заказом
- First click — вознаграждение у первого партнёра в цепочке
- Линейная — вознаграждение делится между партнёрами пропорционально
Штатный модуль поддерживает только last click. Для других моделей создаётся кастомная таблица переходов с фиксацией всей цепочки и обработчик на событие OnSaleOrderPaid, который применяет нужную логику распределения.
Промо-коды — альтернатива реферальным ссылкам. Партнёр получает именной промо-код, клиент вводит его при оформлении заказа. Промо-код привязан к партнёру через правило корзины (\Bitrix\Sale\Discount) и одновременно фиксирует продажу за партнёром.
Уровни партнёрства
Многоуровневая программа мотивирует партнёров наращивать объёмы. Уровни хранятся в отдельном highload-блоке с параметрами:
| Уровень | Условие перехода | Комиссия | Бонусы |
|---|---|---|---|
| Стартовый | Регистрация | 5% от суммы заказа | Базовые промо-материалы |
| Серебряный | Оборот от 500 000 ₽ за квартал | 7% | Расширенные баннеры, приоритетная поддержка |
| Золотой | Оборот от 2 000 000 ₽ за квартал | 10% | Персональный менеджер, ко-брендинг |
| Платиновый | Оборот от 5 000 000 ₽ за квартал | 12% + бонус за объём | Индивидуальные условия, совместные мероприятия |
Пересчёт уровня запускается агентом (\CAgent) по расписанию — раз в сутки или при каждом оплаченном заказе через обработчик. При смене уровня партнёр получает уведомление, обновляется процент комиссии для будущих заказов.
Дополнительные модели вознаграждений:
- Фиксированная сумма за каждый заказ (для услуг)
- Процент от первого заказа привлечённого клиента + процент от повторных (LTV-модель)
- Бонус за достижение порога: привёл 50 клиентов — получил разовую премию
- Многоуровневый маркетинг: процент от продаж партнёров, которых ты привлёк (реализуется через рекурсивную привязку
parent_partner_id)
Дашборд партнёра
Основной экран кабинета отображает ключевые метрики и инструменты управления.
Статистика:
- Переходы по реферальной ссылке (по дням, неделям, месяцам)
- Регистрации привлечённых клиентов
- Заказы: количество, суммы, средний чек
- Конверсия: переход → регистрация → заказ
- Начисленные вознаграждения и текущий баланс
- Динамика по периодам — линейные графики, сравнение с предыдущим периодом
Данные агрегируются в highload-блоке статистики. Детализация по каждому переходу, регистрации и заказу хранится в отдельных таблицах. Графики строятся на Chart.js или ApexCharts, данные подгружаются через AJAX-запросы к кастомному контроллеру (\Bitrix\Main\Engine\Controller).
Инструменты:
- Генератор реферальных ссылок с UTM-метками
- Список промо-кодов с возможностью создания новых (в рамках лимита уровня)
- История выплат с фильтрацией по периоду и статусу
Расчёт вознаграждений
Расчёт выполняется при смене статуса заказа на «Оплачен» через обработчик OnSalePayOrder. Алгоритм:
- Определяется партнёр по cookie
partner_idили промо-коду заказа - Загружается текущий уровень партнёра и его процент комиссии
- Вычисляется база для расчёта — сумма заказа за вычетом доставки, купонов и НДС (конфигурируется)
- Начисляется вознаграждение на внутренний баланс партнёра
- Если включен многоуровневый маркетинг — рекурсивно начисляются вознаграждения вышестоящим партнёрам с убывающим процентом
- Создаётся запись в журнале начислений (highload-блок: partner_id, order_id, amount, type, date)
Отмена и возврат: при отмене заказа или возврате средств вознаграждение сторнируется через обратную запись в журнале. Если вознаграждение уже выплачено — создаётся задолженность партнёра, которая учитывается при следующей выплате.
Выплаты
Система выплат работает по заявительному принципу. Партнёр формирует заявку на вывод средств при достижении минимальной суммы (порог настраивается).
Процесс обработки заявки:
- Партнёр нажимает «Вывести средства», указывает сумму и реквизиты
- Заявка попадает в список на модерацию (менеджер видит в админке)
- Менеджер проверяет корректность данных, подтверждает выплату
- После фактической оплаты статус заявки меняется на «Выплачено», баланс партнёра уменьшается
Для юрлиц — выплата по акту выполненных работ. Система генерирует акт по шаблону, партнёр подписывает, бухгалтерия проводит оплату.
Маркетинговые материалы
Раздел кабинета с промо-материалами для партнёров:
- Баннеры разных форматов с встроенной реферальной ссылкой (HTML-код для вставки)
- Логотипы и брендбук для ко-брендинга
- Шаблоны email-рассылок
- Описания товаров/услуг для размещения на сайте партнёра
- Презентации в формате PDF
Материалы хранятся в инфоблоке с привязкой к уровню партнёрства. Партнёр стартового уровня видит базовый набор, золотой — расширенный с индивидуальными вариантами.







