Розничному покупателю от кабинета нужно немного: посмотреть заказ и поменять телефон. Дилеру нужно совсем другое. Он работает с вами каждую неделю, собирает большие однотипные заказы, следит за балансом и лимитом, забирает счета и акты, сверяет остатки по складам и хочет видеть свои цены, а не розничные ценники. Свести всё это в удобное рабочее место вручную невозможно — но на 1С-Битрикс для этого есть штатный фундамент: модуль интернет-магазина, группы пользователей, типы цен и компоненты личного кабинета, которые дорабатываются под B2B.
Эта статья — практический разбор того, как устроен личный кабинет дилера на 1С-Битрикс: из каких разделов он состоит, как работает модерация регистрации, персональные цены и закрытый каталог, повторный заказ и загрузка из Excel, баланс и документы, и как всё это связано обменом с 1С. Материал из нашей практики разработки личных кабинетов дилеров — по делу, без обещаний «гарантированного роста продаж».
Коротко
- Личный кабинет дилера — это рабочее место B2B-партнёра: персональные цены, закрытый каталог, заказы, баланс и документы в одном месте.
- Доступ открывается после модерации регистрации: менеджер подтверждает контрагента и переводит его в нужную группу пользователей.
- Ключевые B2B-функции — повторный заказ, заказ по артикулу и загрузка заказа из Excel/CSV.
- Цены, остатки, баланс и документы приходят из 1С обменом — учётная система остаётся источником истины.
Зачем дилеру личный кабинет
Пока оптовое направление маленькое, заказы можно принимать по телефону и почте: менеджер вручную считает цены по прайсу, выставляет счёт, проверяет остаток. Как только партнёров становится десятки, а заказов сотни в месяц, эта схема упирается в людей. Менеджер превращается в «живой калькулятор», ошибается в ценах и наличии, а дилер ждёт ответа вместо того, чтобы оформить заказ сам.
Личный кабинет снимает эту нагрузку. Партнёр входит, видит свои цены, собирает заказ, проверяет баланс и забирает документы без единого письма. Менеджер подключается только там, где нужно решение человека: подтвердить нового дилера, согласовать заказ сверх лимита, обсудить особые условия. Всё рутинное уходит в самообслуживание.
Выгода здесь двусторонняя, и важно назвать её честно, без завышенных обещаний:
- Для дилера — скорость и самостоятельность: заказ в любое время, свои цены, повтор прошлой закупки в один клик, прозрачные баланс и документы.
- Для поставщика — разгрузка менеджеров, меньше ручных ошибок в ценах и наличии, единая история заказов и понятная воронка B2B-продаж.
- Для обеих сторон — единый источник данных: цена на витрине совпадает со счётом, остаток — с реальным складом, баланс — с 1С.
При этом кабинет — не «волшебная кнопка роста». Он автоматизирует уже выстроенную работу с партнёрами: если условия и процессы в компании не описаны, сайт их не выдумает. Поэтому проектирование кабинета всегда начинается не с интерфейса, а с вопроса «как именно вы работаете с дилерами сегодня».
Что такое B2B-кабинет и портал дилеров
Термины «B2B личный кабинет» и «портал дилеров» часто используют как синонимы, но между ними есть разница в масштабе, и её полезно понимать при постановке задачи.
| Понятие | Что это | Когда достаточно |
|---|---|---|
| Кабинет покупателя | Розничный «мои заказы» + профиль | Обычный магазин без опта |
| B2B личный кабинет | Кабинет с персональными ценами, закрытым прайсом, балансом и документами | Опт и дилеры с типовыми условиями |
| Портал дилеров | Развитый B2B-кабинет: роли внутри контрагента, лимиты, согласования, отгрузки, аналитика | Сеть партнёров со сложными процессами |
Граница между ними условна: портал — это «выросший» B2B-кабинет. На старте многим хватает базового набора (цены, заказы, документы), а ролевую модель, лимиты и глубокую аналитику добавляют по мере роста числа партнёров. Ошибка — сразу строить «портал мечты» на пять дилеров: проще запустить рабочий минимум и наращивать функции под реальные запросы партнёров.
Собираем мы такие решения в рамках услуги B2B-порталы и личные кабинеты — от базового кабинета опта до портала дилерской сети с ролями и лимитами.
Разделы кабинета дилера: из чего он состоит
Хороший кабинет дилера — это не одна страница, а понятный набор разделов, каждый из которых закрывает конкретную задачу партнёра. Условный «дашборд» после входа собирает их в плитки, а внутри каждого раздела — своя логика и своя связь с 1С.
Типовой состав кабинета дилера выглядит так:
- Дашборд. Сводка: баланс, ближайшие отгрузки, статусы активных заказов, задолженность, быстрые действия (повторить заказ, загрузить из Excel).
- Каталог с персональными ценами. Витрина, где дилер видит свой прайс и наличие по складам, а не розничные ценники.
- Заказы. История с фильтрами, статусами, повторным заказом и печатью документов.
- Быстрый заказ. Ввод по артикулу и загрузка заказа из файла Excel/CSV.
- Баланс и взаиморасчёты. Текущий баланс, задолженность, кредитный лимит, история платежей и отгрузок.
- Документы. Счета, акты, УПД, накладные, договоры — на скачивание и печать.
- Профиль и реквизиты. Данные контрагента, адреса доставки, контактные лица.
- Сотрудники и роли. Учётные записи внутри дилера с разными правами (для портала).
- Уведомления. Изменения статусов, новые документы, приближение к лимиту.
Не все разделы нужны сразу и всем. Небольшому опту хватает каталога, заказов и документов; крупной дилерской сети нужны роли, лимиты и отгрузки. Проектируя кабинет, полезно разложить функции на «обязательный минимум для запуска» и «развитие», чтобы не затягивать старт.
Регистрация и модерация дилеров
Ключевое отличие B2B-кабинета от розничного — доступ дают не всем и не сразу. Дилерские цены и закрытый прайс не должны открываться случайному человеку, зарегистрировавшемуся с почты. Поэтому вход в кабинет дилера проходит через модерацию.
Типовой поток регистрации партнёра выглядит так:
- Заявка с реквизитами. Будущий дилер заполняет форму: наименование компании, ИНН, контактное лицо, телефон, регион. Не просто «имя и e-mail», как в рознице.
- Заявка уходит на модерацию. Регистрация не даёт доступ автоматически — пользователь создаётся, но остаётся в «карантинной» группе без персональных цен.
- Проверка контрагента. Менеджер проверяет компанию по своим правилам: реальность юрлица, соответствие профилю, наличие договорённостей. Это решение человека, а не сайта.
- Перевод в рабочую группу. После подтверждения пользователя переводят в группу «Дилеры» (или нужный уровень опта), и ему открываются персональные цены и закрытый каталог.
- Привязка к контрагенту 1С. Учётную запись связывают с контрагентом в 1С, чтобы подтягивались его цены, баланс, лимит и документы.
- Уведомление партнёра. Дилер получает письмо «доступ открыт» и заходит в полноценный кабинет.
До модерации важно решить, что видит незарегистрированный или неподтверждённый посетитель. Варианты: розничные цены, «цена по запросу», полностью закрытый каталог или заглушка «доступ после подтверждения». Это бизнес-решение — сначала компания определяет политику, потом её отражают в группах и правах.
Группы пользователей и персональные цены
Сердце кабинета дилера — механизм персональных цен. В 1С-Битрикс он держится на связке групп пользователей и типов цен торгового каталога. Дилер попадает в свою группу, у группы есть права на «свой» тип цены — и партнёр видит именно его.
Схематично это работает так: у товара одновременно несколько цен (розничная, оптовая, дилерская), а права доступа к каждому типу цены определяют, какая группа его видит. Гость и розница видят розничную, оптовик — оптовую, дилер — дилерскую. Мы подробно разбираем этот механизм в отдельной статье про оптовые цены по группам клиентов в 1С-Битрикс — здесь же важно, как он проявляется именно в кабинете.
| Уровень партнёра | Группа пользователей | Что видит в кабинете |
|---|---|---|
| Гость / до модерации | Гости, «Карантин» | Розница или заглушка «цена по запросу» |
| Опт первого уровня | Оптовые покупатели | Оптовый прайс, стандартные условия |
| Дилер | Дилеры | Дилерский прайс, закрытый каталог, лимит |
| Ключевой партнёр | Индивидуальная группа | Индивидуальный прайс из 1С по контрагенту |
Для крупных партнёров типовых уровней бывает мало — им нужны индивидуальные условия. Тогда цены ведут в 1С по конкретному контрагенту и передают на сайт обменом, а кабинет показывает именно их. Чем индивидуальнее условия, тем больше логики уходит в 1С, а не в «галочки» админки. Глубина возможностей зависит от редакции и доработок.
Отдельный важный нюанс — показ цены до и после входа. В кабинете дилер всегда авторизован, поэтому видит свой прайс. Но каталог доступен и с публичной части, и там нужно решить: показывать ли дилеру его цены вне кабинета (по сессии авторизации) или гнать его именно в закрытый раздел. Обычно персональные цены доступны всюду после входа, а закрытый прайс — везде скрыт от неавторизованных.
Закрытый каталог: виден после входа
Персональные цены — это половина закрытого опта. Вторая половина — сам каталог, который дилер видит иначе, чем случайный посетитель. Здесь у бизнеса несколько вариантов «степени закрытости», и выбор — это решение компании, а не техники.
- Открытый каталог, закрытые цены. Товары и характеристики видны всем, но дилерская цена и кнопка заказа — только после входа. Самый мягкий вариант, хорош для SEO.
- Каталог с заглушкой цен. Гость видит товар, но вместо цены — «войдите, чтобы увидеть цену» или «цена по запросу». Опт закрыт, ассортимент открыт.
- Отдельные закрытые разделы. Часть каталога (спецпозиции, эксклюзив, партнёрские линейки) видна только авторизованным дилерам, остальное — всем.
- Полностью закрытый B2B-каталог. Весь ассортимент доступен только после входа. Подходит, когда сам факт наличия товаров — коммерческая тайна.
Технически закрытость строится на правах доступа к разделам инфоблока и к типам цен, а также на проверке авторизации в шаблоне и на бэкенде. Важно, чтобы закрытость проверялась на сервере, а не только скрытием в вёрстке — иначе цену или товар можно «подсмотреть» в коде страницы. Об этом ещё поговорим в разделе про безопасность.
Ещё одно требование закрытого каталога — SEO-согласованность. Если каталог открыт для индексации, но цены закрыты, поисковик видит товары без цен — это нормально. Если же весь каталог за авторизацией, роботы его не увидят вовсе, и тогда SEO-трафик придётся получать с открытых информационных страниц. Эти развилки лучше проговаривать до запуска.
История заказов и повторный заказ
Опт живёт повторяющимися заказами. Дилер редко собирает каждый раз новую корзину — чаще он берёт примерно то же, что и в прошлый раз, корректируя количества. Поэтому история заказов и повторный заказ — не украшение, а одна из самых используемых функций кабинета.
Что должно быть в разделе заказов дилера:
- Полная история с фильтрами по дате, статусу, сумме и составу — чтобы быстро найти нужный заказ среди сотен.
- Детализация заказа с ценами на момент заказа, статусами позиций, отгрузками и привязанными документами.
- Повтор заказа в один клик — состав прошлого заказа переносится в корзину по актуальным ценам и с проверкой наличия.
- Подсказки об изменениях — что подорожало, чего нет на складе, что заменено, чтобы дилер оформил заказ осознанно.
- Списки для заказа (шаблоны). Сохранённые наборы товаров, которые партнёр заказывает регулярно, — «моя стандартная закупка».
Повторный заказ кажется простой функцией, но в B2B у неё есть тонкости. Цены могли измениться, товар мог уйти из ассортимента или смениться артикул, часть позиций может быть недоступна этому дилеру. Хорошая реализация не молча копирует старый заказ, а показывает дилеру «дифф»: вот что перенеслось как есть, вот что изменилось в цене, вот чего нет — решайте. Это защищает партнёра от неприятных сюрпризов в счёте.
Заказ по артикулу и загрузка из Excel
Дилер знает, что ему нужно, и знает артикулы. Заставлять его листать каталог карточка за карточкой — терять его время. Поэтому кабинет дилера почти всегда дополняют быстрыми способами набрать заказ.
Заказ по артикулу. Отдельная страница с таблицей: дилер вводит артикул, система подсказывает товар (автодополнение), он ставит количество — и позиция уходит в корзину. Для однотипных закупок это в разы быстрее каталога. Логику поиска и распознавания кодов мы подробно разбираем в статье про поиск по артикулу для B2B-каталога.
Загрузка заказа из Excel/CSV. Дилер выгружает у себя список «артикул + количество» и загружает файл. Система сопоставляет артикулы с товарами, показывает результат разбора и собирает корзину. Это флагманская B2B-функция — она превращает получасовую ручную сборку в минуту работы.
У загрузки из файла есть подводные камни, которые нужно закрыть в реализации:
| Ситуация в файле | Как должен вести себя кабинет |
|---|---|
| Артикул не найден | Показать строку как «не найдено», не роняя весь импорт |
| Несколько товаров на артикул | Предложить выбор или взять по правилу сопоставления |
| Товар недоступен дилеру | Отметить и исключить из корзины с пояснением |
| Количество меньше кратности | Округлить до кратности упаковки и предупредить |
| Разные форматы файла | Поддержать Excel и CSV, разные разделители и кодировки |
Главное правило — прозрачный разбор. Дилер должен увидеть, что распозналось, а что нет, и только потом подтвердить корзину. «Молчаливый» импорт, который тихо выкидывает половину строк, хуже отсутствия функции: партнёр недосчитается товаров уже в отгрузке.
Статусы заказов, отгрузки и резервы
В рознице статус заказа — это чаще всего «оформлен → отправлен → доставлен». В опте всё сложнее: один заказ может отгружаться частями, с разных складов, с резервом под будущую поставку. Кабинет дилера должен честно показывать это состояние, иначе партнёр звонит менеджеру с вопросом «а где мой товар».
Что важно отражать в статусах B2B-заказа:
- Статус заказа целиком — принят, согласован, в сборке, отгружен, закрыт.
- Статусы отгрузок. Один заказ = несколько отгрузок: часть уехала сегодня, часть — под заказ. Дилер видит каждую отгрузку отдельно.
- Резервирование. Что зарезервировано под дилера на складе, а что ещё нет — чтобы он понимал, обеспечен ли заказ товаром.
- Остатки по складам. Наличие в разрезе складов, если отгрузка идёт из нескольких точек.
- Ожидаемые поступления. Когда придёт то, чего нет сейчас, — если такие данные ведутся в 1С.
Все эти данные — из учётной системы. Статусы, отгрузки, резервы и остатки по складам ведутся в 1С и передаются на сайт обменом. Кабинет их только отображает и, наоборот, отдаёт в 1С новые заказы. Поэтому качество этого раздела напрямую зависит от того, насколько полно настроен обмен — об этом ниже отдельный раздел.
Баланс, взаиморасчёты и платежи
B2B — это работа с отсрочкой и взаиморасчётами, а не «оплатил картой и забрал». Поэтому раздел баланса для дилера часто важнее самого каталога: партнёр хочет видеть, сколько он должен, сколько может заказать и когда платить.
Что показывает раздел взаиморасчётов:
- Текущий баланс — сальдо по контрагенту: должен дилер или есть переплата.
- Сумма к оплате и сроки — что и когда нужно оплатить.
- История платежей и отгрузок — движение по счёту, сверка расчётов.
- Оплата счёта — если подключены онлайн-оплата или выставление счёта для юрлиц.
- Акт сверки — выгрузка для сверки взаиморасчётов с бухгалтерией.
Принципиальный момент: баланс не считается на сайте. Сальдо, платежи и отгрузки — это бухгалтерия, и она живёт в 1С. Сайт получает готовые цифры обменом взаиморасчётов по контрагенту и показывает их. Любая попытка «складывать заказы на сайте, чтобы получить долг» приведёт к расхождению с 1С и подрыву доверия. Источник истины по деньгам — всегда учётная система.
Отдельно стоит согласовать частоту обновления баланса. Взаиморасчёты не всегда нужно синхронизировать в реальном времени — часто достаточно обмена по расписанию (например, несколько раз в день). Но дилеру важно понимать, на какой момент актуальны цифры, поэтому в кабинете полезно показывать дату последней синхронизации баланса.
Кредитный лимит и контроль дебиторки
Отсрочка платежа удобна дилеру, но рискованна для поставщика: если партнёр набирает товар в долг без ограничений, растёт дебиторская задолженность. Инструмент контроля — кредитный лимит, и кабинет дилера может сделать его работу прозрачной для обеих сторон.
Как лимит проявляется в кабинете:
- Отображение лимита и остатка. Дилер видит свой лимит, сколько уже выбрано и сколько ещё можно заказать в долг.
- Влияние на оформление. Заказ в пределах лимита оформляется как обычно; заказ сверх лимита — блокируется, требует предоплаты или уходит на согласование менеджеру.
- Предупреждения о приближении. Уведомление, когда лимит выбран, скажем, на 80% — чтобы партнёр успел оплатить.
- Контроль просрочки. Если есть просроченная задолженность, новые заказы могут ограничиваться до погашения.
Как именно лимит влияет на заказ — это политика компании. Кто-то жёстко блокирует отгрузку сверх лимита, кто-то пропускает на согласование, кто-то только предупреждает. Сайт реализует выбранное правило, но само правило формулирует бизнес и финансовая служба. И, как и баланс, значения лимита приходят из 1С — сайт их не выдумывает.
Документы: счета, акты, УПД, договоры
Юрлицо работает с документами. Дилеру постоянно нужны счета на оплату, акты, УПД (универсальный передаточный документ), накладные, а иногда — доступ к договору и приложениям. В рознице это неактуально, в B2B — обязательный раздел кабинета.
Что обычно даёт раздел документов:
| Документ | Зачем дилеру | Откуда берётся |
|---|---|---|
| Счёт на оплату | Оплатить заказ по безналу | Формируется на сайте или приходит из 1С |
| УПД / накладная | Подтвердить отгрузку и учесть товар | Из 1С по факту отгрузки |
| Акт | Закрыть период, услуги | Из 1С |
| Акт сверки | Сверить взаиморасчёты | Из 1С по контрагенту |
| Договор и приложения | Условия работы, спецификации | Прикрепляются к контрагенту |
Ключевая развилка — где формируются документы. Счёт на оплату кабинет может генерировать сам по данным заказа. А вот УПД, накладные и акты — это документы бухгалтерского учёта, они формируются в 1С по факту операций и передаются на сайт как файлы, привязанные к заказу или контрагенту. Пытаться «рисовать» бухгалтерские документы на сайте в обход 1С — плохая идея: они разойдутся с учётом.
С документами важна и безопасность: акт или счёт одного дилера не должен быть доступен другому. Доступ к файлам проверяется на бэкенде по привязке к контрагенту, а прямые ссылки на документы защищаются, чтобы их нельзя было получить перебором. Это часть общей темы безопасности закрытого кабинета.
Роли внутри дилера: сотрудники и менеджеры
Крупный дилер — это компания, а не один человек. За закупки отвечает один сотрудник, за согласование — руководитель, за оплату и документы — бухгалтер. Если у контрагента одна учётная запись на всех, начинается путаница: непонятно, кто что заказал, все видят баланс и документы, пароль ходит по рукам. Решение — роли внутри дилера.
Типовые роли в портале дилеров:
- Администратор дилера. Управляет учётными записями сотрудников своей компании, видит всё: заказы, баланс, документы.
- Закупщик / менеджер. Формирует и оформляет заказы, видит цены и наличие, но не обязательно видит финансы.
- Согласующий. Подтверждает заказы сотрудников перед отправкой поставщику — если в компании есть внутреннее согласование.
- Бухгалтер. Доступ к балансу, счетам, актам и сверке, без права оформлять заказы.
- Наблюдатель. Только просмотр — например, для руководителя, которому нужна картина без действий.
Технически это несколько пользователей, привязанных к одному контрагенту, с разграничением прав на разделы кабинета. Глубина ролевой модели зависит от потребностей: кому-то хватает «администратор + сотрудник», кому-то нужна многоступенчатая цепочка согласований с лимитами на сотрудника. Начинать стоит с простого и усложнять по мере запросов партнёров — раздутая ролевая модель на старте только замедлит внедрение.
Со стороны поставщика тоже есть роль — менеджер, ведущий дилеров. Ему нужен доступ к кабинетам своих партнёров: помочь оформить заказ, согласовать превышение лимита, ответить на вопрос по документам. Это отдельный сценарий, который проектируют вместе с кабинетом дилера.
Уведомления и коммуникация
Кабинет не должен требовать, чтобы дилер постоянно в него заходил и проверял, не изменилось ли что-то. Наоборот — система сама сообщает о важном. Уведомления превращают кабинет из «места, куда надо зайти» в инструмент, который держит партнёра в курсе.
О чём обычно уведомляют дилера:
- Смена статуса заказа — принят, согласован, отгружен, готов к выдаче.
- Новая отгрузка — часть заказа уехала, вот накладная.
- Новый документ — появился счёт, УПД, акт.
- Финансовые события — приближение к лимиту, просрочка, поступление оплаты.
- Ассортимент и цены — при необходимости: поступление ожидаемого товара, изменение условий.
Каналы разные: e-mail как базовый, плюс уведомления внутри кабинета (колокольчик), а для оперативных событий — мессенджеры или SMS, если это оправдано. Важно не спамить: дилер должен получать значимые события, а не каждое микроизменение. Хорошая практика — дать партнёру настройки, какие уведомления и каким каналом он хочет получать.
Интеграция кабинета с 1С
Всё, что делает кабинет дилера ценным, — персональные цены, остатки по складам, статусы отгрузок, баланс, лимит, документы — приходит из учётной системы. Без глубокой интеграции с 1С кабинет остаётся красивой оболочкой без актуальных данных. Поэтому обмен — это фундамент, а не «добавим потом».
Что именно ходит между сайтом и 1С в B2B-кабинете:
| Данные | Направление | Роль в кабинете |
|---|---|---|
| Каталог и характеристики | 1С → сайт | Витрина, карточки, фильтры |
| Типы цен по контрагенту | 1С → сайт | Персональные цены дилера |
| Остатки по складам | 1С → сайт | Наличие, резервы, отгрузки |
| Заказы | сайт → 1С | Оформленные заказы уходят в учёт |
| Статусы и отгрузки | 1С → сайт | Отслеживание заказа дилером |
| Баланс и взаиморасчёты | 1С → сайт | Сальдо, лимит, история платежей |
| Документы (УПД, акты) | 1С → сайт | Скачивание в разделе документов |
Базовый обмен каталогом и заказами идёт по стандарту CommerceML, а вот баланс, лимиты, статусы отгрузок и документы — это уже расширенный обмен, который проектируют под конкретную конфигурацию 1С. Здесь нет «коробочной кнопки»: объём и формат данных зависят от того, как устроен учёт у поставщика. Общие принципы обмена мы разбираем в статье про интеграцию интернет-магазина с 1С, а под B2B-кабинет обмен всегда настраивается индивидуально.
Отдельно нужно определить частоту и надёжность обмена для каждого типа данных. Цены и остатки обычно синхронизируют часто, баланс — по расписанию, документы — по факту появления. Важно предусмотреть, что делать при сбое обмена: показывать ли устаревшие данные с пометкой, блокировать ли операции, как не дать частичной выгрузке испортить витрину. Эти сценарии проектируют заранее, а не после первого сбоя.
Реализация в 1С-Битрикс: модуль и компоненты
Перейдём от «что должно быть» к «на чём это делается». Кабинет дилера на 1С-Битрикс собирается не с нуля — платформа даёт готовый фундамент, который дорабатывается под B2B.
Основные кирпичики:
- Модуль «Интернет-магазин» и «Торговый каталог». Заказы, типы цен, склады, статусы, оплаты и доставки — базовая механика, на которой стоит весь кабинет.
- Группы пользователей и права. Разграничение доступа к ценам, разделам каталога и кабинета — основа закрытого опта и ролей.
- Компоненты личного кабинета
sale.personal.*. Готовые компоненты для профиля, списка и детали заказов, повторного заказа, адресов — стартовая точка для B2B-кабинета. - Компоненты каталога.
catalog.section, умный фильтр и корзина, которые в кабинете показывают персональные цены. - Модуль обмена с 1С. Штатный обмен по CommerceML плюс доработки под баланс, лимиты и документы.
Роль компонентов sale.personal.* стоит пояснить. Это семейство штатных компонентов персонального раздела: sale.personal.order.list и sale.personal.order.detail для заказов, компоненты профиля и адресов. Они закрывают «розничный» минимум кабинета из коробки. Но B2B-функций — повторного заказа с диффом, загрузки из Excel, баланса и лимита из 1С, ролей внутри контрагента, раздела документов — в них штатно нет. Поэтому реальный кабинет дилера — это связка штатных компонентов как каркаса и доработок поверх них.
Кастомизация компонентов кабинета
Штатные компоненты — это каркас, но «как есть» они дают розничный кабинет. Чтобы получить рабочее место дилера, их кастомизируют. Здесь важно делать это правильно, чтобы не сломать обновляемость платформы.
Основные направления доработки:
- Шаблоны компонентов. Копируют штатный шаблон в свой и меняют вёрстку и логику вывода — не правя ядро. Так кабинет выглядит и работает по-B2B, а обновления платформы не затираются.
- Свои страницы и разделы. Баланс, документы, загрузка из Excel, роли — это чаще отдельные страницы кабинета со своими компонентами или контроллерами, а не переделка штатных.
- Расширение данных заказа. К заказу привязывают дополнительные поля из 1С (номер в учёте, отгрузки, документы) и показывают их в детали заказа.
- API и AJAX. Повтор заказа, загрузка файла, автодополнение по артикулу удобно делать через AJAX-контроллеры, чтобы кабинет работал быстро и без перезагрузок.
- Права на уровне контроллеров. Каждое действие (посмотреть документ, оформить заказ, увидеть баланс) проверяет права роли на сервере.
Главное правило кастомизации Битрикса — не править ядро и штатные компоненты напрямую. Всё делается через копии шаблонов, наследование, события и собственные модули. Иначе первое же обновление платформы затрёт доработки, и кабинет придётся чинить. Аккуратная кастомизация — это то, что отличает поддерживаемый кабинет от «однажды собранного и боящегося обновлений».
Кэш, права и безопасность закрытого кабинета
Кабинет дилера — это персональные данные и закрытые цены. Здесь ошибки кэширования и прав опаснее, чем в обычном каталоге: можно показать одному дилеру данные другого или раскрыть закрытый прайс. Три вещи, которые нужно держать под контролем.
Кэш с учётом пользователя и группы. Персональные цены, баланс, заказы нельзя кэшировать «одинаково для всех» — иначе дилер получит из общего кэша чужие цифры. Персональные блоки выносят в динамическую часть, а статику отдаёт композитный сайт. Общий каталог кэшируют с учётом группы пользователя, чтобы дилерская цена не попала в кэш розницы.
Проверка прав на бэкенде. Доступ к цене, документу, заказу, балансу проверяется на сервере при каждом обращении, а не скрытием в вёрстке. Правило простое: если чего-то не должно быть видно, оно не должно приходить с сервера, а не «приходит, но спрятано стилями». Иначе данные достаются из кода страницы или прямым запросом.
Изоляция данных контрагентов. Дилер А не должен получить документ, заказ или баланс дилера Б ни через интерфейс, ни подбором ссылки. Каждый запрос данных фильтруется по привязке пользователя к контрагенту, а прямые ссылки на файлы защищаются.
Производительность тоже важна: кабинет дилера обращается к 1С за балансом и статусами, и если делать это синхронно на каждый заход, страница будет тормозить. Правильный подход — данные приходят обменом заранее и хранятся на стороне сайта, а тяжёлые запросы к 1С в реальном времени сводят к минимуму. О воспринимаемой скорости и композитном подходе мы пишем в рубрике B2B и опт и смежных материалах блога.
Частые ошибки при внедрении кабинета
Эти промахи повторяются в B2B-проектах чаще всего — зная их, вы сэкономите время и нервы партнёров:
- Открыли доступ без модерации. Любой регистрируется и сразу видит дилерские цены — закрытый прайс утекает конкурентам.
- Считают баланс на сайте. Долг складывают из заказов вместо обмена с 1С — цифры расходятся с бухгалтерией, доверие падает.
- Молчаливая загрузка из Excel. Импорт тихо выкидывает нераспознанные строки, дилер недосчитывается товаров уже в отгрузке.
- Один статус на весь заказ. Частичные отгрузки не показаны — партнёр не понимает, где половина заказа, и звонит менеджеру.
- Повтор заказа без диффа. Старый заказ копируется молча, дилер получает устаревшие цены и отсутствующие позиции в счёте.
- Правят штатные компоненты и ядро. Первое обновление платформы затирает доработки, кабинет ломается.
- Кэш без учёта пользователя. Дилер видит из общего кэша чужие цены, баланс или заказы — и ошибка, и утечка данных.
- Документы без изоляции. Счета и акты доступны подбором ссылки, данные одного контрагента видит другой.
- Строят «портал мечты» на старте. Пытаются сразу сделать все роли, лимиты и аналитику — запуск затягивается на месяцы, партнёры ждут.
- Забыли про сотрудников дилера. Одна учётка на всю компанию — пароль ходит по рукам, непонятно, кто что заказал.
Чек-лист функций ЛК дилера
Короткий список для приёмки кабинета перед запуском — по нему удобно проверить, что базовый B2B-минимум закрыт:
- Модерация регистрации работает. Заявка с реквизитами, проверка менеджером, перевод в группу и привязка к контрагенту 1С.
- Персональные цены видны. Дилер после входа видит свой прайс, гость — нет; цены приходят из 1С по контрагенту.
- Каталог закрыт по правилам. Выбрана и реализована степень закрытости (цены/разделы/весь каталог), проверена на бэкенде.
- История и повтор заказа. Заказы с фильтрами, повтор в один клик с диффом по ценам и наличию.
- Быстрый заказ. Ввод по артикулу и загрузка из Excel/CSV с прозрачным разбором файла.
- Статусы и отгрузки. Показаны статусы заказа, частичные отгрузки, резервы и остатки по складам.
- Баланс и лимит. Сальдо, задолженность и кредитный лимит из 1С; правило заказа сверх лимита определено.
- Документы доступны. Счета, УПД, акты, сверка — с изоляцией по контрагенту.
- Роли настроены. При необходимости — сотрудники дилера с разными правами и менеджер со стороны поставщика.
- Уведомления включены. Партнёр получает значимые события, каналы и частота согласованы.
- Обмен с 1С настроен. Цены, остатки, заказы, статусы, баланс, документы ходят по расписанию; поведение при сбое определено.
- Безопасность и кэш проверены. Права на бэкенде, изоляция данных, кэш с учётом пользователя, проверка под разными ролями.
Вывод
Личный кабинет дилера на 1С-Битрикс — это не «страница мои заказы», а рабочее место B2B-партнёра, где сходятся персональные цены, закрытый каталог, история и повтор заказов, загрузка из Excel, статусы отгрузок, баланс, лимит и документы. Держится всё это на штатном фундаменте платформы — модуле интернет-магазина, группах пользователей, типах цен и компонентах sale.personal.*, — дополненном доработками под опт и глубоким обменом с 1С.
Два принципа определяют, будет кабинет работать или создавать проблемы. Первый — 1С как источник истины: цены, остатки, баланс, лимит и документы приходят из учётной системы, а не считаются на сайте. Второй — закрытость проверяется на сервере: доступ к ценам, документам и данным контрагента разграничивается правами на бэкенде, а не скрытием в вёрстке. Соблюдая их, вы получаете кабинет, которому дилер доверяет: цена совпадает со счётом, остаток — со складом, баланс — с бухгалтерией. А начинать всегда стоит с рабочего минимума и наращивать функции под реальные запросы партнёров, а не строить «портал мечты» вслепую.