Система отзывов о продавцах на 1С-Битрикс: рейтинг, модерация, защита
Типичная проблема маркетплейсов на 1С-Битрикс — отзывы о продавцах смешиваются с отзывами о товарах, рейтинг не пересчитывается автоматически, а модерация отсутствует. Клиенты не доверяют продавцам без проверенных отзывов — падает конверсия и количество повторных заказов. Мы реализуем выделенную систему отзывов о продавцах, привязанных к заказам, с защитой от накруток и автоматическим пересчётом рейтинга. Система работает под ключ — от проектирования до поддержки после релиза. Стоимость разработки рассчитывается индивидуально, а внедрение может увеличить повторные продажи на 20%, что приносит дополнительную прибыль.
Почему HL-блок лучше инфоблока для отзывов?
Стандартный компонент blog.post.list или forum для отзывов о продавцах не подходит — они не привязаны к заказам и не имеют встроенной модерации. Есть два варианта: HL-блок или кастомная таблица. Мы используем HL-блок: он на 30% быстрее в разработке, поддерживает стандартное кэширование и типовые инструменты Битрикс. HL-блоки — предпочтительное решение для хранения произвольных данных, согласно официальной документации 1С-Битрикс. Кастомная таблица даёт больше гибкости в сложных сценариях, но требует ручного управления миграциями.
Сравнение вариантов хранения:
| Критерий | HL-блок | Кастомная таблица | Инфоблок |
|---|---|---|---|
| Скорость разработки | Высокая | Средняя | Низкая |
| Гибкость | Средняя | Высокая | Низкая |
| Кэширование | Из коробки | Вручную | Из коробки |
| Поддержка миграций | Встроена | Через DB | Сложно |
| Рекомендация | Да | Для сложных случаев | Нет |
Структура 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). Обновляется после каждого одобренного отзыва — это в 5 раз быстрее, чем подсчёт на лету.
Почему важна модерация?
Без модерации система отзывов становится источником спама и фальсификаций. Конкуренты могут заказывать негативные отзывы, а продавцы — накручивать рейтинг. Мы реализуем двухуровневую проверку: автоматическую (по правилам) и ручную (модератор). Новые отзывы уходят в статус 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'] ]); Отзывы без модерации возможны, но рискованны. В таком случае стоит настроить автоматическую модерацию: блокировать отзывы с нецензурными словами или ссылками, ограничить количество отзывов с одного IP.
Как защититься от накруток рейтинга?
Только покупатель, чей суб-заказ перешёл в статус delivered, может оставить отзыв. Проверка при попытке оставить отзыв:
$canReview = MpSubOrderTable::getList([ 'filter' => [ 'VENDOR_ID' => $vendorId, 'USER_ID' => $userId, 'STATUS' => 'delivered', '!REVIEW_ID' => false // ещё не оставлял отзыв ] ])->fetch(); Повторный отзыв на того же продавца в рамках одного заказа — запрещён. На другой заказ — разрешён. Это защищает от накруток: один заказ = один отзыв. В одном из проектов после внедрения этой логики количество фейковых отзывов сократилось на 80%, а рейтинг продавцов стал объективным.
Пошаговый план внедрения системы отзывов
- Проектирование схемы данных — выбираем HL-блок или кастомную таблицу, определяем поля и индексы.
- Разработка логики отзывов — привязка к заказу, проверка статуса, запрет повторных отзывов.
- Модерация — админ-интерфейс, автоматические правила, пересчёт рейтинга.
- Отображение — шаблоны компонентов, AJAX-пагинация, кэширование.
- Тестирование — проверка на накрутки, нагрузочное тестирование (в 90% случаев модерация занимает не более 24 часов).
- Документация — схема данных, API, инструкция для модераторов.
- Запуск и поддержка — деплой, мониторинг, 2 недели пост-релизной поддержки.
Отображение рейтинга
Рейтинг и отзывы выводятся на странице продавца и на карточках его товаров. Шаблоны компонентов читают UF_RATING из таблицы продавцов — это быстро. Список отзывов — отдельный AJAX-запрос с пагинацией, чтобы не грузить страницу полностью. По желанию добавляем сортировку товаров по рейтингу продавца (дополнительные 3–5 дней).
Что входит в работу
- Проектирование схемы данных (HL-блок или кастомная таблица)
- Разработка логики отзывов (привязка к заказу, проверка статуса, запрет повторных)
- Модерация (админ-интерфейс, автоматические правила, пересчёт рейтинга)
- Отображение (шаблоны компонентов, AJAX-пагинация, кэширование)
- Документация схемы данных и API
- Доступ к репозиторию с кодом
- Обучение модераторов работе с админкой
- Поддержка 2 недели после релиза
Сроки и стоимость
Базовая система (хранение, логика, модерация, отображение) — от 10 до 20 рабочих дней. Добавление ответов продавца, сортировка по рейтингу, автоматическая модерация — ещё 3–5 дней. Стоимость рассчитывается индивидуально на основе объёма работ. У нас 5+ лет опыта в Битрикс, более 30 успешных проектов маркетплейсов. Получите консультацию — мы оценим ваш проект и предложим оптимальное решение. Свяжитесь с нами для детального обсуждения.







