Разработка личного кабинета B2B на 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Разработка личного кабинета B2B на 1С-Битрикс
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1165
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    563
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    743
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Разработка личного кабинета B2B на 1С-Битрикс

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

Принципиальные отличия B2B-кабинета от B2C

В розничном кабинете пользователь видит только свои заказы. В B2B:

  • Несколько сотрудников одной компании с разными ролями
  • Заказы могут создаваться от имени компании, а не физлица
  • Кредитный лимит и задолженность — общие для компании
  • Документы (счета, накладные) привязаны к юрлицу
  • Согласование заказов до их подтверждения

Стандартный bitrix:sale.personal.orders не покрывает ни один из этих сценариев.

Управление пользователями компании

Центральная сущность — Company, связанная с пользователями Битрикса через Highload-блок b2b_company_users. Поля: UF_COMPANY_ID, UF_USER_ID, UF_ROLE, UF_ACTIVE, UF_CREATED_AT.

Роли задаются через константы в модуле:

  • ROLE_OWNER — полные права, управляет сотрудниками и реквизитами
  • ROLE_BUYER — создаёт и видит заказы компании
  • ROLE_ACCOUNTANT — только документы и финансы, без создания заказов
  • ROLE_VIEWER — только просмотр истории

Приглашение сотрудника: владелец вводит email → генерируется токен → отправляется письмо через CEvent::Send() с шаблоном B2B_COMPANY_INVITE → по ссылке создаётся пользователь Битрикс (или привязывается существующий) → создаётся запись в b2b_company_users.

Заказы: что нужно сверх стандарта

Список заказов компании. Не пользователя — компании. CSaleOrder::GetList() с фильтром по UF_COMPANY_ID (пользовательское поле заказа). Фильтрация по статусу, дате, менеджеру, который создал. Поиск по номеру заказа и артикулу в составе — через CSaleBasket::GetList() с последующим JOIN.

Статусы согласования. Добавляем в b_sale_status кастомные статусы: APPROVAL_PENDING (ждёт согласования), APPROVED (согласован), REJECTED (отклонён). Переходы между статусами — через обработчики событий OnSaleStatusOrderChange. При изменении статуса отправляем уведомление через CEvent::Send().

Комментарии к заказу. Высокозагружаемый элемент коммуникации: покупатель пишет пожелание («доставить на склад №2»), менеджер отвечает. Реализуем через Highload-блок order_comments: UF_ORDER_ID, UF_USER_ID, UF_TEXT, UF_CREATED_AT, UF_IS_INTERNAL (менеджерский комментарий, невидимый покупателю).

Документы из 1С

Интеграция по следующей схеме:

  1. В 1С настраивается HTTP-сервис (или регулярная выгрузка XML) с документами по контрагенту
  2. Агент Битрикс (CAgent::AddAgent) опрашивает сервис каждые 2-4 часа
  3. Результат записывается в Highload-блок b2b_documents: UF_COMPANY_ID, UF_DOC_TYPE (invoice, waybill, reconciliation), UF_NUMBER, UF_DATE, UF_AMOUNT, UF_FILE_ID (или UF_EXTERNAL_URL)
  4. В кабинете — список с фильтрами, скачивание PDF

Если 1С отдаёт PDF напрямую — кешируем в /upload/b2b/docs/{company_id}/ с именем по номеру документа. Если отдаёт только метаданные — при клике «Скачать» делаем запрос к 1С и стримим файл через PHP без сохранения на диск (для экономии места).

Финансовая сводка

Блок «Финансы» на главной странице кабинета — агрегированные данные:

  • Текущий кредитный лимит и использованная сумма (прогресс-бар)
  • Просроченная задолженность с датой возникновения
  • Сумма заказов за текущий месяц

Источник — Highload-блок b2b_credit_status, синхронизируется из 1С. Если данные устарели более чем на 6 часов — показываем предупреждение «Данные обновляются».

При наличии просрочки свыше допустимого порога — в шапке кабинета показываем баннер. Кнопка «Создать заказ» блокируется через проверку в компоненте корзины.

Уведомления

Настраиваем два канала:

Email: через почтовые события Битрикс (CEventType, CEvent). События: B2B_ORDER_CREATED, B2B_ORDER_STATUS_CHANGED, B2B_ORDER_APPROVED, B2B_DOCUMENT_READY. Шаблоны редактируются в панели управления администратора.

Внутренние уведомления: счётчик непрочитанных в кабинете. Highload-блок b2b_notifications: UF_USER_ID, UF_TYPE, UF_TEXT, UF_LINK, UF_IS_READ, UF_CREATED_AT. AJAX-запрос каждые 30 секунд или через WebSocket (модуль pull).

Сроки

Блок Срок
Архитектура ролей и компаний 2-3 недели
Управление заказами компании 2-3 недели
Документы и интеграция с 1С 2-4 недели
Финансовый блок 1-2 недели
Согласование заказов 2-3 недели
Уведомления 1-2 недели
Тестирование 2-3 недели

Итого: 12-20 недель. Меньше — при использовании готового каркаса кабинета. Больше — при нестандартной логике согласования или сложном 1С-обмене.