О заказчике
Компания 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/:
- логин: admin
- пароль: wtnthf
Договор
В ноябре 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-тестов: следующий блок.
- Вложенные друг в друга заказы на аддоны.
Похожие кейсы
CRM на Laravel, личный кабинет для клиентов интернет-провайдера WOW TEL S.A.C.
Личный кабинет платформы бизнес-аналитики MaxDAT
Сайт с каталогом и личный кабинет для компании RRC
Индустриальные Компьютерные Системы, ЗАО
IPC2U DE (JSC Industrial Personal Computer 2U GmbH)