Інтеграція 1С-Бітрікс з Mindbox
Mindbox — CDP-платформа для автоматизації маркетингу великих та середніх ритейлерів. Об'єднує дані з усіх каналів (сайт, мобільний застосунок, офлайн, колл-центр), будує єдиний профіль клієнта і керує персоналізованими комунікаціями. Вартість платформи орієнтована на бізнес із значним річним оборотом.
Архітектура інтеграції з Mindbox
Mindbox працює через два механізми:
- JavaScript SDK (Mindbox.js) — трекінг дій на сайті в реальному часі: перегляди, додавання до кошика, авторизації.
- 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 год |
| Синхронізація офлайн-даних | за проєктом |







