Розробка системи рейтингу продавців маркетплейсу
Рейтинг продавця — один з головних сигналів довіри для покупця. За інших рівних умов товар у продавця з рейтингом 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 тижні для повної системи з багатофакторним рейтингом, модерацією рецензій та автоматичними наслідками.







