Найти в Дзене
Brainforce IT

Реализация привязки менеджера к клиентам в магазине 1С-Битрикс

Оглавление

Рассмотрим алгоритм решения одной интересной задачи: необходимо привязать N покупателей к M менеджерам в интернет-магазине на базе 1С-Битрикс. Внедренной CRM системы у клиента нет, необходимо решить задачу только на основании внутреннего учета в Битриксе. Менеджерам должны приходить оповещения о заказах только их клиентов. Примерно таким образом в BrainForce обсуждаем все задачи.

Исходные данные

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

Алгоритм решения

Для начала задачу разделим на 2 части: реализация привязки и уведомлений и настройка админки.

Привязку можно реализовать 2мя способами: через промежуточный инфоблок или через допполе пользователя (Менеджера).

Например, так может выглядеть привязка в инфоблоке:

-2

А вот так - в пользователе

-3

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

Обратите внимание, что привязка в пользователе (поле Шифр) хранится в одном строковом поле в формате JSON. Это позволяет одним запросом к БД получить все необходимые привязки. Правда, в этом случае новые привязки система должна получать откуда-то (либо из 1С, либо из отдельного интерфейса на сайте).

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

Покажем работу на примере почтового уведомления.

  • Необходимо перехватить событие OnOrderNewSendEmail в init.php (или через собственный модуль), в нем получить ID покупателя и по нему определить привязку менеджера.
  • Отправить менеджеру уведомление на почту
  • Если реализован чат-бот для магазина, то можно отправить сообщение и в чат-бот для соответствующего менеджера (но это уже отдельная история, которую рассмотрим чуть позже)

Узкие места в алгоритме

Данный алгоритм имеет несколько узких мест, которые должны быть решены:

  • Что делать, если менеджер отсутствует на рабочем месте или уволился. Он не увидит отправленное уведомление по заказу и не обработает его. В случае увольнения логично будет автоматически переназначить клиентов на другого менеджера. Например, по событию смены группы пользователя на "Уволенные менеджеры" или на удаление пользователя с сайта. Если же менеджера нет на рабочем месте, то тут сложнее. Самый простой вариант, чтобы если менеджер отсутствует он ставит об этом отметку, либо в начале рабочего дня заходит на сайт и авторизуется в системе. Дата/время входа на сайт сохраняются и при их наличии сегодня менеджеру уходят уведомления. Если менеджер сегодня не авторизовался, то уведомление уходит либо резервному менеджеру либо администратору.
  • Что делать с еще неназначенными клиентами. В этом случае самый простой вариант - отправлять уведомление администратору с отметкой о том, что клиент не привязан к менеджеру. Администратор выполняет привязку и далее система работает по стандартному алгоритму.

Примерные трудозатраты

Решение подобной задачи занимает от 8 до 14 часов в зависимости от дополнительных критериев в условии задачи.

Результат

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

Обращайтесь за автоматизацией своего интернет-магазина

Больше мыслей о веб-разработке, конверсиях и онлайн бизнесе на нашем Телеграм канале: https://t.me/bf_conversion