Перейти к основному содержимому

Автообновление данных

Модуль ТЗ: 5.1 · Оцифровка продаж и финансовый учёт

Что это​

«Оптима» сама загружает свежие данные из Wildberries по всем подключённым кабинетам: заказы, продажи, возвраты и отчёт о реализации (комиссия, логистика, штрафы и другие удержания). Плановая оцифровка заказов и продаж идёт один раз в сутки — в 00:00 по Москве, каждый день без исключений. В течение дня данные обновляются только вручную — кнопкой «Импортировать данные».

Где найти​

Отдельной настройки нет. Состояние обновления видно в «Оцифровке» (/app/wb/<кабинет>/digitization) под карточками KPI:

  • «Данные от …» — когда по кабинету последний раз появились новые данные;
  • «следующая оцифровка в 00:00 МСК» — время ближайшего планового прогона;
  • «Автоматически — ежедневно в 00:00 МСК, в остальное время — вручную.»;
  • «Ежедневная оцифровка ещё не проходила» — для только что подключённого кабинета.

Пока идёт оцифровка, в блоке «Импорт из Wildberries» крутится значок обновления и виден таймер: «Ежедневная оцифровка идёт · 0:12:34» для плановой, «Импорт идёт · …» — для ручной.

Когда ежедневная оцифровка кабинета закончится, владельцу кабинета придёт уведомление «Ежедневная оцифровка: готово» (или «…: ошибка», если Wildberries так и не отдал данные). Если Wildberries ограничивает частоту запросов, оцифровка продолжает с места остановки, а не начинает заново.

Расписание​

Что загружаетсяКогдаЗа какой периодЗачем
Заказы, продажи, возвратыКаждый день в 00:00 МСКПоследние 7 днейЕжедневная оцифровка: новые данные за сутки плюс правки Wildberries задним числом
Отчёт о реализацииКаждый день в 05:00 МСКПоследние 14 днейДеньги: выручка, удержания, прибыль

Отчёт о реализации Wildberries формирует еженедельно, поэтому денежные данные (прибыль, удержания, бухгалтерия) появляются с задержкой относительно продаж.

Как пользоваться​

Достаточно подключить кабинет и дождаться успешной проверки API-ключа (см. «Кабинеты Wildberries») — с ближайшей полуночи кабинет попадёт в расписание.

Чтобы получить данные раньше (например, сразу после подключения или днём), запустите импорт вручную (см. «Импорт данных из Wildberries»).

  • Пока идёт ежедневная оцифровка, ручной импорт заблокирован: кнопка неактивна, на ней написано «Идёт оцифровка…», рядом — подсказка и таймер. Кнопка станет доступна сама, как только оцифровка закончится.
  • Пока идёт ваш ручной импорт, второй запустить нельзя — кнопка тоже неактивна.

Так ручной и плановый прогоны никогда не накладываются друг на друга.

Кнопка «Обновить» в шапке разделов загрузку из Wildberries не запускает — она только перечитывает уже загруженные данные.

Ограничения​

  • Только активные кабинеты. Обновляются кабинеты с проверенным ключом. Если ключ отозван или не прошёл проверку, кабинет пропускается до обновления ключа.
  • Сбой по одному кабинету не влияет на другие — каждый кабинет загружается отдельно; при сбое делается до трёх попыток подряд, дальше кабинет догонит на следующей ежедневной оцифровке или ручным импортом.
  • Ежедневная оцифровка идёт без исключений. Если в полночь по кабинету ещё идёт ваш ручной импорт, оцифровка не отменяется — она начнётся сразу после него.
  • Зависшая оцифровка не блокирует работу. Если плановый прогон по кабинету не завершился за 20 часов, он считается прерванным: таймер пропадает, ручной импорт снова доступен, а следующая полночь запустит оцифровку заново.
  • Отметка «Данные от …» не двигается, если прогон не нашёл ничего нового: она показывает время последнего изменения данных, а не последней проверки.
  • Повторная загрузка безопасна: дубликаты не создаются, уточнённые суммы обновляются.

Связанные страницы​

Для интеграторов​

  • Заказы/продажи — очередь digitization-sync, одно расписание: cron 0 0 * * * (Europe/Moscow), окно 7 дней, полный дренаж окна с продвижением курсоров wb_sync_cursors. Прежний 30-минутный ярус increment упразднён; env DIGITIZATION_INCREMENT_INTERVAL_MS / RNP_SYNC_INTERVAL_MS больше не читаются.
  • Плановая джоба кабинета старше 20 часов считается мёртвой: завершается без похода в WB, не учитывается в признаках импорта и вычищается следующим фан-аутом.
  • POST /digitization/import и POST /digitization/financial-report/import отвечают 409 Conflict, пока по кабинету идёт плановая оцифровка.
  • Отчёт о реализации — очередь rnp-finance-sync, cron 0 5 * * * (Europe/Moscow), окно 14 дней.
  • GET /digitization/freshness?wbAccountId= — dataUpdatedAt, nextUpdateAt (ближайшая 00:00 МСК), updateIntervalMinutes (1440), importInProgress, scheduledImportInProgress, manualImportAllowed (блокировать кнопку импорта по этому полю), importStartedAt, importKind.
  • После загрузки кеш читающих эндпоинтов оцифровки по кабинету сбрасывается (TTL кеша — 60 с).
  • Подробности — backend/docs/digitization-feed-sync.md. ADR: 0042, 0057.