MP Dashboard.
Аналитика WB и Ozon —
38 листов Excel
в один экран.
Заказная аналитика маркетплейсов для двух ИП, торгующих под одной маркой. Раз в час сама ходит в API Wildberries, Ozon и МойСклад, складывает живые цифры в собственное хранилище и показывает KPI, ABC-анализ, ленту остатков и таблицу SKU. Раньше 2 человека вручную переписывали данные между 38 листами Excel — теперь это происходит без них.
Заказчик не хочет видеть API.
Хочет видеть деньги.
Два ИП торговали солнцезащитными очками под одной маркой на Wildberries и Ozon, около тысячи SKU суммарно. Раз в день один из партнёров заходил в личные кабинеты обоих маркетплейсов, выгружал отчёты в Excel и вручную сводил их в один файл из 38 листов. На это уходило 1-2 часа в день у двух человек.
Готовых BI-сервисов под их сценарий не нашли: маркетплейс-агрегаторы либо не покрывают одновременно WB и Ozon, либо требуют отдать ключи во внешний сервис. Заказчику было важно держать данные у себя — обороты больше десятка миллионов в месяц, ключи к API дают доступ к ассортиментной и финансовой информации.
Шесть слоёв от API до карточки SKU.
Шесть источников в одном агрегате — каждый со своим статусом
Архитектура заложена под полный набор: два кабинета WB, два кабинета Ozon, два аккаунта МойСклад. На каждый источник свой коннектор, свой набор секретов, свой набор сырых JSON-ответов в хранилище. Дашборд отдельной строкой показывает что подключено сейчас, что в работе, чего ещё ждём.
Когда прилетает новый ключ — добавляется в сборщик и появляется на странице как ещё один источник. Без переписывания фронта, без миграций, без даунтайма.
Hourly pull — раз в час сами ходим в API
Расписанием управляет systemd timer, без cron'а и без ручного вмешательства. В час ноль каждого часа коннектор последовательно собирает все эндпоинты доступного источника: заказы, продажи, остатки по складам, информацию о SKU. Сырые ответы складываются на диск с timestamp'ом — это аудит и страховка.
Если pull упал — systemd рестартит сервис, в логи пишется ошибка, в дашборде на чипе сверху меняется цвет «WB подключён · обновлено N мин назад» с зелёного на оранжевый. Заказчик видит проблему до того, как звонит за новыми цифрами.
KPI за 30 дней — то, на что смотрят утром в понедельник
Сверху страницы — четыре главных числа: заказы, продажи, выручка к перечислению, остатки. Под каждым — мелкий показатель «как двигается за неделю». Это первый экран и в 90% случаев единственный, на который смотрит заказчик ежедневно.
Цифры собираются из API за окно 30 дней, без xlsx-историй и подмен. Если цифра не считается из имеющихся данных — она не показывается. Лучше пусто, чем плохо.
ABC-анализ по факту, а не по плану
Классическое правило 80/20 в живой версии. Считаем долю выручки каждого SKU за 30 дней, сортируем, режем на сегменты A/B/C. На странице это три плашки: где деньги (A), где середина (B), где хвост (C).
Полезно перед закупкой и перед урезанием ассортимента — видно, какие 10 артикулов делают половину выручки и какие 30 артикулов забирают полку при минимальном вкладе.
Таблица SKU с поиском и цветом остатков
Под графиками — полная таблица всех артикулов: название, заказы и продажи за 30 дней, остаток на складе. Поиск по названию, сортировка по любой колонке, переключение WB / Ozon. Цвет остатка — три состояния: зелёный (хватит), оранжевый (меньше 30 дней), красный (ноль или критично мало).
Не ради красоты — это инструмент для решения «что закупить сейчас, что вывести из ассортимента». Без открытия пяти кабинетов.
Защита периметра: cookie-доступ и изолированные ключи
Дашборд защищён двухуровневым доступом. На входе — персональная ссылка с ключом, который выдаёт cookie на 90 дней. Без cookie страница показывает заглушку «доступ по персональной ссылке». Без cookie все API-эндпоинты возвращают 401, кроме healthcheck'а.
API-токены маркетплейсов лежат на сервере с правами 600, доступны только сервисному пользователю, не входят в git, не передаются на фронт. На каждый кабинет — отдельный файл-секрет, скомпрометирован один — остальные продолжают работу.
Шесть кабинетов. Один экран.
Свой агрегатор. Свой VPS. Свой контроль.
Аналитика, которая
не врёт и не
сидит на чужом сервере.
Заказчик платит только за пилот и за поддержку — никаких подписок на агрегаторы, никаких ежемесячных лицензий за «доступ к своим же данным». Каждый новый источник подключается коннектором и появляется на странице в течение нескольких часов.
Если завтра нужно добавить блок «Прибыль на штуку» — он добавляется. Если нужно убрать пункт — убирается. Это не SaaS-витрина с фиксированным набором виджетов, это собственный софт.
Свой дашборд
под свои данные?
Нужна аналитика маркетплейсов, своего магазина, или внутренней системы — без отдачи ключей наружу? Напишите, обсудим. Срок до пилота — 1-2 недели, в зависимости от количества источников. Перед звонком можно потыкать публичное демо — данные выдуманные, интерфейс настоящий.