The operator loads a pick job via get-job, scans a picking box, then confirms each line by scanning the storage location barcode (storage_scan) — not the article.
The screen shows storage, quantity, and article name for guidance. Multi-quantity lines use quantity confirmation; optional inventory verifies stock after picking. Completed jobs post via complete-job.
| Data format | CSV or API job.results[] with storage, article, quantities, stock |
|---|---|
| Main scan loop | Picking box → scan storage → quantity confirm → optional inventory → next line |
| LightTag | LightTags are optional and not required — the PoV works the same way with or without them. |
| Languages | DE / EN via translationKeys |
| PoV example data | Storage 12.0.3 · scan LT-12-0-3 · Article Cola · ART-1001 |
storage_scan. Article is displayed but not scanned at Storage Step. Wrong location → negative feedback.
What the operator does on the watch — each step shows the screen, required action, and where the flow goes next.
Pick job loads via get-job. Lines with storage, article, and quantity appear in results[].
workflow y=40 · 18pt SemiBold · error y=70
Scan picking container barcode. Value is stored on all pick lines.
order y=28 · scan_box y=68 · SCAN_NOW_TOUCH y=98
Navigate to shelf 12.0.3. Article Cola (ART-1001) is shown for guidance — scan location LT-12-0-3, not the article.
storage y=30 auto · quantity y=66 · article_info y=108 auto · scan LT-12-0-3
When required quantity > 1: keep scanning LT-12-0-3 or tap X / Y TAKEN. Double-trigger confirms short pick.
OPTION: skip article, skip order, shortage (numpad).
got_all 170×35 y=63 · article_info y=108 auto
When stock is set (e.g. 48): ask “Qty after pick?” after picking 3× Cola → expected 45.
stock_after y=58 · yes / no y=143
All lines have check. Press Save → api.workflow.done() posts complete-job.
job y=30 · success_tick y=60 · save 180×60 y=135
flowchart TD
Load[get-job / Load Step] -->|results| PBox[Picking Box Step
scan container]
Load -->|empty| NoJob[No open orders]
PBox -->|container scan| Storage[Storage Step
scan storage_scan]
PBox -->|no picking box| Storage
Storage -->|storage scan qty>1| Qty[Quantity Confirm Step]
Storage -->|storage scan qty=1 + stock| Inv[Inventory Step]
Storage -->|storage scan qty=1| Next[Next line or Completion]
Qty -->|all taken| Next
Inv -->|YES| Next
Inv -->|NO| Count[Inventory Count Step]
Count --> Next
Next -->|open lines| Storage
Next -->|all check set| Done[Completion / api.workflow.done]
style Storage fill:#e6f7fc,stroke:#0090BD
style PBox fill:#e8faf3,stroke:#4ED49B
style Done fill:#e8faf3,stroke:#4ED49B
| Field | Meaning |
|---|---|
storage / storage_scan | Location label and barcode |
article_number / article_name | Article to pick (display only at storage scan) |
required_quantity | Target quantity |
stock | On-hand qty (empty = skip inventory step) |
scannedArticles / check | Picked quantity and completion timestamp |
get-job (response)
{
"name": "KO-2026-005678",
"results": [{
"lineId": "501",
"storage": "12.0.3",
"storage_scan": "LT-12-0-3",
"article_number": "ART-1001",
"article_name": "Cola",
"required_quantity": 3,
"stock": 48
}]
}
complete-job (request)
{
"name": "KO-2026-005678",
"results": [{
"lineId": "501",
"storage": "12.0.3",
"article_number": "ART-1001",
"required_quantity": 3,
"scannedArticles": 3,
"check": "2026-06-24T14:32:00Z",
"note": ""
}]
}