Skip to content

QR payloads and trip states

Operational how-tos: Print rider badge · Print warehouse QR · Run kiosk.

QR payload formats

QR typePayload patternPrinted fromScanned when
Rider badgeailaaj:rider:<identify_hash>Admin → Operations → Shipping Methods (Riders tab) → Rider QRKiosk identity + re-entry
Warehouse returnailaaj:wh:<store_warehouse.uuid>Admin → Operations → Shipping Methods (Riders tab) → Warehouse Return QREnd trip at dock
Picklist bagPL-… barcode (pick list number)Picklist labelClaim step only

Rider hash rules

  • 32-character hex identify_hash on tenant_riders.
  • Regenerating invalidates previous badges.
  • Manual kiosk entry accepts bare hash without ailaaj:rider: prefix.

Warehouse ID rules

  • UUID must match a store_warehouse row assigned to the tenant.
  • End-trip scan must align with trip picklist warehouses.

Kiosk API steps (public /api/dispatch/*)

StepEndpointSuccess outcome
IdentifyPOST /identifyRider + nextStep (select_picklists or active_trip_guard)
Rack loadGET /packed-picklists?scan=…Available + taken tiles for assigned warehouses
Start tripPOST /start-tripTrip active, picklists dispatched
End tripPOST /end-tripTrip completed, picklists delivered

Trip states (board + kiosk)

StateMeaningVisible on board
Packed on rackAwaiting claimOn the rack KPI / tab
Active tripStarted, not endedOut for delivery
CompletedWarehouse scan closedReturned / history (date-filtered)

Picklist statuses: packeddispatched (start) → delivered (end).

Delivery fields written on end trip

FieldTypical value
delivered_to_nameHanded to Ward 3 · Bed 12
actual_delivery_dateFull timestamp at warehouse scan

Ward text is derived from order metadata.hospital_qr or shipping_address.