Настройка рейтинга и отзывов о продавцах маркетплейса 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С-Битрикс

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

Хранение отзывов и рейтинга

Стандартный компонент blog.post.list / forum для этого не подходит. Нужен HL-инфоблок или кастомная таблица:

Таблица отзывов mp_vendor_reviews:

Поле Тип Описание
ID int, AI
VENDOR_ID int FK на продавца
USER_ID int FK на покупателя
ORDER_ID int FK на заказ/суб-заказ
RATING tinyint 1–5
TEXT text Текст отзыва
STATUS varchar pending / approved / rejected
CREATED_AT datetime
MODERATED_AT datetime

Индекс на (VENDOR_ID, STATUS) — для быстрого подсчёта рейтинга.

Рейтинг продавца хранится в таблице продавцов денормализованно: UF_RATING (float) и UF_RATING_COUNT (int). Обновляется после каждого одобренного отзыва.

Логика: кто и когда может оставить отзыв

Только покупатель, чей суб-заказ перешёл в статус delivered, может оставить отзыв. Проверка при попытке оставить отзыв:

$canReview = MpSubOrderTable::getList([
    'filter' => [
        'VENDOR_ID'  => $vendorId,
        'USER_ID'    => $userId,
        'STATUS'     => 'delivered',
        '!REVIEW_ID' => false  // ещё не оставлял отзыв
    ]
])->fetch();

Повторный отзыв на того же продавца в рамках одного заказа — запрещён. На другой заказ — разрешён.

Модерация отзывов

Новые отзывы уходят в статус pending. Модератор одобряет или отклоняет через административный интерфейс. При одобрении — пересчёт рейтинга продавца:

$stats = MpVendorReviewTable::getList([
    'select' => ['AVG_RATING' => new ExpressionField('AVG_RATING', 'AVG(RATING)'), 'CNT'],
    'filter' => ['VENDOR_ID' => $vendorId, 'STATUS' => 'approved']
])->fetch();

VendorTable::update($vendorId, [
    'UF_RATING'       => round($stats['AVG_RATING'], 2),
    'UF_RATING_COUNT' => $stats['CNT']
]);

Отзывы без модерации возможны, но рискованны — спам и фальсификации.

Отображение рейтинга

Рейтинг и отзывы выводятся на странице продавца и на карточках его товаров. Шаблоны компонентов читают UF_RATING из таблицы продавцов — это быстро. Список отзывов — отдельный AJAX-запрос с пагинацией, чтобы не грузить страницу полностью.

Сроки

Хранение отзывов, логика доступа, пересчёт рейтинга, базовая модерация — 1–2 недели. Добавление ответов продавца на отзывы, сортировка по рейтингу в каталоге — дополнительно 3–5 дней.