Как упаковать экспертизу и программные наработки агентства в масштабируемый продукт. Опытом делится Владимир Гантурин, технический директор и партнер B2B e-Commerce агентства Compo.

Наша команда занимается разработкой eСommerce-проектов 15 лет, из них 6 - в B2B-сегменте. И все это время к нам приходят клиенты, примерно с одними и теми же проблемами. Компании попадают в "снежный ком" роста задач, причем расширение персонала, если и помогает, то ненадолго. Решение простое - создать свою B2B eCommerce платформу, в которой клиенты будут в удобное им время видеть актуальное наличие товара и делать заказы по своим ценам. А менеджеры займутся поиском новых клиентов. 

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

  • 1. Дизайн. На рынке бытует мнение, что создание любого сайта должно начинаться с дизайна. Поэтому первые 2-3 месяца обычно уходят на согласование дизайна и верстки, и к этому надо относиться философски, как к неизбежному злу. Это же естественно? Мы тоже так думали. 
  • 2. Переделка типовых алгоритмов CMS. Как и многие другие разработчики, первые B2B платформы мы создавали на базе 1С-Битрикс. Однако, оптовые бизнес процессы сильно отличаются от бизнес-процессов розничных продаж. Казалось естественным допиливать под конкретные проекты необходимые модули. Опыт показал: мы ошибались.
  • 3. Получение данных из 1С. Нужно было согласовать форматы выгрузок цен и их связей с контрагентами, выгрузок остатков и их связь со складами, формат обмена заказами и т.д. Когда наборы данных согласованы, надо всего лишь получить их из учетной системы заказчика. Простая задача же? Как бы не так!

 

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

  • Архитектура и масштабируемость
  • Модульный интерфейс
  • Бизнес-основа
  • Стандарт обмена с 1С
  • Модуль для 1С
  • B2B консалтинг
  • Отчуждаемость проекта

 

Ключ устойчивости: Архитектура и масштабируемость

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

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

Каждая доработка, неучтенная сразу, чаще всего, становится программным “костылем”, который снижает надежность и отказоустойчивость системы. И если серьезно дорабатывать типовую CMS, теряется смысл всех дальнейших обновлений, которые вступают в противоречие с нашими доработками. Поэтому мы разработали свою CMS CompoB2B, которая изначально спроектирована под цели и задачи оптовых компаний.

Архитектура платформы представляет из себя связку классических паттернов - MVC на бэкенде и MVVM на фронтенде. Гибкая модель позволяет масштабировать каждую из частей с помощью контейнеризации. В результате наши клиенты получают возможность легко масштабировать платформу. Она защищена от "болезни роста". Товарные матрицы большинства наших клиентов не превышают 50 тысяч SKU, но система заранее спроектирована так, чтобы без изменения архитектуры можно было расширять ассортимент до сотен тысяч позиций. Аналогичным образом система уже на старте готова к расширению складской и филиальной сети компании-поставщика.

 

Ключ красоты и практичности: Модульный интерфейс

Кажется странным начинать создание сайта не с разработки дизайна. Будто бы дом строишь с крыши. Однако это ложное мнение. Если брать в качестве аналогии строительство дома, то дизайн - это внешняя отделка. И если это понять, то всё станет на свои места.

Мы создали базовый интерфейс, который оптимизирован под типовые задачи оптовиков. Технологически он сделан на базе готового фреймворка Gentelella, что позволяет вносить коррективы во внешний вид сайта максимально оперативно, без привлечения дизайнера или верстальщика. Таким образом, экономия времени на каждый комплект правок по дизайну составляет, в среднем, 2-4 дня, а полная экономия на этапе дизайна - от двух месяцев и более! И это я уже не говорю о потраченных нервах и потерянной вере в эстетические вкусы ваших коллег.

 

Если же у вас уже есть "дизайн мечты" - не страшно. В любой момент времени можно заменить базовый интерфейс платформы на индивидуальный дизайн. Но помните про правило внешней отделки. Мы рекомендуем заниматься украшениями на последнем этапе проекта.
 
Отдельно отмечу, что современная система должна быть адаптивна. Почему-то в B2B сегменте об этом забывают, но менеджеры закупок - тоже люди. Они работают не только на ПК, но и на планшетах и телефонах. И чем сложнее им работать, тем меньше заказов вы получите.

 

Ключ рациональности: Бизнес-основа

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

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

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

  • Складская логика
  • Работа с заказом
  • Логика резервов и отгрузок
  • Подбор номенклатуры
  • Отображение персональных закупочных цен для контрагента
  • и так далее

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

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

И для небольших оптовых компаний мы разработали "типовое решение", которое  можем внедрить у заказчика за 2-3 недели (именно внедрить, а не просто прислать ключ от коробочной платформы и красиво уйти в закат!).

 

Ключ быстродействия: Стандарт обмена с 1C

В продажах важна скорость. Каждую секунду, пока клиент смотрит на вращающиеся песочные часы, увеличивается риск, что ему это надоест, и он уйдёт. 

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

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

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

При этом данные остаются актуальными. Частота обмена по остаткам, например, может быть вплоть до одного раза в минуту. 

Кроме того, мы упростили жизнь 1С программистам, которые должны осуществить интеграцию платформы. На каждом оптовом проекте используется при обмене с 1С минимум 10-15 типов данных. Мы описали каждый из этих типов - в каких случаях применяется с точки зрения бизнес-процессов, что из себя представляет с точки зрения данных в 1С и какие стандартные поля может содержать. 

Подробная развёрнутая документация: что мы хотим получить, когда и в каком виде. Когда задача на 80% уже сформирована, и осталось только обсудить нюансы конкретной 1С, работа по интеграции идет намного быстрее. 

 

Ключ согласованности действий: Модуль 1С для B2B

Не секрет, что найти надежных программистов, работающих с 1С, далеко не всегда просто. Доходит до того, что заказчикам проще заказать комплексную работу, чем выступать посредником для нескольких подрядчиков. Ещё хуже разрешать их споры. Попробуй пойми, кто тебе вешает лапшу, когда с двух сторон сыпятся малопонятные для заказчика технические термины и аргументы. И все, вроде бы, правы, но работа-то стоит!
 
Мы обнаружили, что на стороне 1С тоже можно выделить основные работы, связанные с построением обмена и вывести их в отдельный модуль. В терминах 1С он называется “подсистема”, и внедрение именно этой связки (CompoB2B - подсистема в 1С) позволяет запускать простые проекты за 1 неделю. Безусловный плюс таких модулей в том, что практически все они внешние, поэтому их можно связать практически с любой конфигурацией 1С, и они не мешают регулярным обновлениям БД.
 
 

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

В результате удалось добиться быстрого старта обмена с сайтом из баз 1С за счет  внедрения созданной обработки в рабочие базы заказчика.

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

Но уже после запуска проекта: добавление новых контрагентов, изменение структуры каталога, добавление новых параметров у товаров, добавление типов цен и доступных складов - происходит в пользовательском режиме, без привлечения 1С программистов.

 

Ключ помощи: B2B консалтинг

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

Типовые проблемы как правило выглядят как-то так:

  • Документы теряются или какие-то распоряжения выполняются не в полном объеме, компания отгружает товар контрагентам, которым бы уже не надо отгружать, по тем ценам, по которым работать уже невыгодно. 
  • Зачастую кто-то из руководителей компании является бутылочным горлышком. Море текучки, куча вопросов, решение которых замыкается на нем.
  • Цены старым клиентам выставляются “на глаз”, по достигнутым неизвестно когда договоренностям, без точного математического расчета.

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

И это только кажется, что решить все проблемы можно каким-то одним автоматическим способом. Реальность подкидывает массу конкретных проблем, о которых люди при просто не задумываются. Вы наверняка сталкивались с чем-нибудь таким: 

  • Формирование гибкой системы ценообразования. Типичный пример - импортные товары. Тут важно предусматривать, чтобы счет терял актуальность через 3-5 дней, чтобы избежать потерь на колебаниях курса. Для некоторых клиентов необходимо устанавливать индивидуальные цены на весь товар или отдельные позиции. Если цена хранится в Excel, её надо искать каждый раз заново. На это уходит масса времени.
  • Управление товарными резервами. Зачастую необходимо настроить механизм автоматического снятия резерва по заказу в случае если по нему не пришла оплата. Кажется, что просто? Однако для некоторых надежных клиентов надо установить свой срок резервов. А некоторые ходовые товары снимать с резерва раньше остальных. Уже не так просто? А теперь представьте, что под эту систему выстроить процедуру уведомлений. 
  • Управление задолженностями. В мире розовых пони руководители компаний видят четкую картину по объемам просроченной задолженности, формируют KPI для менеджеров на основе этих данных, задают ограничения на отгрузку должникам, при этом красиво и вовремя их об этом информируя. В реальности ваш клиент платит просто скопом по принципу - “мы вам там миллион отправили, закройте заказы по Вашему усмотрению”.
 

Наш опыт позволяет выявить такие проблемы и по каждой из них предложить 3-4 обкатанных варианта решения. Выбрать подходящий Вам - это и есть консалтинг. Естественно, при этом необходим подход “с двух сторон” - с одной, составление удобной и многофункциональной модели, а с другой - оптимизация существующих правил работы в компаниях для отсечения лишних, некорректных, но уже прижившихся процессов. 

Итогом консалтинга будут структурированные бизнес-процессы, а такие процессы наиболее безболезненно переносятся "в цифру". Как мы писали выше, в оптовых проектах фигурирует не менее 10-15 типов данных, все эти типы связаны между собой, и каждая зависимость должна быть очевидной и прозрачной. 

Поэтому теперь мы рекомендуем любую работу начинаем с аудита всех существующих бизнес-процессов, оптимизации их и проектирование новых с учетом современных возможностей 1С. 

 

Ключ независимости: Отчуждаемость проекта

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

Для снятия страха зависимости от единственного подрядчика, мы предприняли следующие шаги:

  • Основой системы служит чистый PHP - наиболее распространенный язык веб-программирования.
  • Подготовлена документация для разработчиков и внедрена практика консультаций с нашими программистами. Квалифицированный PHP-программист сможет начать работать с системой через 1-2 дня изучения документации, и полностью взять на себя поддержку и доработки через 2-3 недели.
  • Заказчику передается полная завершенная копия проекта, мы не привязываем проект к нашим серверам и нашей техподдержке, в отличие от некоторых российских облачных B2B платформ.
  • В этом году мы начали формирование партнерской сети компаний, которые занимаются внедрением нашего продукта. Уже сейчас есть несколько партнеров, которые могут самостоятельно внедрять наш продукт. Для 1С-франчайзи, веб-студий и 1С-программистов мы предлагаем специальные условия по распространению и внедрению нашего продукта. (Для связи: naumkin@compo.ru Максим Наумкин).

Заключение

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

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

P.S. Какие бизнес результаты можно достичь с B2B-платформой вы можете посмотреть в одном из наших кейсов.

Подпишитесь и получайте аналитические материалы
​​​​​​​для B2B-бизнеса
Some Image
Нажимая на кнопку, вы даёте согласие на обработку персональных данных и соглашаетесь с политикой конфиденциальности


Публикации