Двусторонняя интеграция 1С-Битрикс с Mindbox
Разрозненные профили клиентов и потерянные транзакции — стандартная боль интернет-магазина на 1С-Битрикс, который использует Mindbox для маркетинга. Без корректной интеграции вы не видите полную картину поведения аудитории, а рассылки работают вслепую. Мы решаем эту задачу: настраиваем двусторонний обмен данными между Битриксом и Mindbox так, чтобы каждый клиент получал персонализированные предложения на основе реальных действий — на сайте, в мобильном приложении и в офлайне. Наш подход включает трекинг через JavaScript SDK и передачу заказов через Server-side API v3, что гарантирует точность данных в реальном времени. Согласно документации Mindbox, использование единого идентификатора повышает точность персонализации на 30%. Получите консультацию, чтобы узнать точные сроки и стоимость для вашего проекта.
Проблемы, которые решаем
- Разрозненные профили клиентов. Без единого идентификатора одни и те же клиенты заводят разные аккаунты или остаются анонимными. Mindbox объединяет их по email и телефону, строя единый профиль клиента. Мы настраиваем передачу deviceUUID и customerId из Битрикса на все точки контакта. По нашим данным, это устраняет до 40% дубликатов.
- Потеря трекинга в офлайн-каналах. Если клиент купил в магазине, а затем зашёл на сайт, его действия не связываются. Mindbox позволяет синхронизировать офлайн-покупки через загрузку CSV или API — мы интегрируем эти данные в CRM, что увеличивает точность сегментации на 25%.
- Неэффективные рассылки. Без сегментированной аудитории email-кампании дают низкую конверсию. Mindbox с данными из Битрикса (категории товаров, история заказов) позволяет сегментировать по реальному поведению, увеличив Retention Rate на 12–20% уже через полгода.
Как устроена архитектура интеграции с Mindbox?
Mindbox работает через два механизма:
- JavaScript SDK (Mindbox.js) — трекинг действий на сайте в реальном времени: просмотры, добавления в корзину, авторизации.
- Server-side API (v3) — передача транзакционных данных: заказы, регистрации, обновления профиля.
Оба механизма должны использовать единый идентификатор клиента (deviceUUID для анонимных, customerId для авторизованных).
Настройка JavaScript SDK и Server-side API
В шаблоне Битрикса (в 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>
Для передачи заказа используем серверный клиент:
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:
| Операция | Событие в Битриксе |
|---|---|
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().
Почему Mindbox лучше самописной CDP?
Самописные решения часто требуют месяцев разработки, а Mindbox предоставляет готовые инструменты: сегментация в 3 раза быстрее, шаблоны писем, A/B-тестирование. Для ритейлеров с оборотом от 200 млн рублей интеграция окупается за полгода за счёт роста LTV на 15–25% — это может означать до 1 млн рублей дополнительной прибыли в год. Время на внедрение самописной CDP может достигать 6 месяцев, тогда как интеграция Mindbox занимает 2–4 недели. Стоимость владения Mindbox рассчитывается индивидуально в зависимости от тарифа. Свяжитесь с нами для консультации.
Кейс: единый профиль клиента
Один из наших клиентов — сеть косметических магазинов с интернет-магазином на Битриксе, офлайн-кассами и мобильным приложением. До интеграции данные были разрознены, маркетологи не видели полной картины. После внедрения Mindbox профили объединились по телефону и email: клиент, купивший в офлайне, получает персонализированное письмо на основе чека. Retention rate вырос на 12% за полгода, конверсия в лояльность — на 20%. Автоматическая синхронизация настроена каждые 15 минут.
Сравнение типов интеграции
| Тип интеграции | Время настройки | Сложность | Результат |
|---|---|---|---|
| Трекинг через JS SDK | 2-3 дня | Низкая | События в реальном времени |
| Server-side API (заказы) | 5-7 дней | Средняя | Транзакции и профили |
| Программа лояльности | 1-2 недели | Высокая | Баллы и скидки |
Что входит в работу
- Документация: архитектурная схема, описание операций, инструкция для маркетолога.
- Настройка: JS SDK на все страницы, Server-side API для заказов и профилей, интеграция программы лояльности.
- Тестирование: проверка в UAT-среде, сверка данных за 3 дня.
- Обучение: вебинар для команды маркетинга и разработки.
- Поддержка: 2 недели после запуска, исправление ошибок по hotfix.
Как мы работаем: процесс
- Аналитика — аудит текущего трекинга, составление карты операций (1–2 дня).
- Проектирование — выбор идентификаторов, согласование имен операций с маркетологами (2–3 дня).
- Реализация — внедрение SDK, написание серверного клиента, настройка событий Битрикса (5–7 дней).
- Тестирование — проверка передачи всех типов данных, исправление ошибок (2–3 дня).
- Деплой — выкатка на продуктив, мониторинг первых 24 часов (1 день).
Сроки ориентировочно
Базовая интеграция (трекинг + заказы) — от 2 до 4 недель. С программой лояльности — до 6 недель. Стоимость рассчитывается индивидуально после аудита. Получите консультацию — мы оценим ваш проект за один день.







