Реализация привязки менеджера к клиентам в магазине 1С-Битрикс
Внедренной CRM системы у клиента нет, необходимо решить задачу только на основании внутреннего учета в Битриксе. Менеджерам должны приходить оповещения о заказах только их клиентов.
Исходные данные
У нас есть группа пользователей (Менеджер интернет-магазина), к которой относятся менеджеры. И группа зарегистрированных пользователей (покупателей). Покупатели делают заказы, менеджеры должны получать уведомления и зайдя в админку сайта увидеть только заказы своих покупателей.
Алгоритм решения
Для начала задачу разделим на 2 части: реализация привязки и уведомлений и настройка админки.
Привязку можно реализовать 2мя способами: через промежуточный инфоблок или через допполе пользователя (Менеджера).
Например, так может выглядеть привязка в инфоблоке:
А вот так - в пользователе
При прочих равных хранить привязку в пользователе удобнее и логичнее: нет необходимости создавать дополнительную сущность, при каждом обращении увеличивая нагрузку на базу данных сайта, что на больших объемах данных может стать критичным. Единственное, что нужно понимать задачу более глобально: если в дальнейшем привязка будет осуществляться вручную администратором, то удобнее реализовать через инфоблок, так как там есть удобный интерфейс для этого.
Обратите внимание, что привязка в пользователе (поле Шифр) хранится в одном строковом поле в формате JSON. Это позволяет одним запросом к БД получить все необходимые привязки. Правда, в этом случае новые привязки система должна получать откуда-то (либо из 1С, либо из отдельного интерфейса на сайте).
После того, как привязка реализована и пользователи сопоставлены (вручную, или с помощью дополнительного скрипта) самое время перейти к работе с уведомлениями.
Покажем работу на примере почтового уведомления.
- Необходимо перехватить событие OnOrderNewSendEmail в init.php (или через собственный модуль), в нем получить ID покупателя и по нему определить привязку менеджера.
- Отправить менеджеру уведомление на почту
- Если реализован чат-бот для магазина, то можно отправить сообщение и в чат-бот для соответствующего менеджера (но это уже отдельная история, которую рассмотрим чуть позже)
Узкие места в алгоритме
Данный алгоритм имеет несколько узких мест, которые должны быть решены:
- Что делать, если менеджер отсутствует на рабочем месте или уволился. Он не увидит отправленное уведомление по заказу и не обработает его. В случае увольнения логично будет автоматически переназначить клиентов на другого менеджера. Например, по событию смены группы пользователя на "Уволенные менеджеры" или на удаление пользователя с сайта. Если же менеджера нет на рабочем месте, то тут сложнее. Самый простой вариант, чтобы если менеджер отсутствует он ставит об этом отметку, либо в начале рабочего дня заходит на сайт и авторизуется в системе. Дата/время входа на сайт сохраняются и при их наличии сегодня менеджеру уходят уведомления. Если менеджер сегодня не авторизовался, то уведомление уходит либо резервному менеджеру либо администратору.
- Что делать с еще неназначенными клиентами. В этом случае самый простой вариант - отправлять уведомление администратору с отметкой о том, что клиент не привязан к менеджеру. Администратор выполняет привязку и далее система работает по стандартному алгоритму.
Примерные трудозатраты
Решение подобной задачи занимает от 8 до 14 часов в зависимости от дополнительных критериев в условии задачи.
Результат
В результате реализации клиенты магазина получат лучшие условия обслуживания, а менеджеры не будут отвлекаться на не свои заказы и смогут больше обработать и продать. Весьма ощутимый результат за небольшие затраты.