Інтеграція 1С-Бітрікс з Flocktory

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Інтеграція 1С-Бітрікс з Flocktory
Середня
~1-2 тижні
Часті питання

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

Етапи розробки

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

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

Інтеграція 1С-Бітрікс з Flocktory

Flocktory — платформа для роботи з постпокупочним трафіком й вірусним маркетингом. Її основні механіки: показ поп-апа з пропозицією партнера одразу після завершення замовлення ("Я хочу!"), реферальні програми й механіки обміну контактами. Інтеграція з Бітриксом технічно несложна й будується на двох компонентах: передача даних про замовлення через JavaScript-об'єкт на сторінці підтвердження й підключення трекера на всіх сторінках.

Підключення трекера Flocktory

Трекер підключається один раз у всіх сторінках сайту. У шаблоні Бітрикса — у footer.php або через addExternalJs:

<!-- Flocktory трекер -->
<div class="i-flocktory" data-fl-action="track" data-fl-site-id="YOUR_SITE_ID"></div>
<script type="text/javascript">
(function(w,d,n,s,t) {
    w[n] = w[n] || [];
    w[n].push(function() { t = d.createElement(s);
        t.type = 'text/javascript'; t.async = true;
        t.src = '//api.flocktory.com/v2/loader.js?site_id=<?= FLOCKTORY_SITE_ID ?>';
        var sn = d.getElementsByTagName(s)[0];
        sn.parentNode.insertBefore(t, sn);
    });
    w.addEventListener('load', w[n][0]);
})(window, document, '_flocktory_callbacks', 'script');
</script>

FLOCKTORY_SITE_ID — числовий ідентифікатор із особистого кабінету Flocktory. Рекомендується винести його в константу через define у bitrix/php_interface/dbconn.php або в модуль налаштувань.

Передача даних після оформлення замовлення

Ключова точка інтеграції — сторінка "Дякуємо за замовлення". Flocktory показує постпокупочний поп-ап тільки якщо отримує коректні дані про замовлення. На сторінці успішного оформлення вставляємо блок з даними:

// У шаблоні сторінки підтвердження замовлення
// Дані беремо з компонента sale.order.checkout або безпосередньо з ORDER_ID
$orderId = (int)$_GET['ORDER_ID'];
$order   = \Bitrix\Sale\Order::load($orderId);

if ($order && $order->getUserId() === $USER->GetID()) {
    $user = CUser::GetByID($order->getUserId())->Fetch();

    $items = [];
    foreach ($order->getBasket()->getOrderableItems() as $item) {
        $items[] = [
            'id'    => (string)$item->getProductId(),
            'title' => $item->getField('NAME'),
            'price' => (float)$item->getPrice(),
            'count' => (float)$item->getQuantity(),
        ];
    }

    $flData = [
        'order' => [
            'id'       => (string)$orderId,
            'price'    => (float)$order->getPrice(),
            'currency' => $order->getCurrency(),
        ],
        'customer' => [
            'name'  => trim($user['NAME'] . ' ' . $user['LAST_NAME']),
            'email' => $user['EMAIL'],
        ],
        'items' => $items,
    ];
    ?>
    <div class="i-flocktory"
         data-fl-action="purchase"
         data-fl-site-id="<?= FLOCKTORY_SITE_ID ?>"
         data-fl-user-name="<?= htmlspecialchars($flData['customer']['name']) ?>"
         data-fl-user-email="<?= htmlspecialchars($flData['customer']['email']) ?>"
         data-fl-transaction-id="<?= $flData['order']['id'] ?>"
         data-fl-total-price="<?= $flData['order']['price'] ?>"
         data-fl-items='<?= json_encode($flData['items'], JSON_UNESCAPED_UNICODE) ?>'>
    </div>
    <?php
}
?>

Атрибут data-fl-items повинен містити валідний JSON. Flocktory використовує ці дані для таргетування постпокупочної пропозиції: наприклад, якщо клієнт купив товар з категорії "Електроніка", партнер може показати пропозицію на гарантію або аксесуари.

Дані авторизованого користувача на всіх сторінках

Для персоналізації Flocktory повинен знати email авторизованого користувача на будь-якій сторінці:

// У footer.php, після підключення основного трекера
if ($USER->IsAuthorized()) {
    $currentUser = CUser::GetByID($USER->GetID())->Fetch();
    ?>
    <div class="i-flocktory"
         data-fl-action="push-user"
         data-fl-site-id="<?= FLOCKTORY_SITE_ID ?>"
         data-fl-user-email="<?= htmlspecialchars($currentUser['EMAIL']) ?>"
         data-fl-user-name="<?= htmlspecialchars($currentUser['NAME']) ?>">
    </div>
    <?php
}
?>

Реферальна програма (Shaker)

Flocktory Shaker — механіка вірусності: після покупки клієнту пропонують поділитися посиланням, друзі отримують скидку, реферер — бонус. Налаштування на стороні Flocktory (у особистому кабінеті). Зі сторони Бітрикса потрібно:

  1. При переході по реферальному посиланню — фіксувати UTM-мітку utm_source=flocktory
  2. Передавати промокод Flocktory в Бітрікс-механізм скидок

Промокод зі посилання (?flocktory_code=XXX) застосовується через стандартний механізм Бітрикса або через користувацький обробник кошика.

Інтеграція через события Бітрикса (альтернативний підхід)

Замість HTML-блоків можна передавати дані через JavaScript-об'єкт після отримання підтвердження від сервера. Обробник события OnSaleOrderSaved зберігає дані в сесію, яка потім зчитується на сторінці "Дякуємо":

AddEventHandler('sale', 'OnSaleOrderSaved', function(\Bitrix\Main\Event $event) {
    $order = $event->getParameter('ENTITY');
    $isNew = $event->getParameter('IS_NEW');
    if (!$isNew) return;

    $_SESSION['FLOCKTORY_ORDER'] = [
        'id'    => $order->getId(),
        'price' => $order->getPrice(),
    ];
});

Тестування інтеграції

Flocktory надає режим відладки: додайте ?flocktory_debug=1 до URL сторінки. У консолі браузера з'являться сповіщення про успішну передачу даних або помилки маппінгу. Основні причини нерабочої інтеграції — некоректний email (пустий, невалідний), неправильний формат data-fl-items (не валідний JSON), невірний site_id.

Терміни реалізації

Обсяг Склад Термін
Базова (трекер + постпокупочний поп-ап) Блок даних на сторінці замовлення + трекер 0.5–1 день
З push-user на всіх сторінках + авторизація на кожній сторінці +0.5 дня
Реферальна програма (промокоди) + обробка реферальних посилань + скидки 2–3 дні