Сценарии сборщика

Методы и структуры находятся в справочнике, группа picker. Вход выполняется через /api/picker/auth/login, обновление токенов — через /api/picker/auth/refresh. Покупательский JWT не предоставляет права сборщика.

Рабочая сессия

  1. После входа прочитайте /api/picker/auth/me и /api/picker/session/active. Ответ 204 означает отсутствие активной сессии.
  2. Получите очередь /api/picker/orders и начните выбранный заказ командой /api/picker/orders/{order_id}/start.
  3. Выполняйте сканирование, подтверждение количества или веса, замену и уточнения через соответствующие команды API. Каждый ответ применяйте как серверный снимок.
  4. Завершайте сборку явной командой /finish после готовности всех позиций. Состояние ready_to_finish ещё не означает completed.

Активная сессия задаёт магазин товаров и остатков. Не переносите позиции между магазинами на основании локальных настроек. История сборки доступна через /api/picker/history/; детали завершённой сессии отражают состав на момент завершения.

Идемпотентность и конфликты

Изменяющие команды требуют Idempotency-Key с UUID. Один ключ обозначает одно действие с неизменным телом и сохраняется при timeout, повторе и перезапуске клиента. Ответ операции может включать session; используйте её для восстановления экрана. Несовпадение штрихкода может прийти как HTTP 200 со статусом mismatch: проверяйте бизнес-результат, а не только HTTP-код.

При конфликте занятого заказа обновите очередь и активную сессию. При ошибке готовности завершения покажите незакрытые позиции. Сетевой timeout, 404 или 410 не подтверждает завершение либо отмену действия.

Отмена

POST /api/picker/orders/{order_id}/cancel — отдельная команда сборщика с причиной по схеме запроса. Сохраняйте ключ до получения определённого результата и после восстановления связи перечитывайте сессию. Не смешивайте её с покупательской отменой.

Если сервер сообщил order_cancelled, примените актуальную сессию, обновите очередь и активную сборку. Подтверждение прочтения отмены отправляется через /api/picker/orders/{order_id}/cancelled/ack; оно возвращает 204 и не является новой отменой заказа.


Версия: 8541d2c2730bee129f6fe6ea94c29878721733e8 · PROD. Markdown