Личный кабинет на b2b сайте компании GRASS

Есть особая категория сайтов, которая не попадает в шорт-лист конкурсов «Рейтинг рунета» и «Золотой сайт». Ссылками на них не хвастаются друг перед другом дизайнеры, а обычные пользователи заходят сюда редко. Но именно на них держится оптовая торговля, дилерские сети и другие сферы, где бизнес работает с бизнесом. Речь о b2b сайтах и личных кабинетах.

Личный кабинет здорового человека и личный кабинет курильщика

На первый взгляд, это такие же интернет-магазины — товары, заказы, личный кабинет… Но если приглядеться, у b2b сайтов свои важные отличия. Собрали особенности в большой отдельной статье .

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

  1. Опыт — сначала интеграция и MVP (минимально ценный продукт), потом все остальное. По-другому пробовали, нам не понравилось.
  2. Въедливых менеджеров — выпытают все особенности вашего бизнеса.
  3. Опытных программистов — сертифицированные Битриксом. Породистые.
  4. Специалистов по интеграции битрикса хоть с 1С, хоть с лысым чертом.

Не сказать, что проектирование и производство личных кабинетов b2b это очень эмоциональная и творческая работа. Тут скорее важно терпение и внимание к мелочам. Зато, практически всегда за такими проектами стоит реальный, сложившийся бизнес, без стартапов и новых социальных сетей. А чувствовать, что твоя работа будет приносить реальную пользу дорогого стоит. Ну и обычно не надо вести долгие разговоры «за дизайн», это тоже плюс.:)

В этой статье, мы расскажем как раз о таком проекте — личный кабинет для дилеров компании GRASS. Реальный бизнес, четкая задача, хорошая реализация.

Дано

Клиент — компания GRASS. Крупный производитель автохимии и средств для клининга:

  • 36 000 тонн готовой продукции в год;
  • 130 наименований продукции профессиональной автокосметики и 94 средства для профессиональной уборки;
  • Продукция реализуется в более чем 20 странах мира, дилеры действуют во всех крупных городах России.

GRASS

На всех автомойках, где я мою машину, есть плакаты GRASS. Жаль, мойщики не такие.

Исходные данные — сайт grass.su, на который несколько лет назад 1 раз был выгружен каталог товаров. Процедура покупки ориентирована на розничного покупателя.

Задачи:

  1. Интегрировать сайт с 1С (товары, заказы, выполнение дилерами планов);
  2. Реализовать личный кабинет для дилеров (история заказов, справочная информация, выполнение планов);
  3. Реализовать новое оформление заказов, адаптированное под дилеров (особые условия покупки и доставки).

Решение

Ограниченный объем итерации

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

Итерационный подход

После каждой итерации — готовый к использованию продукт

Зачастую, на нашей стороне, в таком случае, играют сжатые сроки. Если дата запуска проекта четко определена и переносу не подлежит, клиент спокойно относится к тому, что «под нож» идет все, кроме самых основных функций. Главное — запуститься в срок.

При разработке ЛК дилеров для компании GRASS ситуация была как раз такой. И тут хочется сказать отдельное спасибо руководителю проекта, заместителю генерального директора по общим вопросам, Дмитрию Малыхину, который полностью поддержал идею разумного упрощения функционала. В ответ мы дали подпись кровью обещание сдать ЛК на тестирование в срок.

Необходимый функционал

MVP (Minimal Viable Product)

MVP — минимальный жизнеспособный продукт

В MVP вошло:

  1. Интеграция с 1С:
    1. Выгрузка товаров на сайт;
    2. Выгрузка нескольких типов цен на сайт (для розницы и дилеров);
    3. Загрузка заказов с сайта в 1С (при чем грузиться должны только заказы дилеров, «розница» в 1С была не нужна);
    4. Выгрузка из 1С «оффлайн» заказов (те заказы, которые менеджеры оформили по звонку также должны показываться на сайте);
    5. Выгрузка из 1С информации о взаиморасчетах (информация о выполнении плана, задолженность, бонусы, отгрузки и т.д.).
  2. Оформление заказа для дилера:
    1. Виджет массового добавления товара в корзину.
    2. Оформление заказа с выбором юрлица и склада. Выбор склада влияет на общую сумму заказа.
    3. Выбор условий оплаты, от которых изменялась стоимость заказа. Причем в 1С и на сайте условия оплаты и непосредственно заказ должны проходить двумя отдельными счетами.
  3. Личный кабинет дилера:
    1. История заказов с фильтрами, основной информацией и возможностью скачать счет.
    2. Детальная страница заказа со всеми подробностями.
    3. Список платежных профилей компании.
    4. Выполнение планов — полная информация о выполнении планов и статистика по взаиморасчетам.
    5. Регион и О компании — информационные разделы.

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

Интеграция с учетной системой это всегда самый болезненный пункт в таких проектах. Как будто вы и специалисты по 1С со стороны заказчика копаете много тоннелей навстречу друг другу. Вроде бы и ТЗ есть, и что делать понятно, но радостные «встречи» без десятка итераций правок это редкость. Обычно получается два тоннеля, и часто приходится друг друга в них искать

Успешная интеграция с 1С

Успешная интеграция с 1С.

Мы набили много шишек на интеграциях и знаем, как облегчить процесс:

  1. Детально описать все в ТЗ. Да, знаем, звучит банально, но многих проблем удается избежать простой расшифровкой фразы «Организовать обмен заказами сайта с 1С». Все ли заказы должны уходить в 1С? Как передавать дополнительные данные о заказе? Как забрать из 1С счета? Надо ли загружать на сайте «оффлайн» заказы? Мы задаем много нудных вопросов и все фиксируем. А после экономим десятки и сотни часов работы программистов и 1С-ников.
  2. Не пускать ни одной цифры или строчки в модульной сетке или дизайне в работу, пока все участники кровью не распишутся, что знают, откуда она берется. Специалисты со стороны 1С также должны подтвердить, что выгрузка этой информации возможна и не занимает 30 дней.
    Пример «опасной строчки» — А давайте показывать балансы разных юрлиц в рамках одного клиента. В режиме реального времени — сделал заказ, баланс чтобы изменился.
  3. Придерживаться стандартного механизма обмена. Если есть возможность остаться в рамках стандартного обмена (без изменения формата .XML файлов), то нужно всеми силами к этому стремиться. В противном случае, риски «застрять» на этапе интеграции возрастают на порядок.
  4. В случае ошибок максимально локализовать место проблемы. Фраза «Выгрузка не соответствует ТЗ» не поможет решить проблему. Мы всегда указываем, в каком именно узле .XML файла (именно в этом формате происходит обмен с 1С) возникла ошибка. Мы уважаем чужое время.
  5. Начинать интеграцию только с копией боевой базы. Лучше подписать десяток дополнительных договоров о неразглашении и получить доступ к копии боевой 1С, чем перед запуском понять, что интеграция была со сферической идеальной базой. А в реальной 1С куча незаполненных полей и вообще 200 000 товаров, которые и не товары вовсе а SKU.
  6. Иметь внятного, взрослого специалиста по 1С на стороне заказчика. Без комментариев.

Если подвести итог — интеграция с учетной системой это всегда риск. Но мы умеем с этим риском работать и знаем, как свести его к минимуму.

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

Итого

Личный кабинет для дилеров компании GRASS — приятный и интересный нам проект. Мы качественно решили важную, стратегическую задачу для сильного, успешного бизнеса. Если у вас есть такие — обращайтесь, мы сложных интеграций и «скучных» личных кабинетов не боимся.

А на десерт история о том, что на любого мудреца довольно простоты.

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

А когда пришло время внедрять наш код в боевой сайт выяснилось, что магазин был сконвертирован на новую платформу (речь о новой e-commerce платформе Битрикс) другим подрядчиком. Просто так. И нам об этом решили не сообщать.

Нашли старый бэкап, все восстановили, но седых волос это прибавило. Теперь в чек-листе для стартового обсуждения проекта появился еще один пункт «Обсудить перевод на новую платформу».

Так что, мы тоже делаем ошибки. А после старательно конвертируем их в опыт.

Грабли и опыт

Заявка на разработку сайта