Опыт

Платформа BentoCloud для размещения заказов на ПО (софтверные подписки) для RRC

О заказчике

Компания RRC https://rrc.ru/ является дистрибьютором ПО, в том числе и ПО, распространяемого по подписочной модели.

Цель проекта

Основной целью проекта является создание системы/платформы для размещения заказов на ПО (софтверные подписки). Платформа должна через API коннектиться к соответствующим порталам вендоров (как пример, портал Microsoft https://partner.microsoft.com) и там размещать заказ после того, как пользователь разместил данный заказ на платформе. В перспективе добавятся и другие вендоры, которые продают подписки, но на данный момент нужно сделать решение, работающее только с порталом Майкрософт.​​​​​

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

Платформа автоматизирует оформление, изменение и учет подписок (Subscriptions) и клиентов (Customers).​​​​​

Сотни дилеров ежемесячно покупают лицензии на продукты Microsoft для своих клиентов. Подписки меняются. Регулярно требуется остановить подписку, добавить, изменить количество, поменять реквизиты клиента, добавить нового клиента. Каждому дилеру и его клиенту нужно отправлять цены с учетом наценки от закупочной цены (List Price) или скидки от рекомендованной (EPR Price), а также ежемесячно считать суммы для выставления дилерам, сверять их со счетами из Microsoft.

Платформа позволяет выполнять все эти задачи в едином интерфейсе, а именно:

  • Делегировать управление подписками своих клиентов дилерам или же самим клиентам.
  • Назначать скидки/наценки и показывать цену продуктом с их учетом.
  • Рассылать уведомления/напоминания.
  • Выставлять лимиты расходов дилерам и клиентам.

Описание функционала

Регистрация

В процессе работы отказались от открытой регистрации. Нового пользователя создает Партнер либо Дистрибьютор для Клиента.

Платформа для размещения заказов на ПО. Регистрация

Редактирование персональных данных

Платформа для размещения заказов на ПО. Редактирование персональных данных

Авторизация

Платформа для размещения заказов на ПО. Авторизация

Восстановление пароля

Платформа для размещения заказов на ПО. Восстановление пароля

Юрлица (данные клиента уходят в Microsoft)

Список клиентов

Платформа для размещения заказов на ПО. Список клиентов

Редактирование контактных данных клиента

Платформа для размещения заказов на ПО. Редактирование контактных данных клиента

Список партнеров

Платформа для размещения заказов на ПО. Список партнеров

Редактирование партнера

Платформа для размещения заказов на ПО. Редактирование партнера

Список пользователей

Платформа для размещения заказов на ПО. Список пользователей

Группы пользователей

Пользователи разбиты на группы: администраторы, пользователи партнеров и пользователи клиентов.

Права доступа

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

Интеграция с partner.microsoft.com

  • Авторизация в API Microsoft, обмен клиентами с Microsoft.
  • Обмен подписками с Microsoft, выгрузка продуктов и sku из Microsoft.
  • Сохраняем логи всех запросов и ответов в Microsoft.

Тестовый перенос заказчиков и реселлеров

Выгрузили из Microsoft клиентов, завели партнеров.

Личный кабинет дистрибьютора

Личный кабинет дистрибьютора

Личный кабинет реселлера

Личный кабинет реселлера

Личный кабинет заказчика (конечного покупателя)

Личный кабинет заказчика

Список подписок клиента

Список подписок клиента

Заказы (изменение количества лицензий, остановка, удаление, открытие новой подписки)

Оформление подписки

Оформление подписки

Редактирование подписки

Редактирование подписки

Прайс-лист

Цены отображаются при оформлении подписки с учетом скидки клиента, партнера и НДС.

Цены

Импорт прайс-листа

Прайс-лист загружается в формате Microsoft в указанном интерфейсе. Сохраняем ERP-цену и List-цену.

Прайс-лист

Скидки, налоги

Клиенту и партнеру можно назначить процент скидки от ERP-price или наценку от list-price. Скидка/наценка партнера добавляется к скидке/наценке клиента, если она есть.

Скидка

Уведомления

Клиент/партнер может подписаться на уведомления о создании подписки, изменении подписки, скором истечении подписки.

Подписка

Клиент получает уведомления о своих подписках, партнер — о подписках своих клиентов.

Уведомления приходят на email, а также отображаются в интерфейсе (реальный клиент).

Уведомления

Финальный перенос заказчиков и реселлеров

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

Развертывание на боевой инфраструктуре

Запустили проект в боевое использование на реальных партнерах/клиентах.

Журнал действий

Журнал действий

Данные приходят из Activity log Microsoft (реальный клиент).

Настройка отчетов о новых подписка за выбранный период

Отчет о подписке

Формат отчета — xlsx.

Интеграция с

Интеграция с 1С

Данные о расходах на подписки клиентов и партнеров передаются в 1С. Автоматической выгрузки нет. Файл в формате xlsx формируется на сайте. Так как Microsoft не всегда дает полные данные об изменении подписок клиентов, реализован функционал сбора информации на стороне сайта и сверку с данными Microsoft.

Лимиты клиента

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

Лимит расходов

Отображение лимитов в отчете по подпискам с указанием лимита клиента, расхода и остатка

Отображение лимитов в отчете

Аддоны для подписки и их покупка

К каждой подписке можно заказать аддоны.

Заказ аддонов

Разработка unit-тестов

Это методология тестирования кода.

Добавили тестирование прав доступа всех групп пользователей ко всем данным и функциям портала. Например, пользователь партнера должен иметь доступ к подпискам только своих клиентов. Мы реализовали проверку того, чтобы при любых изменениях исходных кодов проекта это и все подобные ограничения оставались и работали. Тестирование выполняется локально при разработке и автоматически перед деплоем кода на боевой сервер. Если проверки не пройдены, то ошибочный код не попадает на сервер. Текущее покрытие кода тестами видно здесь http://cetera.pages.cetera.su/bticc/:

Договор

В ноябре 2019 года был заключен Договор на оказание услуг по обслуживанию и развитию информационной системы.

Платформа

  • Сервер — выделенный физический сервер, арендованный Заказчиком в дата-центре, настроен Cetera в рамках проекта.
  • Операционная система — Linux Debian
  • Веб-серверы: Apache, nginx
  • База данных — MySQL
  • Языки программирования: PHP, JavaScript
  • Бекенд на фреймворке Yii2
  • Фронтенд на фреймворке VueJS
  • Дизайн система Carbon от IBM

Разработка

Используются прогрессивные фреймворки для создания пользовательских интерфейсов VueJS и Yii2.

Программирование выполняется на PHP. Отдельные возможности реализованы на стандартных модулях jQuery.

Контроль качества проводится автоматическими системами. Обеспечивается соответствие стандартам PSR для PHP. Проводятся все встроенные тесты (безопасность, производительность, неизменность ядра и т.д.) системы управления контентом.

Реализованы следующие этапы:

Декабрь 2019

  • Регистрация.
  • Редактирование персональных данных.
  • Авторизация.
  • Восстановление пароля.
  • Юрлица.
  • Пользователи.
  • Группы пользователей.
  • Права доступа.
  • Интеграция с partner.microsoft.com (этап 1).

Январь 2020

  • Тестовый перенос заказчиков и реселлеров.
  • Личный кабинет дистрибьютора.
  • Личный кабинет реселлера.
  • Личный кабинет заказчика (конечного покупателя).
  • Подписки.
  • Заказы (изменение количества лицензий, остановка, удаление, открытие новой подписки).
  • Интеграция с partner.microsoft.com (этап 2, пилот).

Февраль 2020

  • Сервисные планы.
  • Прайс-лист.
  • Импорт прайс-листа.
  • Импорт сервисного плана.
  • Скидки, налоги.
  • Уведомления.
  • Финальный перенос заказчиков и реселлеров.
  • Интеграция с partner.microsoft.com (этап 3, релиз).
  • Развертывание на боевой инфраструктуре.

Март 2020

  • Перенос портала на боевой сервер.
  • Перенастроить сервер согласно внутренним гайдам Cetera.
  • Запуск тестирования для тест-группы — из 1-2 партнеров/клиентов.
  • Журнал действий.
  • Отключить автопродление годовых подписок.
  • Настройка отчетов (первый этап работ).
  • Интеграция с 1С (первый этап работ).

Апрель 2020

  • Разработка unit-тестов: авторизация и система прав.
  • Вывести аддоны для подписки и реализовать их покупку.
  • Переделать систему наценок.
  • Отображение лимитов в отчете по подпискам.
  • Завершение работ по интеграции с 1С.
  • Лимиты клиента.

Май 2020

  • Данные по заказчикам партнера АЛВ.
  • Выполнить скрипт.

Дальнейшее развитие

Развитие осуществляется на основе Технического задания №1, Плана работ, являющегося приложением к договору, а также на основе периодических процессов выявления потребностей.

  • Сохранение изменений подписок на сайте и их сверка с тем, что приходит из Microsoft.
  • Мультифакторная аутентификация.
  • Интерфейс для администратора для принудительной выгрузки кастомера, не дожидаясь планового импорта.
  • Брендирование.
  • Разработка unit-тестов: следующий блок.
  • Вложенные друг в друга заказы на аддоны.
В июне 2020 года проект был остановлен.

Похожие кейсы

CRM на Laravel, личный кабинет для клиентов интернет-провайдера WOW TEL S.A.C.

Опыт

CRM на Laravel, личный кабинет для клиентов интернет-провайдера WOW TEL S.A.C.

Поддержка и развитие текущей CRM на Laravel, разработка личного кабинета для клиентов интернет-провайдера WOW TEL S.A.C.
Личный кабинет платформы бизнес-аналитики MaxDAT

Опыт

Личный кабинет платформы бизнес-аналитики MaxDAT

Разработка онлайн-платформы вывода показателей бизнес-аналитики через различные интегрированные сервисы.
B2B-портал для партнеров CISCO

Опыт

B2B-портал для партнеров CISCO

Разработка закрытого портала для партнёров.
Сайт с каталогом и личный кабинет для компании RRC

Опыт

Сайт с каталогом и личный кабинет для компании RRC

Личный кабинет и B2B интернет-магазин для дилеров компании. Интеграция с ERP-системой. 
Индустриальные Компьютерные Системы, ЗАО

Опыт

Индустриальные Компьютерные Системы, ЗАО

Разработка интернет-магазина  для международной группы компаний IPC2U.
IPC2U DE (JSC Industrial Personal Computer 2U GmbH)

Опыт

IPC2U DE (JSC Industrial Personal Computer 2U GmbH)

Локализация интернет-магазина на  английский и немецкий языки.