У маркетплейсі “товар” і “пропозиція” — різні сутності
Product — це карточка й контент. Offer — це продавець + ціна + залишок + умови доставки/повернення. Якщо змішати їх у одну таблицю, ви швидко отримаєте дублікати і неможливість керувати якістю.
1) Базова модель
- Product: назва, атрибути, категорія, медіа.
- Offer: sellerId, price, stock, leadTime, conditions.
- Variant: колір/розмір як окрема сутність для правильних фільтрів.
2) Імпорт і якість
- Валідація, нормалізація, дедуплікація (sku/ean/атрибути).
- Звіти постачальнику: що відхилено і чому.
3) Пошук і фасети
Фасети мають працювати від атрибутів і варіантів. Для масштабу — Elasticsearch/OpenSearch, індексація подій і контроль ranking.
4) Ризики
Ціни/залишки змінюються часто — потрібні події, кеш, і правила консистентності, щоб UI не показував “фантомні” залишки.
Підсумок
Сильний маркетплейс починається з правильної моделі product/offer і процесу якості даних. Тоді масштабування не перетворюється на хаос.