Placement 3D automatique : les nouveaux emplacements apparaissent d’eux-mêmes
Activez le placement automatique dans les réglages de l’entrepôt et chaque nouvel emplacement codé au standard obtient sa position 3D calculée à partir du code, sans placement manuel. Les codes non conformes sont signalés à corriger, sans blocage.
Les emplacements sans coordonnées 3D sont invisibles dans l’entrepôt 3D. Avant le placement automatique, chaque nouvel emplacement devait être placé à la main — la même douleur que les 9 000+ emplacements de l’entrepôt de démo placés manuellement. Le placement automatique supprime cette tâche : le système lit le code, décode l’allée/la rangée/la travée/le niveau, calcule la position 3D et écrit l’enregistrement. Si le code ne suit pas le standard de l’entrepôt, le système le signale au lieu de deviner.

Fonctionnement#
Deux points de déclenchement#
- Créer un emplacement : après un POST /api/wms/locations réussi, si l’emplacement n’a pas de coordonnées 3D et que le placement auto est actif, le système génère la position en arrière-plan. Tolérant aux pannes : une erreur ne bloque jamais la création.
- Placement en masse : POST /api/wms/locations/auto-layout avec l’id de l’entrepôt parcourt tous les emplacements sans coordonnées et les place d’un coup. La réponse indique combien ont été placés (laid_out) et liste ceux ignorés (skipped_non_standard, skipped_virtual).
Configurez-le dans les réglages de l’entrepôt#
Les réglages de l’entrepôt ont une carte « 3D Auto Layout » : pas d’interrupteur principal — laisser le motif de code vide signifie que le placement automatique est désactivé. Renseignez le motif, puis les champs ci-dessous. Un aperçu en direct montre le résultat d’analyse de tout code saisi — s’il est standard et quelle allée/rangée/travée/niveau a été décodée — pour vérifier le motif avant d’enregistrer.
- Motif de code (regex avec groupes nommés aisle / row / bay / level) ; la zone vient de la colonne zone, pas du code. Le motif par défaut correspond à la forme A(allée)-R(rangée)-B(travée)-L(niveau), p. ex. STORAGE-A001-R1-B001-L1.
- Largeur de travée en mètres (défaut 2,7), hauteur de niveau (1,8), pas d’allée (6,0, profondeur du rayonnage incluse) et décalages d’origine X/Y/Z (0).
- Le calcul : x = origine_x + allée × pas d’allée + travée × largeur de travée ; y = origine_y + rangée × 1,2 m ; z = origine_z + (niveau − 1) × hauteur de niveau ; taille = largeur de travée × 1,2 × hauteur de niveau.
Codes non conformes : signalés, jamais bloqués#
Le placement automatique contrôle aussi la conformité des codes. Un code qui ne suit pas le motif de l’entrepôt renvoie CODE_NOT_STANDARD et n’obtient pas de coordonnées : la colonne de statut 3D dans la liste des emplacements l’affiche, et vous pouvez exporter la liste complète de l’entrepôt en CSV pour que l’équipe corrige. La création d’un emplacement n’est jamais bloquée par un code non conforme.
Ce que le placement automatique ne touche jamais#
- Les coordonnées placées manuellement gagnent toujours : le placement automatique ne remplit que les emplacements sans coordonnées, sans jamais écraser.
- L’éditeur de plan et l’import du coque de bâtiment ne sont pas touchés ; le placement automatique n’écrit que le même type d’enregistrements de coordonnées.
- Santé du plan : GET /api/wms/locations/layout-status?warehouse_id=… renvoie les comptes (avec coordonnées / en attente / non conformes / virtuels) pour suivre la couverture.