Кабинет селлера: остатки Ozon и Wildberries, склад, аналитика.
Слева — все артикулы с остатком на последнюю дату stock_daily или с продажами FBO в окне выгрузки.
Продажи — штуки (сумма quantity в fbo_postings).
«Дни» = остаток FBO всего ÷ (продажи за выбранный период ÷ число дней); если продаж не было — «—».
Колонка Заказ — план поставки по кластеру (в localStorage по магазину). Кнопка Выгрузить файл над кластером — Excel (.xlsx): шапка «Артикул; Наименование (необязательно); Количество», далее строки с заполненным заказом для этого кластера; имя файла = название кластера (для загрузки SheetJS нужен доступ к CDN).
В шапке: название кластера над пятью столбцами; шапка закреплена при прокрутке вниз. Клик по подписи столбца — сортировка (↑/↓).
Новый магазин: в списке магазинов пункт + Добавить магазин… — форма с Ozon Client-Id, Api-Key и slug; запись в shops.json и shop_credentials.json. После сохранения автоматически запускается первая выгрузка в фоне; при необходимости — кнопка «Выгрузить с Ozon».
Ozon: по каждому артикулу — динамика по дням из price_daily (срез при выгрузке).
Цена продажи — price; цена для клиента — customer_price; СПП — discount_percent×100 (метод prices/details).
Если API-ключ без доступа к prices/details, используется v5/product/info/prices и оценка цены для клиента по индексу цен (приближённо).
История накапливается при каждой выгрузке (cron или «Выгрузить с Ozon»).
Wildberries: динамика по дням из wb_price_daily.
Цена продажи — price; цена для клиента — discountedPrice;
СПП в таблице — discount% из Prices API (скидка продавца).
История: bootstrap_wb_from_jarvise.py (nightly Jarvise) или sync_wb_prices.py.
Wildberries: матрица по регионам или по складам — переключатель «Колонки» в панели ниже.
В режиме складов над названием склада показывается регион. Источник wildberries.db.
Ozon: Seller API — остатки, заказы, аналитика продаж; Performance — отдельные ключи только для рекламы. Wildberries: один API-токен на матрицу, аналитику и рекламу (в токене — права Promotion для рекламы). Пустые поля при сохранении не затирают уже сохранённые значения. Кнопка Проверить API — лёгкий запрос к маркетплейсу (результат кэшируется).
Загрузка…
Загрузка…
Ozon: орг/рекл — funnel_daily + реклама. WB: wb_funnel_daily, ДРР — реклама.
Матрица: строки — артикулы, столбцы — дни или недели (слева направо по календарю; неделя — пн–вс).
Ozon (Seller API): fbo_postings / fbs_postings. Wildberries (один api_token): wb_sales_events;
сумма WB — qty × цена из wb_price_daily. Пустая ячейка — нет продаж в этот день.
Синяя заливка — больше продаж в строке за день; оранжевая рамка — реклама (ad_daily);
↓ / ↑ слева — цена для клиента снизилась / выросла (наведите — новая цена).
Клик по заголовку столбца — сортировка строк; внизу — сумма по каждому дню.
По кампаниям — как в Telegram: каждая РК отдельно, строки по дням (расход, клики, CPC, CTR, CR, корзины, заказы) и итог.
Матрица — сводная таблица кампания×день по одной метрике.
Ozon: ключи Performance в «Подключениях»; данные из ad_daily (после «Выгрузить рекламу»).
Последний прогон по каждому магазину из sync_history.jsonl и wb_sync_history.jsonl.
Ночной cron: 05:20 UTC (08:20 МСК) — scripts/sync_saas_daily.sh; бэкап — 06:10 UTC.
Загрузка…
Сводный P&L по неделям или за месяц целиком: выручка, расходы маркетплейса (комиссия, логистика, хранение, реклама и др. из finance/transaction, без дубля рекламы Performance), себестоимость по артикулам с датой «действует с», ручные статьи. После синка нажмите «Пересчитать из выгрузок». Ozon: выручка из отправлений, расходы MP из finance/transaction. WB: Finance API (wb_finance_detail: выручка, комиссия, логистика, хранение) + реклама; без finance — fallback wb_funnel_daily. Синк: sync_wb_finance.py (~1 запрос/мин к Finance API).
Выберите месяц и нажмите «Обновить отчёт».
—
—
Команда, дедлайны и история действий по артикулам — рядом с продажами по дням.
Ozon и WB отдельно: «Поставить на МП» — сколько отправить на FBO этого маркетплейса. «Изготовить» — сумма по каналам (свой склад пока не вычитается).
Красные флаги по всем магазинам: устаревшие остатки, ошибки синка, проблемы выгрузок.
Ozon: stock_daily, FBO/FBS, price_daily, склады. Wildberries: wb_stock_daily, wb_sales_events, wb_price_daily. Только чтение SQLite.
Загрузка…
GET /api/data-health—
workers/sync_wb_shop.py --shop-id … --days-back 7 или «Догнать 7 дней».scripts/sync_saas_daily.sh.Вход по email и паролю. Владелец и admin могут приглашать коллег и выдавать доступ к магазинам.
Загрузка…
Резервные копии контура marketplace-saas и история выгрузок с Ozon (воркеры sync_all). Откат с сервера: restore_saas.sh.
Загрузка…
Загрузка…
Два файла на сервере (ежедневный бэкап): MEMORY.md — хронология и план; PORTAL_UI.md — правила отображения матрицы и UI (для вас и для агента в Cursor).