CSV Multi Order Multi

Standard PoV · Multi-order trolley picking · HU & position assignment

Workflow 6

What this workflow does

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 formatCSV or API results[] with job_customer per line
Setup phaseTrolley → Set HU counts → Assign HU + position per order
Pick loopStorage → Inventory (optional) → Quantity Confirm → Part_Quantity …
LightTagLightTags are optional and not required — the PoV works the same way with or without them.
Multi-orderMultiple job_customer values in one job · scan trolly_place_ID per order
PoV example dataStorage 12.0.3 · Cola (ORD-A) then 14.2.1 · Fanta (ORD-B) · POS-1 / POS-2

Typical scan sequence

Trolley HU + POS per order Storage 12.0.3 Scan POS-1 Next article / location …
Prepare Storage routes to the first open line or Completion when every line has check. At the same storage location, after Quantity Confirm the flow goes directly to Part_Quantity Confirm (no extra storage scan).

Operator journey

What the operator does on the watch — each step shows the screen, required action, and where the flow goes next.

1
Load Step Automatic

Job loads via get-job. Pick lines for multiple orders appear in results[].

  • Results present → Trolly Step
  • Empty job → NoOpenOrders (auto-reload after 25 s)
ORD-AORD-B4 lines
Load Step
Loading Data

workflow y=40 · 18pt SemiBold · error y=70

↓ Trolly Step
2
Trolley & HU setup Scan

Scan trolley barcode, set box counts (S/M/L), assign HU per customer, scan trolley position for each order.

Scan trolley Done (box counts) Scan HU + POS

Loop HU ID → Place ID until all job_customer positions set. OPTION No Trolley → Completion.

Trolly Step
OPTION
Scan Picking Trolley

scan_trolley y=35 · SCAN_NOW_TOUCH y=90

↓ Prepare Storage → first open line
3
Storage Step — ORD-A Scan storage

Navigate to location. Scan storage_scan at shelf 12.0.3. Article Cola for order ORD-A.

12.0.3LT-12-0-3Colaqty 5ORD-A
Scan location Wrong → beep
Storage Step
OPTION
Scan
Storage
12.0.3
Article Info
Cola

scan_label y=14 · storage y=55 auto · article y=118 auto

↓ Inventory (if stock) or Quantity Confirm
4
Quantity Confirm — POS-1 Scan position

Scan trolley position barcode to confirm 5× Cola into POS-1 for ORD-A.

Scan POS-1 Sets check

More articles at 12.0.3 → goes directly to Part_Quantity (no re-scan storage).

Quantity Confirm Step
OPTION
Cola
Quantity
5
Scan Position
POS-1

article y=70 auto · quantity y=156 · position POS-1

↓ Part_Quantity Confirm (2nd line, same location)
5
Part_Quantity — POS-2 (ORD-B) Scan position

Second line at same location for ORD-B: scan POS-2 for 6× Cola (ART-1001). No storage re-scan required.

12.0.3ART-1001Colaqty 6POS-2ORD-B
Scan POS-2 Sets check
Part_Quantity Confirm Step
OPTION
Cola
Quantity
6
Scan Position
POS-2

article y=70 auto · qty 6 · position POS-2 · ORD-B

↓ Prepare Storage (next location or done)
6
Pick loop continues Repeat

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.

14.2.1FantaORD-B
  • Optional inventory check when stock ≥ 1
  • Skip article / skip order via OPTION menu
Storage Step (next line)
OPTION
Scan
Storage
14.2.1
Article Info
Fanta

storage y=55 auto · Prepare Storage → next open line

↓ Storage or Part_Quantity until all lines checked
7
Completion Step Save

All lines have check. Press Saveapi.workflow.done() posts results for all orders.

Save complete-job
Completion Step
Job Done
Save

job y=30 · success_tick y=60 · save 180×60 y=135

✓ Multi-order job finished

Flow diagram

Technical overview
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

Key screens

Trolly Step
OPTION
Scan Picking Trolley
HU ID Step
OPTION
Assign HUs
Scan HU
POS 1
Storage Step
OPTION
Scan
Storage
12.0.3
Article Info
Cola
Quantity Confirm Step
OPTION
Cola
Quantity
5
Scan Position
POS-1

Options & special cases

OPTION menu branches

REST API

Pattern: get-job → work → complete-job

FieldMeaning
job_customer / orderIdCustomer order mapping (multiple per job)
trolly_ID / HU_ID / trolly_place_IDTrolley, handling unit, position
storage / storage_scanStorage location and scan barcode
required_quantity / stockPick quantity and on-hand stock
scannedArticles / checkPicked quantity and completion timestamp
noteShortage 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": ""
  }]
}