Dashiki — аналитика селлера
Десктоп-приложение, которое собирает данные Ozon, WB и Яндекс.Маркета в одну зашифрованную базу и строит дашборды: реальная прибыль, юнит-экономика, финансы, реклама по каждому товару, воронка продаж.
Результат: единая картина по 3 маркетплейсам, точные цифры «как в ЛК» — то, что сами маркетплейсы не показывают.
Под капотом
Стек
- Electron 33 + electron-vite + React 18 + TypeScript + Zustand + ECharts + Tailwind
- Хранилище —
better-sqlite3-multiple-ciphers(SQLCipher AES-256, нативный)
Архитектура
- Data-warehouse-first: ETL тянет API → локальная зашифрованная БД → сервисы → UI. При отрисовке никаких live-запросов к API — только чтение из БД
- Реестр ETL-источников с приоритетами (HEAVINESS) и авто-синком по магазинам
Внешние API
- Ozon Seller + Ozon Performance (асинхронные отчёты), WB (Statistics / Promotion / Content / Analytics), Яндекс.Маркет Partner
Ключевые решения
- Точная реклама per-SKU через async Performance reports:
submit → poll → download ZIP → parse CSV(3 формата отчётов) - Квота-трекер под лимит Performance API 1000 отчётов/сутки (rolling 24h), переживает рестарты приложения
- Прибыль считается по cash-flow из финансовых транзакций — сходится с дашбордом 1:1
- Наследование себестоимости между Ozon/WB/Яндексом по общему артикулу (зачаток PIM)
- Data Protection Policy: БД = кэш над API, защищённые таблицы, никаких удалений данных
Инфра
- GitHub Actions по тегу
v*собирает Win + Mac → авто-релиз. Логи через winston, секреты в Electron safeStorage (DPAPI) - Боевая проверка на аккаунте MOYORY: ~17k заказов, ~79k строк отчётов WB