Кейс интеграции YuliaWave × Mindbox

Интеграция YULIAWAVE и Mindbox

Разработка интеграции Mindbox для YULIAWAVE на inSales

inSales Mindbox Интеграция CDP

Задача

Fashion-бренд YULIAWAVE переехал с 1С-Битрикс: Управление сайтом на inSales — для новой витрины требовалось разработать интеграцию с Mindbox: с минимальной потерей исторических данных и сохранением уже настроенных механик.

Цель — выстроить корректную интеграцию с учетом бизнес-процессов клиента: сохранить и улучшить механики и дополнить их новыми данными и событиями. Работа велась под руководством представителя Mindbox и совместно с агентством Весёлкина Маша.

inSales — SaaS-платформа: данные передаются через фронтенд на витрине, API и вебхуки, без прямого доступа к backend магазина. Для клиента критичны корректная передача информации по товарам, поддержка мультикатегорий в фиде и единая логика для гостевых и авторизованных сессий.

Что реализовали?

  • Товарный фид кастомной разработки: внутри товары и варианты, мультикатегории и доп. атрибуты
  • Стандартные события на сайте: авторизация, просмотры товаров и категорий, корзина и избранное
  • Заказы с передачей скидок, способов доставки и платы, а также смены статусов
  • Дополнительная механика «Лист ожидания» с зависимостью от остатков товаров в фиде

Архитектура интеграции

Mindbox требует потока событий с витрины в реальном времени и надёжной передачи критичных операций через backend-каналы платформы. Мы разделили интеграцию на фронтенд-события и серверные операции.

Витрина: трекинг-код

На витрине inSales отслеживаются действия пользователя и передаются в Mindbox:

  • просмотр товара и категории;
  • добавление и изменение корзины, очистка корзины;
  • избранное: добавление, удаление, очистка;
  • подписка через форму на сайте в подвале;
  • идентификация устройства и связка сессии.

События отправляются асинхронно и не блокируют интерфейс магазина.

Бэкенд: inSales API

Критичные операции идут через подписку на вебхуки inSales:

  • регистрация клиента;
  • редактирование клиента;
  • создание заказа для гостя;
  • создание заказа для авторизованного покупателя;
  • обновление статуса заказа;

Перед отправкой в Mindbox данные валидируются и нормализуются на стороне интеграции.

Этапы проекта

Работа велась в формате регулярных созвонов с клиентом, представителем Mindbox и агентством «Весёлкина Маша». Каждый этап завершался согласованным артефактом: от карты событий и схемы API до чек-листа тестов перед запуском.

1. Вводные звонки
Созвоны с клиентом, Mindbox и партнёрами: контекст бизнеса, переезд с Битрикс на inSales, цели автоматизации и зона ответственности каждой стороны.
2. Сбор требований
Сценарии: клиент, каталог, корзина, избранное, заказы, подписки, лист ожидания. Поля, идентификаторы и правила для гостевых и авторизованных сессий.
3. Планирование
Архитектура: карта операций Mindbox, товарный фид, сопоставление справочников, точки вызова на витрине и бэкенд
4. Согласование
Выверка сценариев с представителем Mindbox и агентством «Весёлкина Маша»: названия операций, структура payload, исключения и edge-cases до начала разработки.
5. Реализация
Фид на Liquid, трекинг-код для фиксации событий и подписки на витрине, передача данных через API и вебхуки, валидация данных перед отправкой в Mindbox.
6. Тестирование
Проверка сценариев на тестовом стенде: регистрация/авторизация, корзина, избранное, заказы, статусы, подписки, лист ожидания. Финальная сверка с чек-листом Mindbox.

Проработанные сценарии интеграции

Ниже — части интеграции, которые мы детально спроектировали и реализовали. Для каждого сценария определены операции Mindbox, источники данных inSales и правила передачи через фронтенд, API и вебхуки.

1. Товарный фид
Фид на Liquid: товары, варианты SKU, мультикатегории и атрибуты для рекомендаций и сегментации.
2. Регистрация клиента
Событие регистрации с передачей идентификаторов клиента и согласий на коммуникации.
3. Авторизация на сайте
Вход пользователя, связка сессии с клиентом Mindbox и UUID устройства.
4. Редактирование клиента
Обновление профиля: подписки email и SMS, пол, дата рождения — с валидацией полей.
5. Точки подписок на витрине
Сбор согласий и подписок email и SMS в форме в подвале — единые правила передачи клиентов в Mindbox.
6. Просмотр продукта
Событие просмотра карточки товара (productId) с обработкой передачи просмотра отдельных вариантов (variantId).
7. Просмотр категории
Передача просмотра категории каталога для аналитики и триггерных сценариев.
8. Установка корзины
Добавление и изменение состава позиций в корзине, включая обработку при заходе на страницу корзины.
9. Очистка корзины
Событие полной очистки корзины из любого места на витрине.
10. Установка избранного
Добавление товара в избранное на идентификаторах inSales (productId).
11. Очистка избранного
Событие полной очистки избранного из любого места на витрине.
12. Создание заказа
Оформление заказа гостя и авторизованного клиента с составом, скидками и суммами.
13. Обновление статуса заказа
Синхронизация статусов заказа из inSales в Mindbox для триггерных сценариев.
14. Сопоставление справочников
Маппинг статусов заказов, способов оплаты, брендов, клиентских идентификаторов и доп. полей.
15. Установка списка «Лист ожидания»
Кастомная операция с проверкой остатков на складе и передачей актуального статуса наличия.

Технические особенности

Ключевые решения при разработке интеграции на inSales: нестандартный фид, связка с фронтенд-API common.v2.js и выверенные правила идентификаторов. Ниже — логика реализации: как обходили ограничения SaaS-платформы и edge-cases витрины.

Разработка товарного фида

Фид собран на Liquid с подходом, который не описан в открытой документации inSales: внутри — товары и варианты, мультикатегории, дополнительные атрибуты и остатки для механики «Лист ожидания». Структура и идентификаторы выверены с Mindbox и используются единообразно во всех событиях витрины.

Класс трекера и common.v2.js

На витрине — единый класс трекера Mindbox: очередь вызовов до загрузки tracker.js, инициализация сценариев после готовности DOM. Логика завязана на фронтенд-API inSales из common.v2.js — Shop, Cart, EventBus: глобальные объекты платформы, их нельзя переопределять и вызывать раньше, чем инициализирует шаблон.

Ожидание готовности Cart и EventBus

Корзина не готова в момент загрузки страницы: перед SetCart или ClearCart скрипт рекурсивно проверяет, что Cart.order инициализирован. Подписки на EventBus (always:insales:cart, update_variant:insales:product, избранное) срабатывают только после запуска common.js — так данные в Mindbox совпадают с актуальным состоянием витрины, а не с промежуточным.

Справочники и миграция клиентов

Сопоставлены справочники inSales и Mindbox: способы оплаты и статусы заказов — единые правила для API, вебхуков и триггеров. В Mindbox загружены идентификаторы клиентов, созданные в inSales, чтобы сохранить связки и не потерять аудиторию при переходе на новую платформу.

Варианты товара и просмотры

Учтена логика выбора модификации на витрине и предвыбора по ссылке с get-параметром variant_id: при открытии карточки отправляется просмотр конкретного варианта, без параметра — товара. Смена варианта на странице отслеживается через EventBus; первое техническое событие при инициализации отсекается, чтобы не дублировать просмотр при загрузке.

Авторизация и UUID устройства

Вход детектируется по цепочке URL: переход с формы входа на страницу заказов с маркером auth_triggered. В операцию AuthorizeCustomer передаётся websiteID клиента из данных страницы. UUID устройства Mindbox из cookie подставляется в кастомное поле клиента в момент авторизации — для связки фронтенд-сессии с серверными скриптами inSales.

Заказы: оплата, доставка, статусы

Статус оплаты передаётся отдельно через дополнительное поле заказа — гранулярность статусов в inSales и Mindbox различается. Способы доставки и оплаты включены в payload заказа по согласованным справочникам. Скидки, смена статусов и состава заказа синхронизируются через API и вебхуки с валидацией перед отправкой в Mindbox.

Корзина, избранное и асинхронность

Корзина передаётся как список позиций с идентификатором productId_variantId, количеством и ценой; при пустой корзине — операция очистки. Избранное синхронизируется по событиям FavoritesProducts при добавлении и удалении. Все вызовы на витрине — асинхронные, без блокировки интерфейса магазина.

Результат

Интеграция с Mindbox разработана на inSales с нуля — без потери данных, на согласованных правилах. В Mindbox попадают только валидированные данные: корректные SKU, мультикатегории и статусы заказов.

Механики доработаны по бизнес-процессам, данные дополнены для новых триггеров. Маркетинговая команда может запускать триггерные сценарии: поведение на сайте, корзина, избранное, статусы заказов, подписки (включая форму в подвале) и кастомный лист ожидания.

Интеграция inSales с Mindbox
Оставьте заявку на интеграцию — проведем аудит и разработку для вашего магазина.
Заявка