Задача [CRM16]: внешний модуль "Управление продажами"

Формулировка проблемы: необходимо реализовать кейс системы управления взаимоотношениями с клиентами.

Связанные задачи:

Решение:

Модуль "Управление продажами"
  • Модуль доступен для подразделения "Отдел продаж".

  • Модуль содержит групповые кнопки, переключающие вид отображения воронки:

    • "Воронка"

    • "Канбан"

  • По умолчанию выбран вид отображения "Канбан".

  • По нажатию на кнопку "Воронка" основная область содержит воронку продаж.

  • По нажатию на кнопку "Канбан" основная область содержит канбан продаж.

  • Боковая панель содержится в рабочей области для обоих видов отображения.

  • При переключении вида отображения настройки в боковой панели не изменяются.

Боковая панель
  • Изменение значений настроек боковой панели должно сопровождаться анимацией загрузки.

Пользователи
  • Настройка представлена компонентом выбора пользователей.

  • Компонент содержит авторизованного пользователя, а также его подчиненных из подразделения "Отдел продаж".

  • Компонент позволяет выбрать:

    • всех пользователей;

    • нескольких пользователей;

    • одного пользователя;

    • ни одного пользователя.

  • По умолчанию выбран авторизованный пользователь.

Фильтры
  • Доступно три параметра фильтрации:

    • Период

    • Статус сделки

    • Стоимость

  • При фильтрации сделок за период учитывается только факт смены значения в поле "Статус" записи реестра Сделка. Если за указанный период значение этого поля изменялось несколько раз, то в воронку должно войти только последнее.

  • Параметр "Период" представлен выпадающим списком и двумя компонентами выбора даты, разделенными тире.

  • Выпадающий список периода содержит пункты:

    • "За все время" - воронка содержит все сделки с момента создания записи реестра до текущего времени на сервере.

    • "Прошедшая неделя" - учитываются только те сделки, у которых изменился статус за последнюю неделю от текущего дня на сервере.

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

    • "Прошедший квартал" - учитываются только те сделки, у которых изменился статус за последний квартал от текущего дня на сервере.

    • "Прошедший год" - учитываются только те сделки, у которых изменился статус за последний год от текущего дня на сервере.

    • "Произвольный период" - учитываются только те сделки, у которых изменился статус за указанный пользователем период.

  • Компоненты выбора даты активны только при выбранном пункте "Произвольный период".

  • Компоненты выбора даты по умолчанию отображают период текущий день на сервере + месяц.

  • Параметр "Статус" представлен выпадающим списком с пунктами:

    • "Все";

    • значение crm_dict_dealStatus_type записи справочника crm_dict_dealStatus, у которой crm_dict_dealStatus_end=1;

    • значения crm_dict_dealStatus_type всех записей справочника crm_dict_dealStatus, у которой crm_dict_dealStatus_quality=0.

  • Статус "Все" включает в себя все записи справочника crm_dict_dealStatus со значением crm_dict_dealStatus_quality=1.

  • Параметр "Стоимость" представлен двумя числовыми полями:

    • минимальная граница значения поля Бюджет всех сделок

    • максимальная граница значения поля Бюджет всех сделок

  • По умолчанию выбраны:

    • Период - "За все время"

    • Статус - "Все"

    • Стоимость:

      • от - минимальная значение поля Бюджет

      • до - максимальная значение поля Бюджет

Воронка продаж
  • Воронка продаж представлена в виде кнопок статусов сделки.

  • Статусы сделки определяются записями справочника crm_dict_dealStatus.

  • Кнопки статусов содержат два типа значений:

    • количество сделок данного статуса;

    • коэффициент конвертации.

  • Значение отображаются в формате:

    %название_статуса%

    %количество_сделок_статуса% (%коэффициент_конвертации%)

  • Коэффициент конвертации отсутствует для кнопки первого статуса.

  • Коэффициент конвертации рассчитывается как:

    количество сделок последующего статуса / количество сделок предыдущего статуса * 100%

  • Изменение количества сделок и коэффициентов конвертации должно происходить в режиме реального времени.

  • Кнопки статусов сделок имеет форму трапеции.

  • Ширина кнопок статична:

    • максимальная - 450px по наибольшей горизонтальной стороне кнопки;

    • минимальная - 150px по наименьшей горизонтальной стороне кнопки.

  • Кнопки воронки продаж имеют одинаковую статичную высоту, пропорционально максимальной высоте воронки.

  • Минимальная высота кнопок - 40px.

  • Максимальная высота всей воронки - 500px.

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

  • Если не выбран ни один пользователь воронка отображается пустой:

    • значения количества сделок и коэффициента конвертации - 0;

    • кнопки имеют минимальную высоту.

Панели стоимости и комиссии {#crm16.cost&comission}
  • Стоимость продаж в панели - сумма значений компонента Бюджет всех сделок текущей воронки.

  • Комиссия продаж в панели рассчитывается как:

    стоимость продаж * % комиссии продаж

    где % комиссии продаж - значение поля % комиссии первой созданной записи реестра % комиссии продаж.

  • Значение поля "% комиссии" для каждой отдельной сделки идет в расчет согласно значению crm_dict_dealStatus_end записи справочника crm_dict_dealStatus:

  • При смене статуса сделки на запись справочника crm_dict_dealStatus, у которой crm_dict_dealStatus_end=1, для нее сохраняется текущий % комиссии. Он будет использоваться в расчете, даже если строка динамической таблицы с таким % будет удалена.

  • Если в записи реестра % комиссии продаж указано несколько записей с одинаковыми датами начала, то в расчет идет последний % комиссии, удовлетворяющий требованиям.

  • Значение комиссии продаж в панели округляется до целого.

Рисунок 8. Воронка продаж

Воронка продаж

Канбан продаж
  • Основная рабочая область содержит панели сделок, расположенные в виде таблицы, где:

    • столбцы - статусы сделок (значения crm_dict_dealStatus_type записи справочника crm_dict_dealStatus) согласно текущей фильтрации

    • строки - сделки

  • Панели статусов окрашены в цвета, указанные в поле crm_dict_dealStatus_color записи справочника crm_dict_dealStatus.

  • Панели сделок отсортированы в столбце согласно убыванию значений компонента Бюджет всех сделок текущего статуса.

  • Панель статуса содержит:

    • Значение crm_dict_dealStatus_type записи справочника crm_dict_dealStatus

    • Количество сделок данного статуса

    • Сумма значений компонента Бюджет всех сделок текущего статуса.

  • Панель сделки содержит значение полей:

  • По нажатию на панель сделки откроется соответствующая запись реестра Сделка.

  • Цвет фона наименования аккаунта в панели - значение crm_dict_dealStatus_color записи справочника crm_dict_dealStatus выбранного статуса с прозрачностью 30%.

  • Все поля в панелях сделки и статуса отображаются на одной строке без переносов.

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

  • Для полей в панелях сделки и статуса имеются тултипы.

  • Имеется возможность перемещения панелей сделок горизонтально между столбцами при помощи drag-n-drop.

  • Переместить панели сделки можно из всех столцов в любой столбец без исключений.

  • При перемещении панели сделки между стоблцами изменяется значение поля "Статус" данной записи реестра Сделка согласно новому статусу (столбцу таблицы).

  • Ширина каждого столбца одинаково пропорциональна и в сумме составляет общую ширину основной рабочей области.

  • Минимальная ширина столбца - 200px.

  • Если таблица содержит один статус, то ее столбец отображается на ширину всей рабочей области.

  • Если количество столбцов такое, что они не отображаются в основной рабочей области полностью, отображается горизонтальный скролл.

  • Если количество панелей сделок такое, что не отображается в основной рабочей области полностью, отображается вертикальный скролл.

  • При прокрутке таблицы строка заголовков (статусов сделок) имеет фиксированное положение.

Рисунок 9. Канбан продаж

Канбан продаж

Доработка объектов конфигурации
Доработка формы "Сделка"

При создании записи реестра "Сделка" путем смены статуса или нажатием на кнопку поле crm_form_deal_responsibleManager_responsible по умолчанию заполняется пользователем, указанным в первой записи реестра "Ответственный за сделки".

Форма "Ответственный за сделки"

Код формы: crm_form_deal_responsible.

Форма содержит следующие компоненты:

Поле Тип компонента Имя компонента

Ответственный за сделку

компонент выбора пользователей

crm_form_deal_responsible_user

Реестр "Ответственный за сделки"

Свойства реестра:

Свойство Значение

Код

crm_registry_deal_responsible

Форма документа

crm_form_deal_responsible

Группа

менеджеры-маркетологи, менеджеры по продажам

Права

Просмотр списка, Просмотр данных, Изменение, Редактирование

Сортировка

по дате создания

Направление сортировки

по убыванию

Отображаемые поля формы:

Идентификатор колонки Название поля Номер Значащее содержимое

crm_form_deal_responsible_user

Ответственный менеджер

да

Доработка справочника "Статусы сделки"

Поля справочника:

Код Имя Комментарий Переводить

crm_dict_dealStatus_type

Тип

Да

crm_dict_dealStatus_value

Порядковый номер пункта в выпадающем списке

Не может иметь значение, равное 0

Нет

crm_dict_dealStatus_quality

Качество

0 - negative

1 - positive

Нет

crm_dict_dealStatus_end

Законченность

Имеет смысл только для crm_dict_dealStatus_quality=1

0 - not end

1 - end

Нет

crm_dict_dealStatus_color

Цвет панели в воронке

Нет

Данные справочника по умолчанию:

Тип Порядковый номер пункта в выпадающем списке Качество Законченность Цвет панели в воронке

Уточнение потребности

1

1

0

#ee902d

Подготовка приложения

2

1

0

#f3c02d

Защита предложения

3

1

0

#c9d02c

Закрытие сделки

4

1

1

#9fcb2c

Отказ

5

0

#b82b2b

Если некоторые параметры не были указаны, то им присваиваются значения по умолчанию:

  • не указан crm_dict_dealStatus_quality:

    • crm_dict_dealStatus_quality=1

    • crm_dict_dealStatus_end=0

  • не указан crm_dict_dealStatus_end:

    • crm_dict_dealStatus_end=0

  • не указаны crm_dict_dealStatus_quality и crm_dict_dealStatus_end:

    • crm_dict_dealStatus_quality=1

    • crm_dict_dealStatus_end=0

  • не указан crm_dict_dealStatus_color:

    • crm_dict_dealStatus_color=#f3c02d

Запись с данными crm_dict_dealStatus_quality=1 и crm_dict_dealStatus_end=1 должна быть одна. Если таких записей несколько, то данные значения применяются только для первой созданной записи. Остальным записям из списка присваивается значение crm_dict_dealStatus_end=0.

Список статусов сделок, для которых crm_dict_dealStatus_value=0 либо не указан вовсе, сортируются по параметру crm_dict_dealStatus_type в локали С в алфавитном порядке.

% комиссии продаж

Необходимо переименовать существующие объекты конфигурации:

  • реестр "% комиссии" в "% комиссии лидогенерации"

  • форму "% комиссии" в "% комиссии лидогенерации" (на трех языках)

После этого в типовую конфигурацию добавляются новые форма и реестр.

Форма "% комиссия продаж"

Код формы: crm_form_deal_comission.

Форма содержит следующие компоненты:

Поле Тип компонента Имя компонента

% комссии

динамическая таблица

crm_form_deal_comission_main

Дата начала

дата

crm_form_deal_comission_main_start_date

Дата окончания

дата

crm_form_deal_comission_main_finish_date

% комиссии

числовое поле

crm_form_deal_comission_main_comission

Динамическая таблица "% комиссии":

  • Форматная строка:

    [Значение ${crm_form_comission_main_deal_comission}% с ${crm_form_deal_comission_main_start_date} по ${crm_form_deal_comission_main_finish_date}]

Поле "Дата начала":

  • Флаги "Заблокировать от изменений пользователем" и "Заполнять текущей датой/временем" включены.

Поле "Дата окончания":

  • Флаг "Заблокировать от изменений пользователем" включен.

  • Компонент в последней строке заполняется текущей датой при добавлении новой строки динамической таблицы.

Поле "% комиссии":

  • Значение поля по умолчанию при создании записи реестра - 5.

Реестр "% комиссия продаж"

Свойства реестра:

Свойство Значение

Код

crm_registry_deal_comission

Форма документа

crm_form_deal_comission

Группа

менеджеры по продажам

Права

Просмотр списка, Просмотр данных, Изменение, Редактирование

Сортировка

по дате создания

Направление сортировки

по убыванию

Отображаемые поля формы:

Идентификатор колонки Название поля Номер Значащее содержимое

crm_form_deal_comission_main

% комиссии

нет