Разработка модуля партнерского кабинета 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Разработка модуля партнерского кабинета 1С-Битрикс
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1177
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • 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
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Разработка модуля партнерского кабинета 1С-Битрикс

Партнёрская программа в большинстве компаний живёт в Excel: кто привёл клиента, какой процент, когда выплатить. Когда партнёров становится больше 20–30, менеджер тратит половину рабочего времени на сверку. Разработка партнёрского кабинета на Битрикс переводит этот процесс в самообслуживание: партнёр сам видит свою статистику, генерирует ссылки, отслеживает выплаты — без звонков в компанию.

Архитектура: что нужно спроектировать правильно

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

Модуль решает задачу атрибуции на двух уровнях:

Cookie-атрибуция. При переходе по реферальной ссылке (?ref=PARTNER_CODE) в браузер записывается cookie partner_ref с TTL 30–90 дней (настраивается). Cookie HttpOnly, чтобы JavaScript не мог его изменить.

UTM-атрибуция. Параллельно код партнёра сохраняется в сессии. При оформлении заказа событие OnSaleOrderAdd читает оба источника, определяет атрибуцию и записывает в b_sale_order_props кастомное поле PARTNER_CODE.

Все партнёрские коды, комиссии, статусы выплат хранятся в таблицах модуля:

  • myvendor_partner — профили партнёров
  • myvendor_partner_order — связь заказов с партнёрами, сумма комиссии
  • myvendor_partner_payout — история выплат

Личный кабинет партнёра

Кабинет строится на стандартных компонентах Битрикс с кастомными шаблонами. Авторизация — через стандартный механизм пользователей (b_user), но с дополнительной проверкой: пользователь должен состоять в группе «Партнёры» (b_user_group).

Раздел статистики. Показывает за выбранный период: количество переходов (из myvendor_partner_click), количество оформленных заказов, итоговую сумму комиссии. Данные агрегируются агентом раз в час, не запрашиваются в реальном времени — это ключевое решение для производительности при большом числе партнёров.

Реферальные ссылки. Партнёр вводит любой URL сайта, модуль добавляет к нему ?ref=CODE и показывает готовую ссылку. Дополнительно — генерация UTM-ссылок с предзаполненными параметрами.

Рекламные материалы. Инфоблок с баннерами разных размеров. Партнёр выбирает баннер, получает HTML-код для вставки — ссылка в баннере уже содержит его реферальный код.

Глубокий разбор: расчёт комиссии

Это бизнес-логика с наибольшим числом вариантов, и её нужно делать гибкой с самого начала.

Комиссия может зависеть от:

  • категории товаров в заказе (разные % для разных разделов каталога)
  • суммы заказа (прогрессивная шкала)
  • уровня партнёра (Silver / Gold / Platinum)
  • первый заказ клиента или повторный
class CommissionCalculator {
    public function calculate(\Bitrix\Sale\Order $order, Partner $partner): float {
        $rules = CommissionRuleTable::getActiveRules($partner->getLevel());
        $commission = 0.0;
        foreach ($order->getBasket() as $item) {
            $rule = $this->matchRule($rules, $item->getProductId());
            $commission += $item->getPrice() * $rule->getRate() / 100;
        }
        return round($commission, 2);
    }
}

Расчёт запускается в обработчике OnSaleOrderPaid — комиссия начисляется только по оплаченным заказам. При возврате (OnSaleOrderStatusChange со статусом возврата) комиссия автоматически сторнируется.

Административный модуль

Администратор видит: список всех партнёров с суммарной статистикой, очередь на выплату (партнёры с накопленной комиссией выше порога), историю выплат. Выплата оформляется вручную — администратор нажимает «Выплачено», указывает способ и дату, система меняет статус и отправляет письмо партнёру.

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

Масштаб Состав Срок
Базовый Кабинет + атрибуция + фиксированный % комиссии 4–5 недель
Средний + многоуровневые правила + рекламные материалы + выплаты 7–9 недель
Расширенный + многоуровневый маркетинг (2-е плечо) + API для интеграций 10–14 недель

Ключевой вопрос до старта — нужна ли многоуровневая структура (партнёр привлекает субпартнёров). Если да, схема данных меняется кардинально.