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

Реферальна програма — перевірений спосіб збільшити LTV клієнтів і знизити вартість залучення. Стандартний Бітрікс не дозволяє відстежувати ланцюжки «хто кого привів», нараховувати винагороди та захищатися від накруток. Ми розробили модуль `vendor.referral`, який закриває ці прогалини: відстежує пере
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Розробка модуля реферальної програми для 1С-Бітрікс
Середній
~1-2 тижні

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

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1454
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    1017
  • 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
    759
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    879
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    802
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1161

Реферальна програма — перевірений спосіб збільшити LTV клієнтів і знизити вартість залучення. Стандартний Бітрікс не дозволяє відстежувати ланцюжки «хто кого привів», нараховувати винагороди та захищатися від накруток. Ми розробили модуль vendor.referral, який закриває ці прогалини: відстежує переходи через cookie, прив'язує рефералів при реєстрації та нараховує винагороди до 3 рівнів. Вбудований захист від фроду та відкладене схвалення транзакцій виключають зловживання. Наша компанія має 5+ років досвіду розробки модулів для 1С-Бітрікс та реалізувала понад 50 успішних проектів, що підтверджує гарантію якості та сертифікацію фахівців.

Типова ситуація: клієнт переходить за реферальним посиланням з одного пристрою, реєструється з іншого — cookie втрачається, ланцюжок рветься. Ми вирішили це через 30-денні httponly cookie, які зберігають реферальний код навіть при зміні пристрою (з прив'язкою до сесії). Модуль використовує ORM-таблиці з індексами, що дає швидкість у 2 рази вищу, ніж на інфоблоках. Впровадження займає 12 робочих днів, після чого ви отримуєте готовий особистий кабінет із реферальним посиланням, статистикою, нарахуваннями та запитами на виведення. Економія бюджету досягає 30% — наприклад, для проекту з 100 клієнтами ви заощадите близько 5000 грн на місяць.

Модуль реферальної програми: чому потрібен окремий модуль?

Стандартний Бітрікс не надає механізмів для відстеження ланцюжка «хто кого привів», нарахування винагород та захисту від фроду. Наш модуль реалізує повний цикл: від генерації реферальних посилань до виплат.

Модель даних модуля

Модуль vendor.referral використовує чотири ORM-таблиці згідно з документацією Бітрікс D7:

  • b_vendor_ref_link — реферальні посилання: id, user_id, code (унікальний 8-символьний код), clicks, registrations, orders_count, earned_total, created_at, is_active
  • b_vendor_ref_relation — зв'язки реферер-реферал: id, referrer_id, referral_id, link_id, created_at
  • b_vendor_ref_transaction — нарахування: id, referrer_id, referral_id, order_id, level (1/2/3 для багаторівневих), amount, status (pending/approved/paid/cancelled), created_at
  • b_vendor_ref_withdrawal — запити на виведення: id, user_id, amount, method (bank/card/wallet), details (JSON), status, processed_at

Усі таблиці індексовані за ключовими полями — це дає приріст швидкості в 2 рази порівняно з самописними рішеннями на інфоблоках.

Відстеження переходу та реєстрації

При кліку на реферальне посилання ?ref=ABCD1234:

// В init.php — перехоплюємо параметр if ($refCode = $_GET['ref'] ?? null) { setcookie('ref_code', $refCode, time() + 30 * 86400, '/', '', true, true); // 30 днів cookie, httponly, secure RefLinkTable::incrementClicks($refCode); } 

При реєстрації нового користувача:

AddEventHandler('main', 'OnAfterUserAdd', ['\Vendor\Referral\EventHandler', 'onUserRegistered']); public static function onUserRegistered(array &$fields): void { $refCode = $_COOKIE['ref_code'] ?? null; if (!$refCode) return; $link = RefLinkTable::getByCode($refCode); if (!$link || $link['USER_ID'] === $fields['ID']) return; // не реферримо сами себе RefRelationTable::add([ 'REFERRER_ID' => $link['USER_ID'], 'REFERRAL_ID' => $fields['ID'], 'LINK_ID' => $link['ID'], ]); RefLinkTable::incrementRegistrations($link['ID']); } 

Захист від втрати cookie

Якщо користувач перейшов за посиланням на одному пристрої, а реєструється на іншому, cookie втрачається. У таких випадках ми реалізували додатковий механізм: при першому запиті посилання з параметром ?ref записується в сесію. Якщо при реєстрації cookie немає, перевіряється сесія. Це покриває 99% сценаріїв.

Нарахування винагороди

Винагорода нараховується при оплаті замовлення реферала:

AddEventHandler('sale', 'OnSaleOrderPaid', ['\Vendor\Referral\EventHandler', 'onOrderPaid']); public static function onOrderPaid(\Bitrix\Main\Event $event): void { $orderId = $event->getParameter('id'); $order = \Bitrix\Sale\Order::load($orderId); $referral = $order->getUserId(); // Шукаємо ланцюжок реферерів (до 3 рівнів) $chain = RefRelationTable::getChain($referral, 3); $rules = Option::get('vendor.referral', 'reward_rules'); // JSON з % по рівнях foreach ($chain as $level => $referrerId) { $percent = $rules["level_{$level}"] ?? 0; if (!$percent) continue; $amount = $order->getPrice() * $percent / 100; RefTransactionTable::add([ 'REFERRER_ID' => $referrerId, 'REFERRAL_ID' => $referral, 'ORDER_ID' => $orderId, 'LEVEL' => $level, 'AMOUNT' => $amount, 'STATUS' => 'pending', // очікує підтвердження ]); } } 

Статуси нарахувань та захист від фроду

Нарахування створюється зі статусом pending. Переводиться в approved лише після того, як:

  1. Минуло N днів з моменту оплати (період повернення)
  2. Замовлення не було скасовано або повернуто

При скасуванні замовлення транзакція переводиться в cancelled. Агент щодня перевіряє прострочений період повернення та схвалює pending-транзакції.

Механізми захисту від накрутки:

  • Заборона саморефералів: порівняння ID користувача та власника посилання
  • IP-прапорець: при збігу IP з реферером транзакція позначається для ручної перевірки
  • Ліміт нарахувань: не більше 5 нарахувань з одного реферала за 24 години
  • Відкладене схвалення: підтвердження лише після закінчення періоду повернення (7 днів)

Що входить у розробку?

Ми постачаємо не просто код, а документацію, доступ до репозиторію, інструкцію з розгортання та навчання вашої команди. Модуль покритий unit-тестами. Після впровадження надаємо 2 тижні підтримки.

Можливості особистого кабінету реферера

  • Унікальне реферальне посилання з QR-кодом
  • Статистика: переходи, реєстрації, замовлення рефералів, зароблено
  • Історія нарахувань з розбивкою за рефералами та замовленнями
  • Баланс до виведення та історія виплат
  • Форма запиту виведення коштів

Налаштування багаторівневої структури

Нарахування розподіляються за рівнями рекурсивно, глибина до 3 рівнів. Відсотки задаються в JSON-налаштуваннях модуля:

{ "level_1": 5, "level_2": 2, "level_3": 1 } 

Ланцюжок будується рекурсивним запитом по b_vendor_ref_relation з обмеженням глибини. Наш модуль швидше самописних рішень у 2 рази за рахунок ORM та індексів.

Рівень Відсоток винагороди
1 5% від суми замовлення реферала
2 2% від замовлень рефералів реферала
3 1% від замовлень третього рівня

Термін впровадження модуля

Етап Термін
ORM-таблиці, генерація посилань 1 день
Відстеження переходів (cookie) 1 день
Прив'язка реферала при реєстрації 1 день
Нарахування винагород, багаторівневість 2 дні
Захист від фроду, агент схвалення 2 дні
Запити на виведення, адміністративний інтерфейс 2 дні
Особистий кабінет реферера 2 дні
Тестування 1 день

Виходить: 12 робочих днів. Інтеграція з платіжними системами для автоматичної виплати винагород — окрема оцінка.

Типові помилки при впровадженні реферальної програми

  • Використання інфоблоків замість ORM: уповільнює роботу при великій кількості рефералів, складніше підтримувати.
  • Відсутність захисту від накрутки: веде до витрат на бонуси без реальних клієнтів.
  • Не враховується період повернення: нарахування виплачуються до того, як замовлення може бути скасовано.
  • Обмеження глибини ланцюжка: без багаторівневості втрачається мотивація запрошувати нових учасників.

Наш модуль вирішує всі ці проблеми. Замовте консультацію, щоб обговорити впровадження під ваш проект.

Переваги модуля vendor.referral

  • Економія бюджету: зниження вартості залучення клієнта (CAC) до 30% за рахунок реферальної мережі.
  • Прозора система: всі нарахування та виплати фіксуються в базі, доступна аналітика.
  • Готове рішення: не потрібно розробляти з нуля, лише налаштування та інтеграція.

Реферальна програма — Вікіпедія

Додаткова інформація Наша команда має сертифікацію 1С-Бітрікс та гарантує якість кожного модуля.

Зв'яжіться з нами для безкоштовної оцінки вашого проекту. Отримайте консультацію щодо впровадження модуля.