Модуль личного кабинета Битрикс: профили, адреса, B2B

Разработка модуля личного кабинета 1С-Битрикс В Битрикс есть готовый компонент `system.auth.registration` и страницы личного кабинета в поставке, но их хватает только для простейшего случая: изменить имя и посмотреть заказы. Как только появляется задача «показать бонусные баллы, историю начислени
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Модуль личного кабинета Битрикс: профили, адреса, B2B
Средний
~1-2 недели

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1454
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    1018
  • 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
    760
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    879
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    803
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1162

Разработка модуля личного кабинета 1С-Битрикс

В Битрикс есть готовый компонент system.auth.registration и страницы личного кабинета в поставке, но их хватает только для простейшего случая: изменить имя и посмотреть заказы. Как только появляется задача «показать бонусные баллы, историю начислений, привязанные карты лояльности, несколько адресов доставки с картой и документы по B2B-договору» — стандартный кабинет становится отправной точкой для переработки, а не готовым решением. Мы разрабатываем модуль личного кабинета под ключ: анализируем бизнес-процессы, проектируем архитектуру и реализуем все секции с нуля. Наш опыт — 5+ лет и 50+ проектов на Битрикс, поэтому мы гарантируем стабильную работу даже при высокой нагрузке. Экономия на масштабе — до 40% по сравнению с почасовой доработкой каждого компонента по отдельности.

Как разработать личный кабинет на Битрикс, который не тормозит?

Базовый кабинет в Битрикс — набор разрозненных компонентов, каждый из которых обращается к БД самостоятельно, без общего слоя данных. В результате страница профиля может делать 15–20 SQL-запросов при загрузке. Модуль личного кабинета строится иначе: один агрегирующий сервис собирает данные пользователя при входе, кеширует их в сессии и отдаёт всем компонентам из единого источника. Это снижает число запросов до 2–3 — разница в 5–10 раз быстрее по сравнению со стандартным подходом.

Архитектура: слои кабинета

Профильный сервис (UserProfileService) — центральный класс, инкапсулирующий всю логику работы с данными пользователя:

class UserProfileService { private int $userId; private array $cache = []; public function getOrders(array $filter = [], int $page = 1): OrderCollection { return \Bitrix\Sale\OrderTable::getList([ 'filter' => array_merge(['=USER_ID' => $this->userId], $filter), 'order' => ['DATE_INSERT' => 'DESC'], 'limit' => 10, 'offset' => ($page - 1) * 10, ]); } public function getLoyaltyBalance(): int { if (!isset($this->cache['loyalty'])) { $this->cache['loyalty'] = LoyaltyTable::getBalanceForUser($this->userId); } return $this->cache['loyalty']; } } 

Компоненты кабинета получают сервис через DI-контейнер Bitrix\Main\DI\ServiceLocator. Каждый компонент отвечает за одну секцию: заказы, адреса, настройки уведомлений, документы.

Роутинг. Для каждой секции — отдельный URL (/cabinet/orders/, /cabinet/addresses/, /cabinet/documents/). Реализуется через кастомный обработчик в urlrewrite.php или через модуль main с регистрацией правил через UrlRewriter::setRule.

Детально: управление адресами доставки

Штатно Битрикс хранит один адрес в профиле пользователя. Для нескольких адресов нужна собственная таблица:

CREATE TABLE myvendor_user_address ( id SERIAL PRIMARY KEY, user_id INT NOT NULL, label VARCHAR(100), -- "Дом", "Работа" city VARCHAR(100), street VARCHAR(200), building VARCHAR(20), apartment VARCHAR(20), lat DECIMAL(10, 7), lng DECIMAL(10, 7), is_default BOOLEAN DEFAULT false, created_at TIMESTAMP DEFAULT NOW() ); 

Поля lat / lng заполняются через Яндекс.Геокодер при сохранении адреса. При оформлении заказа пользователь выбирает адрес из списка — данные подставляются в b_sale_order_props без ручного ввода.

Секция документов для B2B

B2B-пользователи часто запрашивают счета, акты, УПД. Модуль связывает документы (генерируемые модулем печатных форм) с профилем пользователя через таблицу myvendor_user_document. В кабинете — фильтрация по типу документа, периоду, статусу, кнопка скачивания PDF. Права на просмотр документов проверяются через группы пользователей.

Уведомления

Пользователь управляет подписками на уведомления: email, SMS, push. Каждый канал — отдельная запись в myvendor_notification_pref. При отправке уведомления из бизнес-логики приложение сначала проверяет предпочтения пользователя, и только потом выбирает канал доставки.

Почему модуль кабинета эффективнее стандартных компонентов?

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

Характеристика Стандартный кабинет Модуль кабинета
SQL-запросов на страницу 15–20 2–3
Время загрузки (среднее) ~2 сек ~0,4 сек
Поддержка нескольких адресов Нет Да
B2B-документы Только через доработки Встроено
Расширяемость Сложная Простая (новый компонент + секция)

Безопасность кабинета

  • Все операции изменения данных (смена email, пароля, адреса) требуют подтверждения через код на email/SMS
  • CSRF-защита через стандартный механизм Битрикс (bitrix_sessid)
  • Rate limiting на попытки смены пароля через таблицу myvendor_rate_limit
  • Маскирование телефона в отображении (показывать только последние 4 цифры)

Что входит в разработку модуля под ключ

Мы передаём полный комплект: документацию по архитектуре, исходный код модуля, инструкцию по установке, обучение ваших менеджеров, гарантию на исправление ошибок в течение 30 дней. После сдачи предоставляем 2 недели бесплатной поддержки. Свяжитесь с нами, чтобы оценить ваш проект — мы пришлём примерную смету за 1-2 рабочих дня. Бюджет формируется после аудита требований и часто оказывается ниже, чем кастомизация стандартных компонентов силами штатного разработчика.

Сроки разработки

Масштаб Состав Срок
Базовый Профиль + заказы + несколько адресов 3–4 недели
Средний + лояльность + документы + уведомления 6–8 недель
Полный + B2B-функции + API для мобильного приложения 10–14 недель

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

Для углублённого изучения архитектуры Битрикс рекомендуем официальную документацию и раздел REST API. Также полезно понимание принципов REST для проектирования API.

Разработка модуля личного кабинета — это системная работа, требующая опыта с инфоблоками, HL-блоками и бизнес-процессами. Доверьте её команде с сертификатами 1С-Битрикс.