The operator picks multiple customer orders in one job using a picking trolley.
After loading the job they scan the trolley, configure box counts (S/M/L), then assign one HU and one trolley position per job_customer.
Picking runs by storage location: scan storage, optionally verify inventory, confirm quantity, and scan the target position on the trolley.
When several articles share a location, Part_Quantity Confirm handles the next position without re-scanning storage.
| Data format | CSV or API results[] with job_customer per line |
|---|---|
| Setup phase | Trolley → Set HU counts → Assign HU + position per order |
| Pick loop | Storage → Inventory (optional) → Quantity Confirm → Part_Quantity … |
| LightTag | LightTags are optional and not required — the PoV works the same way with or without them. |
| Multi-order | Multiple job_customer values in one job · scan trolly_place_ID per order |
| PoV example data | Storage 12.0.3 · Cola (ORD-A) then 14.2.1 · Fanta (ORD-B) · POS-1 / POS-2 |
check.
At the same storage location, after Quantity Confirm the flow goes directly to Part_Quantity Confirm (no extra storage scan).
What the operator does on the watch — each step shows the screen, required action, and where the flow goes next.
Job loads via get-job. Pick lines for multiple orders appear in results[].
workflow y=40 · 18pt SemiBold · error y=70
Scan trolley barcode, set box counts (S/M/L), assign HU per customer, scan trolley position for each order.
Loop HU ID → Place ID until all job_customer positions set. OPTION No Trolley → Completion.
scan_trolley y=35 · SCAN_NOW_TOUCH y=90
Navigate to location. Scan storage_scan at shelf 12.0.3. Article Cola for order ORD-A.
scan_label y=14 · storage y=55 auto · article y=118 auto
Scan trolley position barcode to confirm 5× Cola into POS-1 for ORD-A.
More articles at 12.0.3 → goes directly to Part_Quantity (no re-scan storage).
article y=70 auto · quantity y=156 · position POS-1
Second line at same location for ORD-B: scan POS-2 for 6× Cola (ART-1001). No storage re-scan required.
article y=70 auto · qty 6 · position POS-2 · ORD-B
Prepare Storage opens the next open pick line — new article and often a new storage location (e.g. Fanta at 14.2.1). New location → Storage Step. Same location → Part_Quantity Confirm.
stock ≥ 1storage y=55 auto · Prepare Storage → next open line
All lines have check. Press Save → api.workflow.done() posts results for all orders.
job y=30 · success_tick y=60 · save 180×60 y=135
flowchart TD
Load[get-job / Load Step] -->|results| Trolly[Trolly Step]
Load -->|empty| NoJob[No open orders]
Trolly --> SetHU[Set HU Step
S/M/L counts]
SetHU -->|Done| HUID[HU ID Step
scan HU per order]
HUID --> PlaceID[Trolly Place ID
scan position]
PlaceID --> CheckPlace{All positions set?}
CheckPlace -->|no| HUID
CheckPlace -->|yes| Prepare[Prepare Storage]
Prepare -->|open lines| Storage[Storage Step
scan storage]
Prepare -->|all check| Done[Completion · Save]
Storage -->|stock check| Inv[Inventory Step]
Storage -->|match| Qty[Quantity Confirm
scan position]
Inv -->|Yes| Qty
Inv -->|No| InvCount[Inventory Count]
InvCount --> Qty
Qty -->|more at location| PartQty[Part_Quantity Confirm]
Qty -->|last| Prepare
PartQty -->|more| PartQty
PartQty -->|last| Prepare
style Trolly fill:#e8faf3,stroke:#4ED49B
style Storage fill:#e6f7fc,stroke:#0090BD
style Qty fill:#e3f2fd,stroke:#1565c0
style Done fill:#e8faf3,stroke:#4ED49B
| Field | Meaning |
|---|---|
job_customer / orderId | Customer order mapping (multiple per job) |
trolly_ID / HU_ID / trolly_place_ID | Trolley, handling unit, position |
storage / storage_scan | Storage location and scan barcode |
required_quantity / stock | Pick quantity and on-hand stock |
scannedArticles / check | Picked quantity and completion timestamp |
note | Shortage or skip reason |
get-job (response)
{
"name": "KO-2026-005678",
"results": [{
"lineId": "501",
"job_customer": "ORD-A",
"storage": "12.0.3",
"storage_scan": "LT-12-0-3",
"article_number": "ART-1001",
"article_name": "Cola",
"required_quantity": 5,
"stock": 48
}, {
"lineId": "502",
"job_customer": "ORD-B",
"storage": "12.0.3",
"storage_scan": "LT-12-0-3",
"article_number": "ART-1001",
"article_name": "Cola",
"required_quantity": 6,
"stock": 22
}, {
"lineId": "503",
"job_customer": "ORD-B",
"storage": "14.2.1",
"storage_scan": "LT-14-2-1",
"article_number": "ART-1002",
"article_name": "Fanta",
"required_quantity": 4,
"stock": 15
}]
}
complete-job (request)
{
"name": "KO-2026-005678",
"results": [{
"lineId": "501",
"job_customer": "ORD-A",
"storage": "12.0.3",
"article_number": "ART-1001",
"required_quantity": 5,
"scannedArticles": 5,
"trolly_place_ID": "POS-1",
"check": "2026-06-24T14:32:00Z",
"note": ""
}]
}