1
📋
Generate pick listAggregate orders by aisle and shelf location
2
📦
Packing verificationScan barcode — verify item quantity & weight
3
🚚
Assign optimal courierMatch by package weight, zone, and service tier
4
🖨️
Print dispatch manifestGenerate airway bill labels and handover summary
import json, csv
from typing import List, Dict
ORDERS = [
{"id":"ORD-5001","items":3,"weight":2.5,"zone":"A","courier":"J&T"},
{"id":"ORD-5002","items":1,"weight":0.8,"zone":"B","courier":"PosLaju"},
{"id":"ORD-5003","items":5,"weight":4.2,"zone":"C","courier":"DHL"},
{"id":"ORD-5004","items":2,"weight":1.5,"zone":"A","courier":"GDEX"},
]
def generate_pick_list(orders: List[Dict]) -> List[Dict]:
return sorted(orders, key=lambda o: o["zone"])
def assign_courier(order: Dict) -> str:
if order["weight"] < 1.0: return "PosLaju"
if order["weight"] < 3.0 and order["zone"] in ("A","B"): return "J&T"
if order["weight"] < 5.0: return "DHL"
return "GDEX"
def print_manifest(pick_list: List[Dict]) -> None:
for o in pick_list:
print(f"{o['id']} → {o['items']} items, {o['weight']}kg → {o['courier']}")
pick_list = generate_pick_list(ORDERS)
manifest = [assign_courier(o) for o in pick_list]
print_manifest(pick_list)
print(json.dumps({"total_orders": len(pick_list), "total_weight": sum(o["weight"] for o in pick_list)}))