Разработали модуль Mindbox для интеграций с сайтами на «Битриксе» и обновили SDK

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

Компания 12 лет помогает увеличивать выручку от маркетинга. В портфеле Mindbox более 700 клиентов из e-commerce, retail и FMCG: L’Oréal, Synergetic, METRO, Panasonic, Burger King, «Vprok.ru Перекрёсток», «Детский мир» и другие.

Предыстория

Интеграция Mindbox с сайтами клиентов могла занимать много месяцев — техническая часть довольно сложная.

Поэтому Mindbox решили разработать модуль, который стандартизирует интеграцию с сайтами на «Битрикс».

Цели две:

  1. Сократить ресурсозатраты заказчиков на интеграцию. Чем скорее ее проведут, тем скорее смогут пользоваться возможностями платформы.
  2. Быстрее получать оплату от заказчиков после успешной интеграции.

Когда Mindbox обратились к нам с запросом разработать модуль, у них уже была недоработанная MVP-версия с другим подрядчиком, которая пока еще не позволяла решать поставленные задачи.

Задача

Доработать текущую версию модуля, чтобы заказчики могли использовать его для интеграций.

Результат

Показатели

Изначально договорились, что оценивать успех модуля будем по тому, сколько новых клиентов его использует.

В процессе разработки поняли, что нужно смотреть не на все проекты, а только на те, у которых есть CMS на Bitrix. Поэтому, если оценивать так, как задумывали, вместо ожидаемых 15% получили 9. Но для клиента это тоже хороший результат.

Модуль

У него 2 режима:

  1. Стандартный (CDP) — чтобы передавать данные с сайта в Mindbox.
  2. Режим лояльности — чтобы получать из Mindbox рассчитанные акции, отображать историю бонусов и заказов. Сейчас этот режим решили убрать из модуля, но об этом позже.

Ограничения модуля, которые можно интегрировать отдельно:

  • Нет формы подписки, чтобы пользователь мог оставить свой email и подписаться на рассылку.
  • Нет веб-пушей.
  • Не работает с подарочными картами.
  • Не генерирует региональные товарные фиды.
  • Не работает с зонами, то есть не хранит информацию о том, к какому городу или региону относится клиент.

Сроки

Без модуля интеграция платформы с сайтом, как правило, длилась 3 месяца. С модулем она обычно занимает +/− месяц.

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

Интеграция проходит в 2 этапа:

  1. Менеджер Mindbox готовит платформу к интеграции, то есть настраивает ее под клиента. Разработчики заказчика интегрируют модуль с сайтом — скачивают и настраивают модуль по инструкции. На это нужно несколько дней.
  2. Затем разработчики настраивают модуль под кастомные особенности сайта и задачи бизнеса. Этот этап, как правило, занимает месяц — зависит от того, насколько сильно сайт кастомизирован.

Второй этап нужен, так как у модуля есть ограничения по функционалу. При необходимости их можно исправить с помощью штатных разработчиков или внешних подрядчиков.

Особенности проекта

Для нас проект был нетипичный, поэтому где-то приходилось корректировать привычные процессы, чтобы получить нужный результат.

Продуктовая разработка

То есть разработка одного конкретного продукта — больше коммуникации с клиентом, объемнее и сложнее задачи.

Мы работали спринтами — по методологии SCRUM.

Проводили еженедельные созвоны — обсуждали, что болит у клиентов модуля, как будем реализовывать фичи, искали пути решения проблем.

Система релизов

Тоже относится к продуктовой разработке, но про нее надо рассказать подробнее.

На первых этапах, когда мы фиксили баги или добавляли новые фичи, клиентам приходилось каждый раз переустанавливать модуль, чтобы внедрить эти обновления.

То есть нужно было удалить модуль из админки сайта и заново установить из маркетплейса «Битрикс». Настройки сохранялись, но все же когда удаляешь модуль, что-то может сломаться.

Допустим, авторизация на сайте работала через модуль. Если его удалить, то авторизоваться тоже не получиться, — после переустановки надо будет все настраивать заново.

Или, например, скидки на сайте работали через модуль. Если его удалить, из каталога скидки тоже исчезнут.

В общем, долго и неудобно. Поэтому мы ввели систему релизов — с ней достаточно просто обновить модуль.

Это работало так.

Мы регулярно выпускали определенную версию продукта. На еженедельных созвонах договаривались, что будем включать в конкретный релиз, — какие ошибки исправим, какой функционал добавим. После этого выполняли план задач во время, например, двухнедельного спринта. Когда все сделано и согласовано, выпускали новую версию модуля.

Частота релизов, как правило, от одной до четырех недель. Могло быть и полтора месяца перерыва — тогда мы набирали массу задач, чтобы сделать новый релиз.

Были клиенты, которым срочно нужно пофиксить баг или добавить фичу — в этом случае мы отдавали им обновление в течение недели. Они обкатывали, и мы разливали это на всех.

Как происходит релиз:

  1. Делаем сборку модуля. Например, у нас есть 6 разных задач с доработками — их нужно слить, то есть объединить в один код.
  2. После сборки раскатываем модуль на несколько тестовых стендов, чтобы посмотреть, как он работает. Есть 2 основных стенда: один для CDP, другой — для программы лояльности.

Чтобы протестировать модуль для клиентов, которые устанавливают его с нуля, мы использовали тестовый сайт без модуля.

Чтобы проверить модуль для клиентов, которые обновляют уже установленный модуль, — использовали соответствующий тестовый сайт, где модуль уже был установлен.

Когда все раскатали, в дело вступает тестировщик. Здесь тоже есть интересная особенность.

Тест-кейсы

Тест-кейс — это Excel-документ, в котором описано, как все должно работать.

Простой пример тест-кейса.

Нам нужно проверить, что списание баллов при оформлении заказа работает корректно.

Как проверяем:

  1. Открываем страницу товара 1 и товара 2.
  2. Добавляем товары в корзину.
  3. Открываем корзину.
  4. Применяем промокод, например, PROMO1.

Успешный результат: скидка N рублей.

То есть тест-кейс — это алгоритм, по которому мы тестируем функционал продукта. И такую последовательность нужно прописать для каждой функции, а потом протестировать.

Релиз каждой версии модуля проходил через тест-кейс. Нужно было тестировать как новые фичи, которые добавлены в релиз, так и стандартный функционал — это суперважно, потому что даже 2 мелких улучшения могут что-то поломать.

Прямая коммуникация с менеджером продукта Mindbox

Обычно вся коммуникация проходит через наших менеджеров.

В этот раз мы добавили в нашу Jira менеджера продукта Mindbox, чтобы он мог сам общаться с разработчиками.

Причина, почему так сделали, — это высокие технические компетенции у менеджеров продукта, которые занимались модулем. Они могли оперативнее проконсультировать наших разработчиков. Это повысило скорость работы.

Наши проджекты отвечали за контроль и выполнение сроков.

Этапы работы

1. Доработка MVP-версии модуля

Итак, Mindbox отдали нам текущую MVP-версию, которая не работала на боевых задачах.

Мы ее проанализировали, нашли ошибки, отрефакторили код и зарелизили новый MVP. Он включал только стандартный режим модуля — CDP.

Не без багов, но основная функциональность работала. Управились за 3 месяца.

Что умеет модуль в режиме CDP:

  1. Передавать данные из личного кабинета пользователя:— авторизация и регистрация,— редактирование персональных данных,— оформление заказа,— изменение статуса и состава заказов,— удаление и добавление товаров в корзину и избранное.
  2. Генерировать товарный фид.
  3. Передавать события о просмотре товаров и категорий — для этого нужно установить отдельные компоненты на странице каталога.

2. Разработка режима лояльности

После релиза доработанного MVP мы начали разрабатывать режим программы лояльности. Через полгода он был готов.

Что умеет модуль в режиме лояльности:

  1. Передавать те же данные из личного кабинета пользователя, что и в режиме CDP, плюс:— подтверждение контактов,— отображение истории бонусов,— отображение истории онлайн- и офлайн-заказов.
  2. Рассчитывать публичные и персональные скидки, баллы и промокоды.

3. Обновление SDK

Зайдем немного издалека.

Допустим, у нас есть сайт не на «Битрикс». Следовательно, для него нельзя провести интеграцию через модуль. Поэтому надо интегрировать сервисы Mindbox вручную.

Сайт обменивается данными с Mindbox с помощью API — это связь между сайтом и платформой.

Чтобы проект смог полноценно взаимодействовать с API Mindbox, нужно написать о-о-очень много кода. Так вот SDK создан, чтобы облегчить процесс. По сути, это библиотека с уже готовым кодом: реализованным http-клиентом, описанными методами API и обработкой ошибок. Разработчику остается только использовать готовые методы и функции в кодовой базе проекта.

Пример: нам нужно получить историю баллов клиента.

Если интеграция напрямую с Mindbox, то, чтобы получить выгрузку, нужно авторизоваться, подключиться к платформе, выполнить несколько команд — то есть написать, предположим, 30 строк кода.

Если интеграция через SDK, оттуда можно сразу вызвать готовый метод, например, получить баллы по конкретному пользователю. И надо будет написать уже 5 строк кода, а не 30.

Модуль делается на основе SDK, который нужно регулярно актуализировать. Чем шире функционал модуля, тем больше изменений нужно внести в SDK — этим мы и занимались, параллельно разрабатывая проект.

4. Работа с техническим долгом

Технический долг — это проблемы, которые накопились в самом коде или в его архитектуре.

В какой-то момент мы дошли до точки, когда стало сложно поддерживать архитектуру кода. Решили, что нужно рефакторить.

С версии 2.6.0 начали работать над улучшением кода. Параллельно развивали модуль, добавляли фичи и фиксили баги.

5. Отключение программы лояльности

11 ноября 2022 года мы зарелизили версию модуля, в которой отключена программа лояльности — это не влияет на клиентов, у которых уже установлен модуль с данным режимом.

Почему решили отключить:

Иногда надо уметь признать, что больше не равно лучше — для нас это стало ценным кейсом и важным опытом разработки, который круто прокачал команду.

Иван Шишкин
Руководитель отдела
Зелёный свет?

Разработка и развитие интернет-магазинов

Мы помогаем увеличивать выручку интернет-магазинов за счет быстрой и отлаженной аутсорс-разработки, рекламы и аналитики.

16

лет работы

150+

проектов

100%

команды
в штате

90%

клиентов с нами
дольше 3 лет

Начать проект