Кейс автоматизации
Отчёты 66 кабинетов Ozon и Wildberries собираются в таблицы сами
Клиент: Компания, которая ведёт финансовую отчётность для продавцов на маркетплейсах. С системой работают финансовый директор заказчика и сотрудники.
Задача / Боль
Данные для отчётности приходится брать из кабинетов десятков продавцов на Ozon и Wildberries: финансовые детализации, начисления, заказы, остатки, реклама. Каждый кабинет — свой ключ, свой набор отчётов, свои сроки.
Маркетплейсы часто меняют правила выгрузки: отключают отчёты, переименовывают колонки, вводят ограничения. Вручную столько не выгрузить, а сломанную выгрузку замечают не сразу.
Решение
Я сделал сервис, который по расписанию забирает 29 видов отчётов из API Ozon и Wildberries, приводит данные к одному виду и хранит их в базе сервиса. Оттуда они раскладываются по Google Таблицам на диске заказчика: папка на каждого продавца, файл на каждый отчёт. Когда файл подходит к лимиту Google в 10 миллионов ячеек, сервис сам заводит новый.
Быстрые и долгие отчёты идут раздельно, чтобы долгие не задерживали остальные. Данные сначала сохраняются в базе сервиса, потом попадают в таблицу. Если таблица недоступна, сервис повторяет запись каждые пять минут. Отчёт начислений Ozon собирается из трёх методов, и каждый прогон сверяет сумму строк с суммой из API.
В личном кабинете заказчик видит всех продавцов, статусы их ключей, запускает отчёт за нужный период вручную и переходит в таблицы. Раз в сутки сервис проверяет ключи всех продавцов: жив ли ключ, когда истекает, хватает ли у ключа прав. Проблема видна полосой над списком до того, как упадут отчёты.
AI в этом сервисе нет: это обмен данными между системами и своя база. Модель здесь ничего бы не улучшила, а стоила бы денег каждый месяц.
Что было сложно. Маркетплейсы отключают отчёты и переименовывают колонки, иногда без единой ошибки. Однажды Ozon переименовал колонки в отчёте: сервис показывал, что всё в порядке, а цены шесть дней выгружались пустыми у всех продавцов. С тех пор сервис проверяет, что поля заполнены, и отметке «выгрузка прошла» больше не верит. Когда Ozon отключил выгрузку начислений, я за три дня собрал отчёт из трёх новых. Рекламу Ozon отдаёт порциями по десять кампаний, на каждую уходит около девяти минут: у продавца с двумя тысячами кампаний отчёт за сутки не собрать, и сервис сразу останавливает такой отчёт и показывает причину.
Технологии
- Python
- FastAPI
- PostgreSQL
- Celery
- Redis
- React
- Google Sheets API
- Google Drive API
- API Ozon Seller и Performance
- API Wildberries
- Docker
Результат
-
Охват: 66 кабинетов продавцов, 29 видов отчётов, более 1 600 таблиц на диске заказчика.
-
Объём: Около 1 070 выгрузок в сутки, все по расписанию; 96–97% проходят успешно. Остальные 30–40 упираются в сбои маркетплейсов, истёкшие ключи и отчёты, недоступные на базовом токене: они видны в кабинете и запускаются заново после исправления причины.
-
Контроль: Ключи всех продавцов проверяются раз в сутки: проблема видна в кабинете до того, как упадут отчёты.
-
Изменения API: С февраля по сентябрь 2026 — 38 инцидентов и доработок, включая изменения API маркетплейсов. Отключённую выгрузку начислений Ozon пересобрал из трёх новых за три дня.
Похожая задача в вашем бизнесе?
Опишите процесс — отвечу письменно в течение 24 часов, есть ли что автоматизировать.
Обсудить задачу