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

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

Mindbox — CDP-платформа для автоматизації маркетингу великих та середніх ритейлерів. Об'єднує дані з усіх каналів (сайт, мобільний застосунок, офлайн, колл-центр), будує єдиний профіль клієнта і керує персоналізованими комунікаціями. Вартість платформи орієнтована на бізнес із значним річним оборотом.

Архітектура інтеграції з Mindbox

Mindbox працює через два механізми:

  1. JavaScript SDK (Mindbox.js) — трекінг дій на сайті в реальному часі: перегляди, додавання до кошика, авторизації.
  2. Server-side API (v3) — передача транзакційних даних: замовлення, реєстрації, оновлення профілю.

Обидва механізми повинні використовувати єдиний ідентифікатор клієнта (deviceUUID для анонімних, customerId для авторизованих).

Підключення JavaScript SDK

У шаблоні 1С-Бітрікс (header.php або компоненті):

<script>
window.mindbox = window.mindbox || function() { mindbox.queue.push(arguments); };
mindbox.queue = mindbox.queue || [];
</script>
<script async src="//cdn.mindbox.ru/scripts/v1/tracker.js"></script>
<script>
mindbox('create', {
    endpointId: '<?= COption::GetOptionString("site","mindbox_endpoint_id") ?>',
});
// Передаємо ID авторизованого користувача
<?php if ($USER->IsAuthorized()): ?>
mindbox('identify', {
    operation: 'SiteVisit',
    data: {
        customer: {
            ids: { websiteId: '<?= $USER->GetID() ?>' },
        },
    },
});
<?php endif; ?>
</script>

Передача замовлення через Server-side API

class MindboxClient {
    private string $secretKey;
    private string $endpointId;

    public function sendOrder(\Bitrix\Sale\Order $order): void {
        $basket = $order->getBasket();
        $props  = $order->getPropertyCollection();

        $lines = [];
        foreach ($basket as $item) {
            $lines[] = [
                'product'         => ['ids' => ['websiteId' => (string)$item->getProductId()]],
                'quantity'        => $item->getQuantity(),
                'priceOfLine'     => $item->getPrice() * $item->getQuantity(),
                'discountOfLine'  => 0,
            ];
        }

        $payload = [
            'order' => [
                'ids'            => ['websiteId' => (string)$order->getId()],
                'totalPrice'     => $order->getPrice(),
                'lines'          => $lines,
                'customer'       => [
                    'ids'   => ['websiteId' => (string)$order->getUserId()],
                    'email' => $props->getUserEmail(),
                    'mobilePhone' => $props->getItemByOrderPropertyCode('PHONE')?->getValue(),
                ],
            ],
        ];

        $http = new \Bitrix\Main\Web\HttpClient();
        $http->setHeader('Content-Type', 'application/json');
        $http->setHeader('Authorization', 'Mindbox secretKey="' . $this->secretKey . '"');

        $http->post(
            "https://api.mindbox.ru/v3/operations/sync?endpointId={$this->endpointId}&operation=Website.CreateOrder",
            json_encode($payload)
        );
    }
}

Операції (Operations)

Кожна взаємодія в Mindbox — це «операція» з унікальним ім'ям. Імена операцій створюються в особистому кабінеті Mindbox і передаються в параметрі operation:

Операція Подія в 1С-Бітрікс
Website.CreateOrder OnSaleOrderSaved (нове замовлення)
Website.UpdateOrder OnSaleOrderSaved (зміна статусу)
Website.Register OnAfterUserRegister
Website.UpdateProfile OnAfterUserUpdate
Website.SetCart OnSaleBasketSaved
Website.SubscribeEmail OnSubscribeSubscribe

Програма лояльності

Mindbox містить вбудований модуль програми лояльності. При підключенні — бали нараховуються за покупки, списуються при оплаті. У формі замовлення додаємо поле «Використати бали»:

// Отримати баланс балів клієнта
public function getCustomerBalance(int $userId): float {
    $response = $this->callSync('Website.GetCustomerBalance', [
        'customer' => ['ids' => ['websiteId' => (string)$userId]],
    ]);
    return $response['customer']['bonusPoints']['available'] ?? 0;
}

При успішному списанні балів — застосовуємо знижку до замовлення через CSaleBasket::UpdatePrice().

Кейс: єдиний профіль клієнта

Мережа косметичних магазинів: інтернет-магазин на 1С-Бітрікс + офлайн-каси + мобільний застосунок. До Mindbox — три розрізнені бази клієнтів, маркетологи не бачили повної картини.

Після інтеграції Mindbox об'єднав профілі за телефоном та email: клієнт, який купив офлайн, отримує лист із «схожими товарами» на основі чека, а не generic-розсилку. Retention rate зріс на 12% за пів року.

Завдання Трудовитрати
Налаштування JS SDK + трекінг переглядів 4–6 год
Server-side API: замовлення та профілі 8–12 год
Інтеграція програми лояльності 8–16 год
Синхронізація офлайн-даних за проєктом