Комментарии
Как при помощи продвинутого внутреннего сервиса решить глобальную боль крупной оптовой компании
Секретный В2В
Сибирикс
Секретный В2В
Как при помощи продвинутого внутреннего сервиса решить глобальную боль крупной оптовой компании
Представьте: у вас скромный уютный магазинчик на строительном рынке. Через ряд сидит баба Маша с обоями в цветочек, а слева от вас Мурад с олифой и лаками для дерева. И все вы уже сто лет как заказываете товар у одного оптовика — крупного, проверенного и давно существующего на рынке. Одна беда — с интернетом вы не очень. Зато с менеджерами поставщика уже сроднились и звоните им по любому поводу: чтобы получить прайс, сверить счета, уточнить остатки или просто сделать заказ. А что, если можно было бы сделать всё то же самое, но самостоятельно?

У одного из наших клиентов — крупного оптового поставщика строительных материалов — как раз была такая ситуация с клиентами. Хотелось автоматизировать и упростить процесс заказа и ускорить коммуникацию с менеджерами. И хотя всех фишек этой истории мы рассказать не можем (NDA всё-таки), в этом материале поделимся, как создавали В2В-сервис, дописывая функционал Битрикса под непростые задачи клиента.
Что было не так
Раньше контрагентам, чтобы сделать заказ, скажем, на 10 позиций товара, приходилось звонить менеджеру, выяснять наличие нужных марок и цветов, ждать на почту прайс, и если в нём что-то не устраивает — перезванивать и начинать сначала. А если прибавить к этой проблеме необъятность нашей страны с 11 часовыми поясами? А если позиций не 10, а 100, и контрагентов больше 8 тысяч? И сколько тогда должно быть менеджеров в штате, чтобы успевать обрабатывать все заявки и при этом оставаться доброжелательными (а не превращаться в продавщиц из советского универмага) — 100? 500?

В таких условиях даже совсем простые вопросы — количество товара на складе, статусы заказа, актуальные цены (с учетом персональных скидок), документооборот и формирование заказов — усложняются и растягиваются во времени, не говоря уже о вероятности допустить ошибку или просчёт. А множество однотипных повторяющихся задач ещё больше усложняют коммуникацию с клиентами, которые можно оптимизировать, а заодно и сократить штат менеджеров.
Довольно часто при обсуждении заказа на новый сайт или приложение в глазах заказчика читается (или это даже напрямую проговаривается), что цель создания проекта — сокращение количества персонала. В первую очередь — менеджеров среднего звена. Этой тенденции уже не один год, и вопрос чаще всего поступает именно в такой формулировке: что мне изменить в it-инфраструктуре, чтобы сократить расходы на персонал. Надо признать, что профессии средней сложности стремительно вымываются. Не автоматизируются только творческие и те, которые автоматизировать дороже, чем поставить туда человека (грузчики, например).

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

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

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

  2. Разработать лаконичный дизайн без тяжелой анимации, которую не потянет медленный интернет.

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

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

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

Каталог

  • интеграция каталога из 1С,
  • количество на складе,
  • фильтры, сортировка,
  • актуальные цены с учетом персональных скидок по каждому контрагенту,
  • умный поиск,
  • группировка товаров по модели.
Битрикс или не Битрикс
И хотя Битрикс не все любят, мы на большинстве проектов используем именно его. Не потому что пропиаренный, а потому что это решение даёт удобную для пользователей админку с базовым функционалом (и целой пачкой готовых модулей, которые можно адаптировать под свои нужды).

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

И хотя обо всех таких вот самописных фишках сервиса мы, увы, рассказать не можем, поделимся главными, которые одинаково важны для пользователей, даже если вы создаёте совершенно НЕ секретный проект.
Документооборот
Раньше при малейших изменениях в документации контрагентам приходилось высылать сканы, ждать подписей, висеть на телефоне, чтобы дождаться ответа менеджера. Теперь внутри сервиса за это отвечает вкладка «Документы», которая больше напоминает электронную почту: есть входящие, исходящие и заархивированные документы. Это могут быть счета, актуальные прайсы или договоры. Также мы предусмотрели чат, где клиент может переписываться с админом сайта по вопросам.

Конечно, мы могли бы прилепить готовый модуль чатика для галочки, но это не в наших правилах — тщательно изучив возможные ситуации, мы написали свой собственный, заточенный под нужды клиентов сервиса. Документооборот привязан к компании, а внутри сервиса для компании есть несколько ролей — переписку по документам могут вести сразу несколько сотрудников. Это удобнее, чем переспрашивать друг у друга, а отправил ли коллега сканы документ поставщику.
В рамках личного профиля есть разные права доступа. Директор фирмы-контрагента обладает исключительными правами: может редактировать данные об организации (через запрос к администратору сайта), просматривать документы и отслеживать заказы своих подчиненных. Входящая документация отмечается красным — как только директор её просматривает, метка исчезает. Его подчиненные в системе могут формировать заказы, создавать подборки в избранном и сохранять шаблоны.

Дмитрий
Разработчик
Некоторые клиенты работают в Excel, и в нём присылают менеджерам заказчика запросы на поставку материалов. И если раньше менеджеру приходилось вручную вбивать заказ в информационной системе с сотнями номенклатурных единиц на основе такого документа, то теперь для удобства мы предусмотрели импорт excel-евского документа в систему. Клиенты могут скачать шаблон в Excel, заполнить его кодами товара и количеством и отправить документ через сервис — файл автоматически преобразуется в заказ и упадёт в корзину, сэкономив уйму рабочих часов.
Также мы полностью переписали модуль избранного — клиенты могут отбирать товары по категориям, создавать папки группы товаров, группы категорий. Если у одного контрагента в карточке сразу несколько компаний — под каждую можно создать свою папку избранного.
В профиле пользователя также появилась история заказов (которой так не хватало) и шаблоны заказа — больше не нужно делать одни и те же действия по сто раз.
Актуальные цены
На этапе интеграции у нас возникла проблема со скидками для контрагентов (да-да, в 18-й версии Битрикса скидки были доработаны, но все равно этот функционал далек от того, который нам был нужен). Скидка может быть у контрагента, на конкретный товар, на группу товаров, на подкатегорию, на несколько подкатегорий и так далее. Теоретически для каждого из 15 275 товаров у каждого из 8215 контрагентов может быть своя уникальная скидка — и тогда всё это превращается в 125 миллионов комбинаций, что для штатного импорта Битрикса — настоящее испытание.
Файл интеграции получался неподъёмным — одна его выгрузка занимала больше 2-х недель. Но мы нашли решение — обработка справочника скидок отдельно, не через Битрикс.
Для начала мы составили протокол интеграции и отправили его специалистам по 1С на стороне Заказчика. Те выдали нам структуру: группы, цены, категории и т. д. Мы этот офигенно огромный файл сократили, ужав структуру: отрезали часть, где хранились данные о скидках, и прописали функцию импорта скидок. Когда документ подгружается, скрипт делит сегмент с данными о скидках на множество маленьких файлов — по одному на каждого контрагента. И получается, что загружается не огроменный файл со всеми-всеми скидками по всей базе из 1С, а только тот, где указаны скидки конкретно по этому клиенту.

Евгений
Разработчик
SKU
Часто бывает, что на стороне заказчика 1С «улучшенная» — систему меняли, дописывали и доделывали её структуру, чтобы покрыть нужные потребности. В таких случаях вносить изменения в текущую конфигурацию практически невозможно, потому что это настоящий Гордиев узел. Для снижения временных затрат формирование SKU происходит на стороне сайта по четким алгоритмам — обошлись без «революции» в 1С.

Внутри одного товара можно выбирать альтернативный или такой же, но другого цвета — товары группируются, и на детальной появляются выпадающие списки. В них можно изменить параметры (например, цвет или объём упаковки) и перейти на детальную другого товара. Причем, если установить параметр внутри карточки на верхнем уровне каталога, то и во всех подкатегориях товары будут выводиться с учетом такой группировки.
Товары
В проекте минимум анимации — от нее отказались сознательно, чтобы ускорить работу сервиса. Зато пользователи могут заказывать новую партию товара прямо с торговой точки — без просмотра фишечек и восхитительных анимаций, сразу к делу. Также, для быстроты загрузки все изображения, описания и сертификаты товаров хранятся не на сайте, а на внешнем ftp-сервере.

Если раньше клиентам приходилось узнавать нужное количество товара по телефону у менеджера, теперь проверить наличие просто — достаточно зайти на детальную страницу товара. Но даже со страницы списка товаров у вас не получится заказать больше, чем есть на складе — в каталоге при клике на кнопку «В корзину» сразу появляется поле с количеством: можно здесь же регулировать, сколько именно штук конкретного товара нужно в заказе.
Некоторые товары продаются не поштучно, а упаковкой — и если раньше это могло стать неприятным сюрпризом (когда вместо 10 кисточек придёт 10 пачек по 10 штук), то теперь система подсказывает пользователю нужное количество:
В этом проекте мне очень понравились интуитивные настройки системы: например, если товар продаётся пачкой в 12 штук, а ты указываешь в количестве 15, система ругается и приводит число к нужному значению. Также приятно, что товары можно перемещать между папками в «избранном» и там уже удалять из них — всё это можно сделать на одной всплывашке. А если из шаблонов добавить товары в корзину, в которой уже что-то лежит, система также переспросит, стоит ли их там заменить. Всё это очень удобно и круто упрощает пользование сервисом.

Степан
QA-менеджер
Выводы
Нам нравятся сложные проекты — такие, как этот кейс для оптового поставщика стройматериалов (хотя мы и не раскрыли все фишки и тонкости: конфиденциальность есть конфиденциальность). Если в этом проекте вы увидели свои «боли» — пишите, мы найдем способ, чтобы Заказчик лично мог поделиться успехами нашего сотрудничества.
На моей практике, это один из самых технически сложных проектов. Три интеграции, роли в личном кабинете, файлохранилище, обработка справочника скидок сторонним решением, формирование SKU на стороне сайта — даже звучит пугающе :) Этап сборки оказался интересным. Бывало, что задачи адаптировали под нужды заказчика прямо в середине спринта. По ходу сборки требовалось быстрое принятие решений при возникновении проблем, и они находились (многие сейчас используются при разработке новых проектов). Это классный опыт :)

Кристина
Руководитель проекта
Если перед вами стоят непростые задачи: новые рынки, новые процессы работы, новые клиенты — важно не пытаться предугадать всё, а двигаться шаг за шагом в развитии проекта, параллельно анализируя и внося изменения. И будет вам счастье. Не уверены? Приходите со своей задачей к нам, мы подскажем, как лучше её решить (и сделаем это вместе!).