Разработка · 6 мин чтения

B2B веб-сервис: особенности разработки для корпоративных клиентов

Когда ко мне приходит запрос на b2b веб-сервис, первым делом уточняю не дизайн и не список фич, а кто конкретно будет с ним работать: менеджер по закупкам на стороне контрагента, бухгалтер, кладовщик или директор, который заходит раз в месяц посмотреть сводный отчёт. От этого зависит вся архитектура - модель доступа, набор ролей, интеграции с учётными системами заказчика. Сайт для частных покупателей продаёт эмоцией и кнопкой «купить сейчас», корпоративный сервис работает по другим правилам, и если их не заложить на старте, проект переписывают через полгода после запуска.

Чем корпоративный веб-сервис отличается от сайта для конечных покупателей

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

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

Параметр B2C-сайт B2B веб-сервис
Кто принимает решение Один человек, сразу Несколько сотрудников, с согласованием
Оплата Карта, эквайринг Счёт, отсрочка платежа, ЭДО
Доступ Публичная регистрация Выдаётся вручную, роли и права
Интеграции Логистика, платёжка 1С, CRM, ЭДО, внутренние системы клиента
Цикл сделки Минуты Недели-месяцы

Архитектура B2B-платформы: что закладываю на старте

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

Для фронтенда чаще беру React - админки и личные кабинеты с таблицами, фильтрами, массовыми действиями на нём собираются быстрее и держат сложную логику состояния лучше, чем плоский HTML. Бэкенд обычно на Laravel: там из коробки есть очереди, миграции, встроенная авторизация - то, что для корпоративного сервиса нужно сразу, а не «когда-нибудь потом». Разработка такого веб-сервиса у меня стартует от 150 000 ₽, а отдельная CRM-панель на React для отдела продаж - от 100 000 ₽ сверху, если её выносят в отдельный модуль.

Ещё на старте закладываю разделение окружений: тестовый контур для приёмки заказчиком, боевой - только после подписания акта. У корпоративных клиентов почти всегда есть свой ИТ-отдел или служба безопасности, которая проверяет сервис перед подключением, и переделывать архитектуру под их требования постфактум выходит дороже, чем учесть их сразу.

Бесплатный материал

🎁 Полезный скрипт в подарок

Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.

Без спама. Отписка в 1 клик.

Интеграции с 1С, CRM и корпоративными системами

Большая часть времени в b2b-проектах уходит не на интерфейс, а на стыковку с тем, что у клиента уже работает. Чаще всего это 1С - либо через веб-сервисы на OData, либо через выгрузку файлами обмена по расписанию. Первый вариант быстрее и надёжнее, но требует, чтобы 1С была правильно настроена на стороне клиента; второй - универсальнее, но с задержкой синхронизации в час-два.

Пример из практики: для дистрибьютора стройматериалов делал синхронизацию остатков и цен между 1С:Управление торговлей и веб-сервисом заказов - обмен раз в 15 минут через OData, с логированием каждой операции для бухгалтерии. Отдельно подключал ЭДО через Диадок, чтобы счета и накладные подписывались электронно без бумажной волокиты, и СДЭК API для расчёта доставки по регионам прямо в форме заказа.

Если задача - простой скрипт обмена данными между двумя системами по расписанию, это укладывается в автоматизацию на n8n от 25 000 ₽, я в таких случаях собираю сценарий, который следит за очередью заказов и подтягивает статусы. Если нужен полноценный бэкенд с бизнес-логикой поверх 1С и CRM - это уже стоимость API-разработки на Laravel, от 100 000 ₽. Часть таких сценариев обмена у меня уже отработана на прошлых проектах - готовые сценарии интеграции с 1С и CRM смотрите в библиотеке, это экономит время на старте.

Для уведомлений менеджеров о новых заявках или зависших согласованиях обычно ставлю Telegram-бота на aiogram - он дешевле и быстрее email-рассылок, а сотрудники реагируют на него в разы оперативнее.

// пример middleware с проверкой роли перед доступом к разделу закупок
function requireRole(role) {
  return (req, res, next) => {
    if (!req.user || !req.user.roles.includes(role)) {
      return res.status(403).json({ error: 'Недостаточно прав' });
    }
    next();
  };
}

app.get('/api/purchase-orders', requireRole('procurement_manager'), listOrders);

Роли, доступы и безопасность корпоративных данных

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

Отдельно веду журнал действий: кто зашёл, что изменил, какую заявку одобрил. Для многих корпоративных клиентов это не пожелание, а требование службы безопасности при подключении подрядчика. Контакты и данные сотрудников контрагентов храню на серверах в РФ - того требует 152-ФЗ о локализации персональных данных, и никакие Google Sheets или Airtable для таких задач не подходят в принципе, даже если это удобнее для черновой выгрузки.

Для входа в такие сервисы ставлю двухфакторную аутентификацию хотя бы для ролей с доступом к финансам, и ограничиваю время жизни сессии - 8-12 часов вместо стандартного месяца, как в b2c.

Долгий цикл сделки: как это влияет на функциональность

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

Цепочки согласования - это отдельный слой логики: заявка на сумму до 100 000 ₽ утверждает один сотрудник, выше - уже два, с уведомлением в Telegram каждому на своём этапе. Без этого закупщики звонят и спрашивают «а что с моей заявкой», а менеджер тратит время на ответы вместо работы. У меня в паре проектов такие цепочки собирались через n8n поверх готового бэкенда - дешевле, чем зашивать их в код и потом переписывать при каждом изменении регламента.

Поддержка и SLA после запуска

Корпоративный клиент ожидает не «напишем, если что», а конкретные сроки реакции: критичная ошибка - в течение нескольких часов, некритичная - в течение суток. Это прописывается в договоре отдельным пунктом с указанием часов и каналов связи, а не остаётся на словах.

Техподдержка у меня отдельная платная услуга, от 15 000 ₽/мес - в неё входит мониторинг, приоритетные фиксы и работа над мелкими доработками без отдельного техзадания на каждую мелочь. Для сервисов с интеграциями это особенно важно: у контрагента может обновиться версия 1С или поменяться формат выгрузки СДЭК, и без сопровождения такие вещи всплывают в самый неподходящий момент.

Когда нужен не сайт, а сервис

SaaS / SPA

от 300 000 ₽

Подробнее →

Частые вопросы

Сколько стоит разработка b2b веб-сервиса?

Базовая разработка веб-сервиса у меня стартует от 150 000 ₽ - это личный кабинет с ролями, авторизацией и одной-двумя интеграциями. Если нужна отдельная CRM-панель на React, закладывайте ещё от 100 000 ₽, а сложные интеграции с 1С или ЭДО считаются отдельно в зависимости от того, что уже есть у заказчика.

Сколько времени занимает разработка корпоративного веб-сервиса?

На практике от 2 до 5 месяцев в зависимости от числа интеграций и глубины согласовательной логики. Личный кабинет с одной интеграцией собирается быстрее, а сервис с мультиарендностью, ЭДО и цепочками согласований требует больше времени на тестирование прав доступа.

Обязательно ли интегрироваться с 1С?

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

Чем b2b веб-сервис отличается от обычной CRM?

CRM - инструмент для внутренней команды продаж, а b2b веб-сервис часто дают внешним пользователям - сотрудникам компаний-партнёров. Это меняет требования к безопасности и разграничению данных между разными контрагентами: в CRM все видят всех клиентов, а в b2b-сервисе контрагент должен видеть только свои данные и ничьи больше.

Есть задача?

Обсудим в мессенджере

Расскажите, что нужно сделать — отвечу в течение 4 часов в рабочее время. Первая консультация бесплатно.

Самозанятый Калинкин Н. А. · работаю с физлицами и юрлицами

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов куки) с использованием Yandex.Metrika.
Понятно