Manuel utilisateur
Centre d'aide/Manuel utilisateur/Picking : vagues, tâches et PICK-STAGE

Picking : vagues, tâches et PICK-STAGE

Dernière mise à jour 2026-10-13

Libérez des vagues (manuelle ou planifiée), générez des tâches par commande et exécutez pas à pas sur mobile, avec picks partiels, sauts et shorts.

Libération des vagues#

Une vague regroupe les expéditions par merchant × filtre, les découpe par nombre de commandes et les libère en vague ; chaque expédition reçoit ensuite sa tâche de picking. Deux entrées : libération manuelle (wave/manual) et planifiée (scheduler + cron externe). Seules les expéditions commit/draft/ready ; celles verrouillées par une vague inachevée sont exclues.

  • Wave Filter : conditions [{field, operator, values[]}], opérateurs in/not_in/eq/ne/gt/lt/gte/lte (wave/filter).
  • Dispatch Setting : customer_filters [{merchant_id, filter_id}], max/min par plan, default_pick_method (order/batch/wave/wave_by_item, défaut order), is_active (wave/settings).
  • Scheduler : work_days (1=lundi…7=dimanche, défaut 1–5), time_from/time_to, step_minutes, is_active (wave/scheduler).
  • Heures limites : par merchant/transporteur, HH:MM (wave/cutoff-time).
  1. Choisissez un Client (merchant, obligatoire) + 1 ou plusieurs Dispatch Settings → Aperçu : renvoie le nombre par setting et le détail par groupe sans créer la vague.
  2. Ajustez si besoin min/max_qty_per_batch (Min ≤ Max validé).
  3. Libérer : crée la vague — wave_no = WV-YYYYMMDD-NNNN, status=released (la vague naît libérée ; pas d’état draft intermédiaire), shipment_ids contient les expéditions.
  4. Après libération, la page liste les expéditions de la vague : Create Pick Task par expédition (voir ci-dessous).
  5. Libération planifiée : un cron externe POST /api/wms/wave/scheduler/run toutes les N minutes (avec x-cron-secret). N’exécute que les schedulers dont le jour est dans work_days, l’heure dans time_from~time_to et la dernière exécution ≥ step_minutes.

Générer des tâches de picking#

  • Trois entrées : la page de la vague libérée, la sélection groupée dans la liste des commandes → Create Pick Task, ou Create Pick Task dans le détail de la commande.
  • pick_method=order : une tâche par commande. Lignes = lignes de commande × emplacements alloués par le système (zone pick d’abord ; les manquants créent des lignes à la quantité allouable, le reste en warnings).
  • Planification du parcours : chaque ligne reçoit un seq selon l’ordre de parcours ; le mobile guide emplacement par emplacement.
  • Protection anti-doublon : une commande avec une tâche inachevée ayant encore des lignes pending ne peut pas régénérer ; le restant en short peut être régénéré plus tard.
  • Après génération, le champ de tâche est réécrit sur la commande avec un lien vers le détail.

Exécution sur mobile#

Une étape = un produit × un emplacement. Chaque étape envoie quatre champs : emplacement source, LPN de palette (emplacements storage uniquement), LPN de destination (le tote cible), quantité.

  1. Scannez/saisissez l’emplacement source → Entrée : invalide → erreur en haut + saisie sélectionnée ; valide → un emplacement picking saute au to-LPN, un emplacement storage affiche d’abord le LPN de palette.
  2. Scannez/saisissez le to LPN → validé (doit être un tote assigné à la tâche) → passer à la quantité.
  3. Saisissez la quantité (chiffres uniquement) → touchez Pick pour envoyer → étape suivante ; en cas d’échec, on reste sur l’étape avec l’erreur.
  4. Pick partiel : demandé 10, prélevé 5 → enregistre 5 et ajoute automatiquement une étape de 5 en fin de file.
  5. Next : saute l’étape actuelle ; la file y reviendra plus tard.
  6. Force close (en haut à droite) : clôt un pick partiel directement ; le système solde sur les quantités réellement prélevées.
  7. Short : l’emplacement n’a pas de stock ou la marchandise est endommagée → marquer short ; la tâche peut se terminer et le reste être régénéré plus tard.

Totes cibles et PICK-STAGE#

Les totes cibles du picking appartiennent à l’emplacement PICK-STAGE (un par entrepôt, location_type=staging ; créé par le système s’il manque et masqué dans l’UI). Générez-les dans WMS → Pallets avec « Batch generate LPN » : choisissez l’entrepôt (l’actuel par défaut) + nombre N (1–200, défaut 10). Le backend génère LPN-{seq} (préfixe unifié ; les PLT- existants inchangés) avec status=building et source_type=pick. Choisissez ensuite « Generate only » ou « Generate and print ». Note : le picking cart (location_type=cart) est un emplacement mobile ; un tote est un LPN (license_plate unique par tenant) et le picking de totes comptabilise sur le location_id du chariot auquel appartient le tote. PICK-STAGE (staging) est le tampon par entrepôt ; les palettes cibles doivent lui appartenir.

États de la tâche et contrôle#

pending → in_progress (touchez Démarrer, ou automatique au premier pick ; l’expédition passe en picking) → completed (toutes les lignes picked ou short ; l’expédition passe en picked). À l’achèvement, picked_qty est réécrit sur les lignes et une vérification de réapprovisionnement est déclenchée. Contrôle : le détail de la tâche sur bureau affiche tout ce que le mobile a envoyé (emplacement source / LPN de palette / to LPN / quantité / chaque enregistrement) : c’est ici qu’on vérifie le picking ; la vérification d’emballage continue à la station d’expédition (pack-verify).

La vague naît libérée : pas de flux d’approbation draft→released. wave_no est calculé comme le max du jour +1, donc en forte concurrence il peut théoriquement se répéter ; l’appelant peut réessayer.