Остатки и дозаказ
Остатки
Единый взгляд на остатки МойСклад/Ozon/WB, резервы, доступность, отрицательные остатки и расхождения.
Статусв работе
Safetypreview / approve
UIloading · empty · error
Статус UIЕсть основа, нужны данные и доработкамодуль доступен для работы
Метрики4available · reserved · negative
Backend endpoint2typed wrapper в frontend/lib/api
Jobspendingsync/background tasks
Что есть на странице
Модуль подключён к рабочему UI или находится в активной доработке.
в работеavailablereservednegativediscrepancies
- loading state: показывать skeleton/заглушку при запросе.
- empty state: объяснять, какие данные и sync jobs нужны.
- error state: вести к API health и raw logs без секретов.
- ready/work: экран должен использовать общий apiFetch/auth слой.
Нужные API и jobs
- /api/marketplace-stocks/summarytyped wrapper в frontend/lib/api
- /api/analytics/stockstyped wrapper в frontend/lib/api
Safety guard
Опасные действия заблокированы прямым выполнением
Изменение цен, публикация карточек, массовые операции и внешние AI-вызовы должны идти через preview, approve, apply job и audit log.
1Preview
2Approve
3Queue job
4Status check
5Audit
Связанные задачи и очереди
Страница подключена к общему jobs/queues экрану, а не запускает долгие операции синхронно.
Открыть Jobs| Job | Контур | Статус | Что делает |
|---|
| moysklad.sync_products_full | catalog | scheduled | ночной full sync товаров и модификаций |
| ozon.sync_prices | prices | retry/backoff | цены, комиссии, price index |
| wb.sync_characteristics | content | backend pending | subject characteristics для книжных subjectID |
| pricing.generate_recommendations | pricing | guarded | создание рекомендаций без применения |
| ai.sync_models | ai | planned | обновление реестра моделей и budget guard |