Привет, Хабр!
В течение последнего года я занимался разработкой аналитической панели для продавцов на маркетплейсах Wildberries и Ozon, а в перспективе планируется интеграция с Яндекс.Маркет. Я хотел бы поделиться своим опытом и представить систему WBOZYA-dash, которая предназначена для анализа продаж через эти маркетплейсы. До конца весны 2026 выпущу, думаю, с десяток статей на эту тему, а пока сделаю общий обзор своей системы.

Аналитическая система WBOZYA-dash состоит из трёх ключевых компонентов: ETL-скриптов на Python, базы данных PostgreSQL и дашборда DataLens. Базовая версия дашборда включает около полутора сотен чартов и три десятка тематических вкладок. Перечислять их нет смысла - в конце статьи будет ссылка на работающую демо версию.
Развертывание системы подразумевает дальнейшую кастомизацию в соответствии с техническими заданиями заказчика. Можно как просто изменить формулу расчета какой-то метрики, так и создать эксклюзивный дашборд со своими данным и своей логикой. Среди реализованных нестандартных дашбордов например есть дашборд с расчётом окупаемости лицензий по продажам через маркетплейсы, а также оптовое и розничное подразделения компании.
Архитектура системы

Данные из Wildberries и Ozon, а также при необходимости из Google Sheets, извлекаются ETL-скриптами при опросе методов API МП, после чего экспортируются в базу данных PostgreSQL. Далее, с использованием SQL-запросов, данные преобразуются в датасеты для создания дашбордов в DataLens.
ETL-скрипты
ETL-скрипты разработаны на языке Python и представляют собой набор процедур, запускаемых по расписанию или через командную строку. Каждая процедура соответствует запросу к определенному методу API. В некоторых случаях запросы выполняются в несколько этапов, например, когда требуется предварительный запрос для получения необходимых данных. Логика работы ETL-скриптов включает определение самых свежих данных в базе и последующие запросы к API с этой даты до текущего момента. Система также обрабатывает ошибки HTTP 50x и 429, что обеспечивает непрерывную загрузку данных даже при временной недоступности API. ETL-скрипты могут быть запущены на серверах Яндекс.Облака или VPS.
База данных
База данных функционирует на сервере PostgreSQL, размещённом в Яндекс.Облаке или на VPS, что обеспечивает полный контроль над коммерческой информацией. Наличие собственной базы данных позволяет настраивать витрины данных на основе «сырых» данных из API, создавать резервные копии и получать мгновенный доступ к историческим данным. В базе данных предусмотрено около 50 таблиц, включая основные таблицы для прямого экспорта данных из API и вспомогательные таблицы, такие как логгирование, координаты складов и таблица соответствия артикулов между OZ и WB.
Дашборды DataLens
Datalens не взаимодействует напрямую с API, а работает исключительно с данными из базы данных. Для создания дашбордов преимущественно используются SQL-запросы, поскольку требуемые метрики часто требуют построения промежуточных таблиц. Вычисляемые поля DataLens не поддерживают многоэтапные агрегации, поэтому для этого применяются SQL-запросы. В DataLens используются различные типы чартов, такие как «Таблица», «График», «Линейная диаграмма», «Кольцевая диаграмма», «Сводная таблица», «Иерархическая таблица» и «Карты». Дашборды могут быть размещены в сервисе DataLens в Яндекс.Облаке или в OpenSourсe версии DataLens на VPS.
Боевой опыт
На данный момент система WBOZYA-dash внедрена у ограниченного числа клиентов, однако среди них есть клиент с объёмом продаж около 500 тысяч единиц продукции на сумму 450 миллионов рублей в месяц. Такие объёмы данных требуют особого подхода, и система успешно справляется с обработкой этой информации.
Для ознакомления с демонстрационной версией системы, работающей на реальных данных, вы можете перейти по ссылке: https://datalens.yandex/654jelz3xzpoq.
