Настройка комиссий маркетплейса 1С-Битрикс

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

Комиссия маркетплейса — это процент или фиксированная сумма, которую платформа удерживает с каждой продажи продавца. Правила могут быть простыми (единый % для всех) или сложными (зависит от категории товара, оборота продавца, типа доставки). В 1С-Битрикс стандартных инструментов для этого нет — нужна кастомная реализация.

Структура правил комиссий

Комиссии лучше хранить в отдельной таблице (через HL-инфоблок или кастомную таблицу), а не в b_option. Это позволяет версионировать правила и применять разные правила к разным продавцам/категориям.

Структура таблицы правил:

Поле Тип Описание
ID int
RULE_TYPE varchar global / category / vendor
VENDOR_ID int null = применяется ко всем
CATEGORY_ID int ID раздела инфоблока, null = все категории
RATE_TYPE varchar percent / fixed
RATE_VALUE decimal % или фиксированная сумма
MIN_AMOUNT decimal Минимальная комиссия
MAX_AMOUNT decimal Максимальная комиссия (null = без ограничений)
ACTIVE_FROM date Дата начала действия
ACTIVE_TO date Дата окончания (null = бессрочно)

Расчёт комиссии при создании суб-заказа

Расчёт происходит в обработчике OnAfterOrderAdd или в логике создания суб-заказа. Алгоритм выбора правила: сначала ищем индивидуальное правило для продавца + категории, затем для продавца, затем для категории, затем глобальное.

function calculateCommission(int $vendorId, int $categoryId, float $amount): float
{
    // Приоритет: vendor+category > vendor > category > global
    $rule = findRule($vendorId, $categoryId)
        ?? findRule($vendorId, null)
        ?? findRule(null, $categoryId)
        ?? findRule(null, null);

    if (!$rule) return 0.0;

    $commission = $rule['RATE_TYPE'] === 'percent'
        ? $amount * $rule['RATE_VALUE'] / 100
        : $rule['RATE_VALUE'];

    if ($rule['MIN_AMOUNT']) $commission = max($commission, $rule['MIN_AMOUNT']);
    if ($rule['MAX_AMOUNT']) $commission = min($commission, $rule['MAX_AMOUNT']);

    return round($commission, 2);
}

Рассчитанная комиссия записывается в таблицу финансовых операций с типом commission и привязкой к суб-заказу.

Административный интерфейс управления правилами

Страница в /bitrix/admin/ с CRUD-интерфейсом для правил комиссий. Список правил с фильтрацией по продавцу/категории, форма создания/редактирования, дата-пикер для периодов действия.

Отдельная страница — просмотр начисленных комиссий за период с группировкой по продавцу, выгрузка в Excel для бухгалтерии.

Сроки

Базовая реализация (одна ставка для всех + по категориям) — 1 неделя. Сложная модель (индивидуальные ставки, прогрессивные тарифы, временные акции) — 2–3 недели.