Un emplacement, dans Odoo, est un nom dans une arborescence. Dans l'entrepôt, c'est une position physique : allée 3, rangée 12, niveau 2, casier B — et c'est cette position qui détermine le trajet d'un préparateur.
Dix-sept modules communautaires font entrer la réalité physique du bâtiment dans le modèle de données.
Résumé
Six modules décrivent la position et la structure : les attributs de couloir, rangée, étagère et niveau, le nom de casier calculé depuis un gabarit de zone, l'organisation d'un emplacement en matrice de casiers, la liste complète des emplacements descendants, un test technique de sous-emplacement, et l'affichage amélioré des règles de capacité.
Cinq décrivent l'occupation : un état de remplissage à quatre valeurs — vide, rempli, en cours de remplissage, en cours de vidage —, sa colle avec la quantité prélevée, un écran des emplacements vides, deux boutons listant les mouvements en attente sur un emplacement, et le verrouillage d'un emplacement interdit au stockage.
Le reste pilote les flux et les droits : une priorité d'enlèvement par emplacement, une méthode technique de route par emplacement source, un calendrier d'ouverture d'entrepôt, le cloisonnement des droits par entrepôt, et deux modules qui restaurent des comportements d'anciennes versions : la génération des transferts par règles de flux tiré en livraison multi-étapes, et le réapprovisionnement inter-entrepôts en mode poussé.
L'essentiel
- La position physique d'un emplacement : couloir, rangée, étagère, niveau.
- Le nom d'un casier calculé depuis un gabarit défini sur sa zone.
- Un emplacement organisé en matrice de casiers, avec ses types de tablette.
- Un état d'occupation à quatre valeurs, et un écran des emplacements vides.
- Une priorité d'enlèvement par emplacement, quand plusieurs quants sont équivalents.
- Un calendrier d'ouverture d'entrepôt, utilisé par les calculs de délai.
- Des droits cloisonnés par entrepôt en environnement multi-sites.
- Deux comportements d'anciennes versions restaurés : flux tiré multi-étapes et réapprovisionnement poussé.
Ce que ces modules ajoutent à l'instance
| Famille | Modules | Nombre |
|---|---|---|
| Position et structure | stock_location_position, stock_location_bin_name, stock_location_tray, stock_location_children, stock_location_is_sublocation, stock_storage_category_capacity_name | 6 |
| Occupation | stock_location_fill_state, stock_location_fill_state_qty_picked, stock_location_empty, stock_location_pending_move, stock_location_lockdown | 5 |
| Flux | stock_removal_location_by_priority, stock_route_location_source, stock_warehouse_out_pull, stock_warehouse_resupply_route_push | 4 |
| Entrepôt | stock_warehouse_calendar, stock_warehouse_security | 2 |
Les menus ajoutés : Inventaire ▸ Produits ▸ Emplacements vides et Inventaire ▸ Configuration ▸ Gestion de l'entrepôt ▸ Location Tray Types.
Décrire la position physique
Nommer un emplacement « A-03-12-2 » encode la position dans une chaîne de caractères. C'est lisible par un humain et inexploitable par une machine : on ne peut ni trier par allée, ni calculer un trajet, ni réorganiser une zone sans tout renommer.
stock_location_positionajoute les attributs de couloir, rangée, étagère et niveau en tant que champs distincts.stock_location_bin_namecalcule le nom du casier à partir d'un gabarit de format défini sur sa zone parente : la nomenclature devient cohérente par construction, et se change en un endroit.stock_location_trayorganise un emplacement en matrice de casiers — un bac à compartiments, une étagère à alvéoles — avec ses types de tablette configurables.
Le deuxième est celui qui évite les renommages massifs : quand la nomenclature se décide par zone, modifier le format d'une allée recalcule ses casiers.
Deux modules techniques complètent : stock_location_children expose la liste complète des descendants d'un emplacement sur tous les niveaux, et stock_location_is_sublocation fournit un test utilitaire utilisé par d'autres modules — notamment la relocalisation de source.
La notion de zone, elle, est traitée dans stock : négatif, zones et rangement.
Savoir ce qu'il y a dans un emplacement
| Module | Ce qu'il montre ou permet |
|---|---|
stock_location_fill_state | Un état d'occupation : vide, rempli, en cours de remplissage, en cours de vidage |
stock_location_empty | Un écran des emplacements avec leur quantité, filtrable sur les emplacements vides |
stock_location_pending_move | Deux boutons listant les mouvements en attente entrants et sortants d'un emplacement |
stock_location_lockdown | Le marquage d'un emplacement interdit au stockage |
L'état d'occupation à quatre valeurs est plus fin qu'un simple « vide ou non » : un emplacement en cours de vidage ne doit pas recevoir de nouveau stock, et un emplacement en cours de remplissage n'est pas disponible pour une autre affectation.
L'écran des emplacements vides est l'outil du réaménagement : savoir où placer une nouvelle référence, ou quelles allées libérer, suppose de voir ce qui est libre. Cette information existe dans Odoo ; elle n'a pas d'écran.
Le verrouillage, lui, sert les zones de transit, les quais et les emplacements en maintenance : ils existent dans l'arborescence et ne doivent rien recevoir.
Piloter les flux : priorité, routes, modes restaurés
La priorité d'enlèvement
stock_removal_location_by_priority ajoute une priorité d'enlèvement sur les emplacements. Elle départage les quants équivalents : à date de péremption et à ancienneté égales, on prélève d'abord dans l'emplacement prioritaire.
C'est le réglage qui permet de vider en premier une zone qu'on veut libérer, ou de privilégier la zone de picking sur la réserve.
Deux comportements d'anciennes versions
stock_warehouse_out_pullrestaure la génération des transferts par règles de flux tiré en livraison à deux ou trois étapes, telle qu'elle existait dans les versions antérieures d'Odoo.stock_warehouse_resupply_route_pushpermet de configurer le réapprovisionnement d'un entrepôt depuis un autre en mode poussé plutôt qu'en mode tiré, qui est le standard actuel.
Ces deux modules appartiennent à une famille que ce corpus a croisée plusieurs fois : des modules qui ne réparent pas un manque, mais rendent un choix que l'éditeur avait retiré. Le flux poussé convient aux organisations où l'entrepôt central décide des réapprovisionnements ; le flux tiré, à celles où chaque site commande.
stock_route_location_source complète par une brique technique : une méthode permettant de déterminer l'emplacement source d'une route selon la destination, utilisée notamment par la relocalisation automatique.
L'entrepôt : horaires et cloisonnement
stock_warehouse_calendarajoute un calendrier de travail — horaires d'ouverture — sur la fiche entrepôt. Ce calendrier sert ensuite aux calculs de délai : une livraison annoncée à cinq jours ouvrés n'est pas une livraison à cinq jours.stock_warehouse_securityrestreint, entrepôt par entrepôt, ce qu'un utilisateur peut voir et manipuler.
Le premier est une dépendance structurante : c'est le calendrier d'entrepôt qu'exige le calcul des besoins multi-niveaux, déjà rencontré en production.
Le second répond à une situation banale en multi-sites : un magasinier de Lyon n'a pas à voir ni à modifier les stocks de Lille. Odoo standard ne cloisonne pas par entrepôt — il cloisonne par société, ce qui est une tout autre granularité.
Le calcul des besoins et sa dépendance au calendrier sont décrits dans production : MRP multi-niveaux.
Limites connues
- La position physique doit être saisie : sur un entrepôt existant, c'est un relevé terrain, pas un import.
- Le nom de casier calculé écrase la nomenclature existante : à poser avant la mise en service, ou à migrer avec précaution.
- L'état d'occupation suppose des mouvements à jour : il reflète les données, pas la réalité physique.
- Le cloisonnement par entrepôt complique les flux inter-sites : prévoir les profils qui doivent voir plusieurs entrepôts.
- Les deux modules de restauration changent la génération des transferts : à éprouver sur une copie.
stock_storage_category_capacity_nameetstock_location_is_sublocationsont des modules techniques : sans effet fonctionnel direct.
Identité technique
Les dix-sept modules viennent du dépôt OCA stock-logistics-warehouse, branche 18.0, en licences AGPL-3 et LGPL-3 selon le module. Plusieurs dépendent de briques du même dépôt — zones, position, mouvements en attente — et le calendrier d'entrepôt s'appuie sur le module de ressources d'Odoo.
Les familles voisines : les inventaires, les mouvements de stock et stock : négatif, zones et rangement.
Questions fréquentes
Pourquoi décrire la position physique d'un emplacement ?
Parce qu'un nom comme « A-03-12-2 » encode la position dans une chaîne : lisible par un humain, inexploitable par une machine. stock_location_position en fait des champs distincts — couloir, rangée, étagère, niveau — ce qui permet de trier, de calculer un trajet et de réorganiser une zone sans tout renommer.
Peut-on générer automatiquement le nom des casiers ?
Oui : stock_location_bin_name calcule le nom d'un casier à partir d'un gabarit de format défini sur sa zone parente. La nomenclature devient cohérente par construction, et modifier le format d'une allée recalcule ses casiers — au lieu d'un renommage massif.
Comment savoir quels emplacements sont libres ?
stock_location_empty ajoute un écran des emplacements avec leur quantité, filtrable sur les emplacements vides. C'est l'outil du réaménagement : l'information existe dans Odoo mais n'a pas d'écran. stock_location_fill_state va plus loin avec un état à quatre valeurs, qui distingue un emplacement en cours de vidage d'un emplacement vide.
Peut-on limiter un magasinier à son entrepôt ?
Pas en standard : Odoo cloisonne par société, pas par entrepôt. stock_warehouse_security restreint entrepôt par entrepôt ce qu'un utilisateur peut voir et manipuler — nécessaire dès qu'une même société exploite plusieurs sites avec des équipes distinctes.
Peut-on réapprovisionner un entrepôt en mode poussé ?
Le standard actuel d'Odoo fonctionne en flux tiré. stock_warehouse_resupply_route_push permet de configurer le réapprovisionnement inter-entrepôts en mode poussé, comme dans les versions antérieures. Le choix dépend de l'organisation : entrepôt central qui décide, ou sites qui commandent.
Se faire accompagner
La description physique d'un entrepôt est un investissement qui se rentabilise au premier réaménagement : sans elle, déplacer une famille de produits suppose de renommer des centaines d'emplacements et de corriger les habitudes de chacun.
Nous la posons donc avant la mise en service quand c'est possible, et nous la reprenons zone par zone sinon — en commençant par celles où la préparation coûte le plus. Voir les prestations d'Atalios Consulting ou demander un rappel.
Pour aller plus loin
- Inventaires : ajustements, écarts et comptage tournant
- Stock : interdire le négatif, organiser les emplacements
- Production : MRP multi-niveaux et nomenclatures
En résumé
Le bâtiment entre dans le modèle de données : couloir, rangée, niveau, casier calculé depuis un gabarit, état d'occupation, priorité d'enlèvement. Plus le cloisonnement par entrepôt que le standard ne fait qu'au niveau société, et deux modes de flux que l'éditeur avait retirés. Parlons de votre entrepôt.