Заказчик

B2B платформа RM (Profiline)

Компания РМ — производитель продукции для печати под известным брендом Profiline, является одной из ведущих компаний в России по оптовым поставкам картриджей, тонеров и других расходных материалов для офисной техники. 

 

Факты и цифры о компании:

  • Работает с 1996 года 
  • Дилерская сеть свыше 2000 партнеров 
  • Работает в 300 городах России и странах СНГ 
  • В компании работает более 180 человек 
  • Общая площадь складских помещений более 30 000 квадратных метров 

Цель  и польза проекта

  • Автоматизировать и упростить работу для сотрудников отдела продаж; 
  • Разработать удобную платформу для клиентов с возможностью размещения заказов в режиме 24/7
  • Увеличить объем продаж компании в 2 раза

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

 

Переход с 1С:Предприятие 7.7 на 1С: Предприятие 8.3.
Главная проблема была связана с тем, что начало работ над порталом совпало по времени с переходом компании РМ со старой версии 1С: Предприятие 7.7 на новую, реализованную «с нуля» на основе библиотеки стандартных подсистем, конфигурацию на платформе 1С: Предприятие 8.3.

Требовалось построить архитектуру, чтобы запустить портал как можно скорее, не ожидая завершения перехода на 8.3. Мы предложили решение, при котором портал предполагает наличие специальной «прокладки», которая может работать сразу из двух баз, ей все равно, откуда брать информацию. Благодаря этому решается проблема дублирования данных: вся новая информация вносится сразу в новую базу, а не в обе, как пришлось бы делать, если бы мы воспользовались стандартной архитектурой. 
Подробно мы рассказывали об этом в кейсе внедрения 1С.

 

Марафон данных 
Налаженный обмен данными — одна из ключевых составляющих успешного портала. На этом этапе практически всегда возникает какая-нибудь проблема, с которой надо бороться. В данном случае, на портале используются сразу 14 типов данных, которые надо было соотнести между собой: 

  • Холдинги (группа юр. лиц, представляющих собой фактически одного клиента); 
  • Контрагенты (справочник с реквизитами) 
  • Договоры (полная информация о сторонах договора и типе цен в нем); 
  • Список типов цен 
  • Склады 
  • Категории сайта (для перегруппирования номенклатуры, структура каталога в 1С и на сайте не совпадает) 
  • Категории 1С (для той же цели) 
  • Номенклатура (собственно товары с характеристиками) 
  • Цены (значения цен) 
  • Остатки (с учетом резервов) 
  • Категории пользователей 
  • Финансы (данные о дебиторской задолженности) 
  • Менеджеры (отдельный список разрешенных пользователей портала) 
  • Индивидуальные цены (те самые персональные цены на конкретную позицию)
  • Регионы (перечень регионов, в которых работают контрагенты, используется для привязки складов) 

 

Синхронизация
Полный обмен данными об ассортименте, как правило происходит один раз в сутки в ночное время, поскольку требует перекачки большого объема данных. И проблема заключалась в том, что синхронизация этих данных должна идти в определенной очереди. Типичный пример: когда мы синхронизируем данные юридических лиц, то надо понимать, что все они привязаны к разным холдингам или клиентам. А это означает, что вся информация о холдингах к этому моменту должна быть загружена. Но каждый из этих типов данных содержит разный объем информации. В свою очередь, программы, которые синхронизируют разные виды данных, работают разное время, причем разница существенная. И нам нужно было настроить такую очередность и расписание, чтобы всё нормально синхронизировалось. Всё бы ничего, но синхронизация под разными нагрузками сервера работает по-разному: с разницей чуть ли не в несколько минут. Пришлось разрабатывать решение, которое позволяет учитывать все эти задержки.

«Решением в нашем случае является использование дополнительного компонента Symfony process component -который позволяет выполнять команды синхронизации в нужной очереди дождавшись выполнение предыдущей синхронизации. Таким образом, расписание синхронизации свелось к одному единственному запуску процесса, который, в свою очередь, управляет синхронизацией данных в нужном порядке, при этом гарантирует четкую очередность выполнения», — рассказывает технический директор Compo Владимир Гантурин. 

Ну и, конечно, надо было так выстроить синхронизацию, чтобы исключить сбои и минимизировать время процесса. В итоге полная загрузка данных, порядка 600 000 записей, синхронизируется за 7-9 минут, в зависимости от нагрузки.

Для примера, синхронизация 6858 контрагентов со всеми данными на довольно слабом тестовом сервере с помощью автоматической консольной команды выполняется за 15 секунд. 

Синхронизация данных в B2B платформе

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

На уровне 1С запущены WEB-сервисы, что позволяет порталу самому быть инициатором обмена. Такой метод позволяет порталу получать требуемую информацию тогда, когда это необходимо, что облегчает и ускоряет обмен. Данные обмена представляют собой отдельные передаваемые файлы в формате json.

Механизм отправки данных на портал работает следующим образом: портал отправляет запрос, содержащий в себе указание на тип выгрузки, и, при необходимости, дополнительные отборы. Например, для контрагентов есть возможность указать идентификатор отдельного клиента и тогда в ответ придет информация только по этому пользователю. Это позволяют сделать обмен «точечным», что благоприятно сказывается на скорости обновления информации и на загруженности базы 1С. 1С, получив запрос, формирует необходимые файлы данных и передает их обратно на B2B-портал. При этом, в случае полной выгрузки на портале происходит очистка неактуальных данных, при частичной выгрузке (применены какие-либо из отборов) данные только дополняются. Это позволяет избежать накопления «мусора» на портале.

Оформление и дизайн

 

Оформление и дизайн B2B платформы

 

Нестандартные решения

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

Вместо этого мы ввели дополнительные способы подбора товара. Система автоматически формирует список из последних заказанных товаров. Так что если пользователь помнит, что недавно заказывал нужный ему сейчас картридж, он найдет его там.

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

Кроме того, перед началом подбора номенклатуры пользователь указывает следующие данные:

  • Договор, в соответствии с которым он будет делать закупку. Это нужно, чтобы показывать ему именно те цены, по которым он будет приобретать товар, поскольку для разных договоров один и тот же контрагент может иметь разные цены
  • Склад, с которого он планирует забирать товар. Это нужно, чтобы с одной стороны отсеять лишнюю для контрагента информацию, с другой - дать ему возможность заказать нужный товар из другого региона, если будет такая необходимость.

Некоторые контрагенты RM-Company делают заказы с помощью внутренних UID-кодов товаров, или их частей. Нами были разработаны соответствующие инструменты подбора по UIDу и части UIDа, плюс возможность загрузки Excel-файла с кодом товара и количеством. При загрузке на сайт, исходя из данных этого файла, формируется корзина.

Отображение наличия товара и валюты отличается и настраивается для разных контрагентов на платформе. Какие-то клиенты видят остатки, как “много-мало-достаточно”, другие могут видеть фактические остатки в штуках по своим складам. Этим достигается гибкость работы компании. Похожая ситуация и с брендами. Если клиент не работает с какими-то брендами, то такие они отключаются и ненужная номенклатура не отображается для выбора.

Модуль с рекламациями был немного изменен в данном проекте. Поскольку сложности, возникающие при поставке товара разнообразны, мы решили упростить форму отправления претензии, ограничив ее двумя полями - номер заказа (выбирается из списка заказов) и свободное поле с описанием. Поскольку в данном проекте рекламации не передаются порталом в 1С, а отрабатываются менеджерами в административной части, все спорные вопросы проще прояснить в чате с менеджером. 

 

Общая структура B2B платформы

При всех описанных выше деталях, если посмотреть на схему функциональных модулей портала, то она будет выглядеть совершенно стандартно.

Общая структура B2B платформы

 

 

Достигнутые результаты после внедрения

  • В течение 3-х месяцев после запуска на использование B2B платформы перешли 38% клиентов
  • Сократилось время обработки заказа с 20 минут (до внедрения) до 3 минут (после внедрения)
  • Средний чек вырос на 22%, количество заказов от одного клиента на 15%

О выборе подрядчика и ходе работы

Вопросы задает Алексей Комраков, руководитель B2B проектов компании Compo, отвечает Андрей Ветлужских, IT-директор компании РМ.

 

АК: Три основные причины, из-за которых компания приняла решение о внедрении B2B платформы?

  • АВ: Необходимость повышения эффективности работы менеджеров отдела продаж
  • Необходимость удовлетворить потребность существующих клиентов
  • Запрос на наличие b2b-портала со стороны новых клиентов.

 
АК: Какие основные трудности ожидались от запуска площадки? Были ли какие-нибудь причины, из-за которых вы сомневались, внедрять ли портал?

АВ: Сомнение вызывала безопасность и надежность системы с точки зрения утечки данных, составляющих коммерческую тайну.

 

АК: Какие вопросы ставились разработчику на этапе первичного отбора? (то есть, как проходил предварительный отсев среди всего многообразия разработчиков)

АВ: Основные вопросы: безопасность, надёжность, гибкость системы, возможность обеспечить индивидуальные настройки для каждого контрагента, а также стоимость работ.
 

АК: Какие альтернативы рассматривали? 

АВ: Основная альтернатива – магазин на Bitrix, доработанный под нужды Компании.

 
АК: Сколько прошло времени от идеи, что надо запустить B2B-портал до окончательного решения по выбору разработчика?

АВ: Это вторая попытка запустить b2b-портал. Первая оказалась неудачной. Период времени между первой и второй составил около 4-х лет.


АК: Какие впечатления остались у Вас от совместной работы? Что понравилось, в чем нам еще надо прибавить? Оцените свои впечатления от 1 до 10 баллов.

АВ: Впечатления остались крайне положительные (хотя говорить в прошедшем времени не верно, поскольку сотрудничество продолжается). Хорошее взаимодействие с исполнителем, гибкость в внедрении различных решений и понимание наших требований как заказчика сыграли огромную роль в внедрении. Пожелать хотелось бы чуть большей инициативности и твердости в предложении ваших идей и решений для проектов ваших заказчиков.

 

АК: Насколько удобной оказалась для Вас в работе система CompoB2B? Есть ли функционал, которым бы Вы порекомендовали бы нам дополнить базовую версию?

АВ: Система удовлетворила наши ожидания приблизительно на 80%. Из рекомендаций -  добавить в административную панель большую гибкость для стороны заказчика.


 
АК: Какие положительные сдвиги в работе компании Вы заметили после внедрения?

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

 

АК: С какими сложностями Вы столкнулись при запуске системы?

АВ: Довольно много клиентов имеют свои персональные желания требующие удовлетворения. Не исключением стала и их работа с нашим порталом. В подстроении под эти потребности, при этом не теряя универсальности для всех клиентов и заключалась основная сложность.


АК: Существуют ли планы по развитию внедренной платформы?

АВ: Определенно. Бизнес, как и мир, не стоит на месте, а вместе с ним и B2B портал должен развиваться. 

В данный момент внедрили  API для клиентов, благодаря которому они могут:

  • Сгенерировать токен для доступа к API
  • Выгружать номенклатуру в разрезе складов и контрагентов в формате XML
  • Выгружать свой список складов и менеджеров в формате JSON
  • Автоматически делать заказы из своих систем с помощью передачи JSON-объектов, содержащих необходимую информацию для заказа.


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

 

Технологии

Базовые технологии – Linux, Nginx, PHP, Symfony Console Component
Работа с данными – MySQL
Веб-интерфейс –  Angular, Bootstrap, JQuery
Управление версиями – GitHub 
Форматы хранения, обработки и передачи данных – XML, JSON, XLS, PDF, CSV

Отзыв клиента

Самой сложной задачей для нас было найти надежного партнера для разработки B2B платформы, на которой базируется развитие нашей цифровой стратегии. Мы хорошо понимали, что без автоматизации всех бизнес-процессов, масштабироваться дальше было невозможно.

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

Платформа Compo B2B попала в наш шорт-лист, так как это решение удовлетворило 90%  наших требований и обеспечило достаточную гибкость для реализации специфических требований, включая разработку эксклюзивного дизайна. Кроме того, скорость обмена данными с нашей ERP показала отличные результаты. А это очень важно, так как в системе учета более 5 млн записей, которые необходимо постоянно синхронизировать с платформой.

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

Выражаем благодарность сотрудникам Compo за профессиональное отношение к делу. Сотрудничество продолжается!

Генеральный директор
ООО "Компания РМ (Расходные материалы)"
Самсонов С.И.

НАД ПРОЕКТОМ РАБОТАЛИ

Владимир Гантурин Владимир Гантурин

Технический директор

Александр Метельков Александр Метельков

Дизайнер

Сергей Вишневский Сергей Вишневский

Руководитель аналитического отдела

Алексей Комраков Алексей Комраков

Руководитель B2B проектов

ДАНИИЛ ФИРСОВ ДАНИИЛ ФИРСОВ

Эксперт по безопасности

НИКИТА ТРОПИН НИКИТА ТРОПИН

Ведущий разработчик

Мы найдем лучшее решение вашей задачи!

Оставить заявку

Другие проекты

  • Система филиалов
  • Разграничение прав доступа для разных уровней менеджеров
  • Работа дилера по взрыв-схемам
  • Возможность заказать детали пятью разными способами
Смотреть проект
  • Адаптивный интерфейс
  • Работа с логическими складами
  • Приоритезация типов цен
  • Ограничение видимости складов и брендов
  • Розничные суб-аккаунты
  • Полная интеграция с 1С
Смотреть проект

Посмотреть больше о разработке B2B порталов

Перейти

Наши публикации в СМИ