Разработка системы рейтинга продавцов маркетплейса
Рейтинг продавца — один из главных сигналов доверия для покупателя. При прочих равных условиях товар у продавца с рейтингом 4.8 из 5 будет продаваться лучше, чем тот же товар у продавца с 3.9. Система должна быть защищена от накруток, быть прозрачной и отражать реальное качество сервиса.
Составляющие рейтинга
Рейтинг не должен сводиться только к звёздочкам отзывов. Качественная система учитывает несколько параметров:
| Параметр | Вес | Источник данных |
|---|---|---|
| Средняя оценка отзывов | 40% | Таблица reviews |
| Процент успешных доставок | 20% | order_deliveries |
| Скорость обработки заказов | 15% | order_status_history |
| Процент отмен по вине продавца | 15% | order_cancellations |
| Процент возвратов | 10% | returns |
Итоговый рейтинг — взвешенная сумма нормализованных показателей, приведённая к шкале 1–5.
Сбор отзывов
Отзыв можно оставить только после подтверждения получения заказа. Это исключает отзывы от несостоявшихся покупателей. Форма отзыва:
- Общая оценка (1–5 звёзд)
- Оценки по параметрам: соответствие описанию, упаковка, скорость отправки
- Текст (опционально, с минимальной длиной)
- Фото к отзыву (загрузка через S3)
Напоминание об отзыве: push/email через 3 дня после доставки, повторное через 7 дней.
Модерация отзывов
Отзывы проходят автоматическую фильтрацию (нецензурная лексика, спам-паттерны) и могут быть оспорены продавцом. Продавец может ответить на любой отзыв — это публично видно покупателям и демонстрирует вовлечённость.
Жалоба продавца на отзыв передаётся модератору. Основания для удаления: отзыв о другом товаре, содержит личные данные, явный фейк.
Пересчёт рейтинга
Рейтинг пересчитывается не в реальном времени (дорого), а по расписанию:
- Раз в час для активных продавцов (>10 заказов за 30 дней)
- Раз в сутки для остальных
-- Агрегация для пересчёта
SELECT
seller_id,
AVG(rating) as avg_rating,
COUNT(*) as reviews_count,
AVG(CASE WHEN status='delivered' THEN 1.0 ELSE 0.0 END) as delivery_rate
FROM orders
WHERE created_at >= now() - interval '90 days'
GROUP BY seller_id
Рейтинг считается скользящим: учитываются только последние 90 дней. Это защищает от "гниющего" прошлого и стимулирует поддерживать качество.
Отображение рейтинга
На странице товара: звёзды + число отзывов + ссылка на витрину продавца. На витрине: подробная разбивка по параметрам, динамика рейтинга за 6 месяцев (мини-график), последние отзывы.
Последствия низкого рейтинга
- Рейтинг < 4.0 — предупреждение в кабинете, товары ниже в выдаче
- Рейтинг < 3.5 в течение 30 дней — ограничение новых заказов, уведомление команды поддержки
- Рейтинг < 3.0 — автоматическая приостановка аккаунта до разбора ситуации
Это мотивирует продавцов исправляться, а не работать с плохим рейтингом годами.
Срок разработки: 3–4 недели для полной системы с многофакторным рейтингом, модерацией отзывов и автоматическими последствиями.







