1SELLER · Кейсбук 2026 Кейс веб-разработки

Кейс разработки

Десктоп-платформа сквозной аналитики и финансов для продавцов маркетплейсов Ozon, Wildberries и Яндекс.Маркета

О проекте

Dashiki — продукт группы 1SELLER, который собирает данные трёх маркетплейсов в единое зашифрованное хранилище и считает реальную прибыль продавца «до копейки». В боевой эксплуатации на аккаунте продавца: порядка 17 000 заказов и 79 000 строк финансовых отчётов. Готовится к выпуску как платный SaaS для селлеров.

1. Задача

Продавцу на маркетплейсах нужен инструмент, который закрывает весь цикл управленческого учёта — то, чего нет в личных кабинетах самих площадок:

Готовых решений под эту задачу нет: кабинеты площадок не сводят данные между маркетплейсами и не показывают честную прибыль, а сторонние сервисы «размазывают» цифры оценками и не совпадают с реальными деньгами. Требование заказчика — только точные цифры, ровно как в ЛК. Платформа разрабатывалась с нуля под этот принцип.

2. Архитектура решения

Dashiki построен как десктопное приложение по принципу data-warehouse-first: данные сначала загружаются в локальную зашифрованную базу и только потом визуализируются. При отрисовке интерфейс не обращается к внешним API — это даёт скорость, работу офлайн и защиту от лимитов площадок.

ПараметрЗначение
ПлатформаElectron 33 + electron-vite — десктоп для Windows и macOS
FrontendReact 18 + TypeScript + Zustand + ECharts + Tailwind
ХранилищеSQLite через better-sqlite3-multiple-ciphers (SQLCipher, шифрование AES-256)
ИнтеграцииOzon Seller API, Ozon Performance API, Wildberries (Statistics / Promotion / Content / Analytics), Яндекс.Маркет Partner API
ОбработкаСобственный ETL-движок: реестр источников с приоритетами загрузки и авто-синком
Сборка / релизGitHub Actions по тегу — авто-сборка под Windows и macOS
БезопасностьКлючи API в Electron safeStorage (DPAPI на Windows), логирование winston

2.1. Поток данных

2.2. Сохранность данных и квоты площадок

Локальная база — это кэш над API площадок, у которых жёсткие лимиты (например, Ozon Performance — 1000 отчётов в сутки в скользящем окне 24 часа). Чтобы не упираться в лимит и не терять историю, введён квота-трекер, переживающий перезапуски приложения, а данные защищены политикой Data Protection: из защищённых таблиц ничего не удаляется. Потеря кэша означала бы простой бизнеса — площадки не отдают историю повторно.

3. Главная инженерная сложность

Сложность не в загрузке данных, а в том, чтобы посчитать прибыль ровно как в реальном денежном потоке и разложить рекламу по каждому товару — притом что площадки отдают эти данные по-разному и с ограничениями.

МаркетплейсОсобенность данныхРешение
OzonРеклама per-SKU доступна только через асинхронные отчёты Performance APIЦикл submit → poll → download ZIP → parse CSV (3 формата) + квота-трекер
Все площадкиПрибыль по тарифам не сходится с реальными деньгамиПрибыль из фактического кэш-флоу по финансовым транзакциям — сходится с дашбордом 1:1
WildberriesЧисла строками с запятой, «мёртвые» склады, удержания ≠ штрафыНормализация чисел + разнесение удержаний (промо / логистика / хранение / штрафы)
Яндекс.МаркетНе заполнена себестоимость товараНаследование себестоимости с Ozon/WB по общему артикулу (зачаток PIM)

Результат автоматизации

Раньше свод по трём маркетплейсам и расчёт реальной прибыли делались вручную в Excel и не сходились с деньгами на счёте. Теперь это автоматический ETL и точные цифры «как в ЛК» — проверено на боевом аккаунте продавца (≈17 000 заказов, ≈79 000 строк финансовых отчётов).

4. Эффект для бизнеса

5. Технологический стек — кратко

ПараметрЗначение
ПлатформаElectron 33 (Windows / macOS)
FrontendReact 18 + TypeScript + ECharts + Tailwind
ХранилищеSQLite + SQLCipher (AES-256)
ИнтеграцииOzon Seller / Performance, Wildberries, Яндекс.Маркет
Обработка данныхСобственный ETL-движок (Node.js / TypeScript)
Сборка и релизGitHub Actions, релизы по тегу
БезопасностьElectron safeStorage (DPAPI), логирование winston

Кейс подготовлен на основе технической архитектуры платформы Dashiki, разработанной группой 1SELLER. Содержание описывает инженерное решение и организацию обработки данных; коммерческие показатели и данные продавцов не публикуются.