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

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Розробка особистого кабінету продавця на маркетплейсі 1С-Бітрікс
Середня
~1-2 тижні
Часті питання

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

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • 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
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Розробка особистого кабінету продавця на маркетплейсі в 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 тижнів