Разработка личного кабинета продавца на маркетплейсе 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Разработка личного кабинета продавца на маркетплейсе 1С-Битрикс
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1167
  • 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

Разработка личного кабинета продавца на маркетплейсе 1С-Битрикс

Стандартный личный кабинет Битрикс (/personal/) рассчитан на покупателя: история заказов, избранное, адреса доставки. Для продавца нужен принципиально другой интерфейс — управление каталогом, обработка входящих заказов, финансовая аналитика. Это самостоятельный раздел сайта с собственной логикой доступа, компонентами и AJAX-обработчиками.

Архитектура доступа

Кабинет продавца — закрытый раздел, доступный только пользователям в группе «Продавцы». Защита реализуется на двух уровнях:

Уровень URL — в настройках раздела (b_iblock_rights или настройки публичного раздела) доступ только для группы «Продавцы». Неавторизованный пользователь получает редирект на страницу входа.

Уровень данных — каждый запрос к данным (товары, заказы, аналитика) фильтрует по UF_VENDOR_ID = $USER->GetID(). Это защита от IDOR-атак: продавец не может получить данные другого продавца, подставив чужой ID в запросе.

// Принципиальный паттерн — обязательно в каждом запросе
$vendorId = $USER->GetID();
if (!$USER->IsInGroup(VENDOR_GROUP_ID)) {
    LocalRedirect('/login/');
}

// Все выборки данных — с жёстким фильтром по vendorId
$products = CIBlockElement::GetList(
    ['NAME' => 'ASC'],
    ['IBLOCK_ID' => CATALOG_IBLOCK_ID, 'UF_VENDOR_ID' => $vendorId]
);

Управление товарами

Это центральный раздел кабинета. Функциональность:

Список товаров — таблица с пагинацией, фильтрацией по категории/статусу/активности. Под капотом — CIBlockElement::GetList() с фильтром UF_VENDOR_ID. Для производительности при большом каталоге (1000+ товаров) — добавляем индекс на UF_VENDOR_ID в MySQL/PostgreSQL.

Добавление/редактирование товара — форма с полями основного инфоблока и инфоблока торговых предложений. Ключевые нюансы:

  • При добавлении принудительно устанавливаем UF_VENDOR_ID = $USER->GetID() — продавец не выбирает это поле сам
  • ACTIVE = 'N' при добавлении (товар уходит на модерацию), UF_MODERATION_STATUS = 'pending'
  • Загрузка изображений через CFile::SaveFile() в папку /upload/vendor_{$vendorId}/
  • Выбор категории — из разрешённых (некоторые категории могут требовать дополнительной верификации)

Массовые операции — изменение цен, остатков, статуса через CSV-загрузку или AJAX. CSV-импорт: fgetcsv() + пакетное обновление через CIBlockElement::Update() с проверкой, что все редактируемые ID принадлежат текущему продавцу.

Остатки по складам — если маркетплейс работает с несколькими складами, управление остатками через CCatalogStoreProduct с фильтрацией складов продавца.

Управление заказами

Продавец видит только суб-заказы, связанные с его товарами. Интерфейс:

Список суб-заказов — с фильтрами по статусу, дате, сумме. Суб-заказы из таблицы mp_sub_orders (кастомная таблица маркетплейса, см. статью о multi-vendor архитектуре). JOIN с b_sale_order для получения данных покупателя.

Детали суб-заказа — список позиций, данные для доставки (адрес, получатель), кнопки смены статуса. Статусы, которые продавец может менять: confirmed → shipped, shipped → delivered. Отмену инициирует платформа или покупатель, не продавец в одностороннем порядке.

Печатные формы — накладная, этикетка для доставки. Генерация PDF через fpdf/tcpdf или через шаблон HTML с print.css.

Автоматические уведомления — при поступлении нового суб-заказа продавец получает уведомление на email (CEvent::Send()) и/или Telegram (webhook). Настраивается в профиле продавца.

Финансовый раздел

Баланс и операции. Таблица финансовых операций mp_finance_log с полями: тип (sale / commission / payout / refund), сумма, дата, привязка к суб-заказу. Текущий баланс = сумма всех операций по UF_VENDOR_ID. Выводится в виде timeline-таблицы с постраничной навигацией.

Запрос выплаты. Продавец может запросить выплату накопленного баланса (если остаток выше минимального порога). Запрос создаёт запись в таблице mp_payout_requests со статусом pending. Менеджер платформы обрабатывает вручную или через API платёжного шлюза.

Отчёты. Продажи за период, комиссии, возвраты — в табличном формате с экспортом в Excel (через PHPExcel/PhpSpreadsheet или встроенный Bitrix-экспорт).

Аналитика

Базовая аналитика продавца:

Метрика Источник
Выручка за период mp_sub_orders, GROUP BY дата
Топ товаров по продажам b_sale_basket JOIN mp_sub_orders
Конверсия по статусам mp_sub_orders, GROUP BY status
Динамика оценок mp_vendor_ratings
Возвраты (%) mp_sub_orders WHERE status = 'refunded'

Данные выводятся через AJAX-запросы, графики — через Chart.js или ApexCharts. Тяжёлые агрегации выносятся в кэш (Redis или b_cache) с обновлением раз в час через агента Битрикс.

Профиль и настройки продавца

  • Редактирование юридических данных и реквизитов
  • Загрузка документов (с версионированием: новые документы уходят на повторную проверку)
  • Настройки уведомлений (email, Telegram, частота дайджестов)
  • Управление сотрудниками (суб-аккаунты с ограниченными правами — если нужно)
  • Статистика верификации: какие документы приняты, какие требуют обновления

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

Раздел Срок
Архитектура доступа, шаблон кабинета 1–2 недели
Управление товарами (CRUD + CSV-импорт) 3–4 недели
Управление заказами (суб-заказы) 2–3 недели
Финансовый раздел (баланс, операции, запрос выплаты) 2–3 недели
Аналитика 2–3 недели
Профиль и уведомления 1–2 недели
Итого 11–17 недель