Проблема
У заказчика своя торговая марка агрохимических товаров. Он хотел создать сервис, с помощью которого сможет следить за продажами товара на определенных территориях. Для него было важно, чтобы только проверенные дистрибьюторы на конкретной местности представляли товары, чтобы избежать случаев, когда несколько дистрибьюторов звонят покупателям с одним предложением или продают товар по разным ценам.
Решение
Мы разработали сервис для контроля за территориями продаж дистрибьюторов, отслеживания и решения конфликтов. Встроили его как приложение для Битрикс24. Если на одной территории продажи ведут несколько дистрибьюторов, заказчик может увидеть этот конфликт в сервисе и разобраться с ним, оставив только одного дистрибьютора.
Сервис позволяет:
- предоставлять статус дистрибьютора нескольким компаниям в регионе (раньше можно было только одной);
- видеть на карте в режиме реального времени выполнение планов по производительности дистрибьюторов. Все результаты по выполненным планам отображаются в режиме реального времени в виде прогресс-бара.
Техническая реализация
Сервис представляет собой бэкенд на Symfony и фронтенд на Vue+Яндекс Карты. Пользователи и права редактируются на стороне Б24.
Пользователи, незаметно для себя, авторизуются через Битрикс24 в сервисе от своего имени, он видит роль пользователя в Б24 и даёт ему соответствующую функциональность.
Как это выглядит: пользователь заходит в Битрикс24 и нажимает кнопку «Территория продаж». Через iframe вставляется другой сайт внутрь Б24, но так как мы во вставку iframe вставляем данные о пользователе, то пользователь авторизуется внутри этого стороннего сервиса со своим логином от Б24.
Так мы получаем данные о том, кто авторизуется: куратор или дистрибьютор. Поэтому можем дать ему функциональность, соответствующую его правам. Если авторизуется дистрибьютор, то он может добавлять своих клиентов на карту. А если это куратор, то он может видеть конфликты между территориями дистрибьюторов, решать их и т.д.
Итого: сервис хранится на внешнем сервере, подгружается через iframe и взаимодействует с Битрикс24 через JS-библиотеку. OAuth данные передаются в Iframe, поэтому дополнительной авторизации для работы с приложением не требуется.
Если вам нужны сложные интеграции и технические решения, пишите в форму ниже!