Documentation9 min de lecture

Emplacements et entrepôts : position physique, occupation et droits

Dix-sept modules OCA du dépôt `stock-logistics-warehouse` décrivent l'entrepôt physique dans Odoo 18 Community : `stock_location_position` ajoute aux emplacements leurs **attributs de position** — couloir, rangée, étagère, niveau —, et `stock_location_bin_name` **calcule le nom d'un casier** à partir d'un gabarit défini sur sa zone. Les quinze autres, de l'état d'occupation d'un emplacement au cloisonnement des droits par entrepôt.

Équipe en gilets de sécurité sur un site logistique

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

FamilleModulesNombre
Position et structurestock_location_position, stock_location_bin_name, stock_location_tray, stock_location_children, stock_location_is_sublocation, stock_storage_category_capacity_name6
Occupationstock_location_fill_state, stock_location_fill_state_qty_picked, stock_location_empty, stock_location_pending_move, stock_location_lockdown5
Fluxstock_removal_location_by_priority, stock_route_location_source, stock_warehouse_out_pull, stock_warehouse_resupply_route_push4
Entrepôtstock_warehouse_calendar, stock_warehouse_security2

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_position ajoute les attributs de couloir, rangée, étagère et niveau en tant que champs distincts.
  • stock_location_bin_name calcule 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_tray organise 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

ModuleCe qu'il montre ou permet
stock_location_fill_stateUn état d'occupation : vide, rempli, en cours de remplissage, en cours de vidage
stock_location_emptyUn écran des emplacements avec leur quantité, filtrable sur les emplacements vides
stock_location_pending_moveDeux boutons listant les mouvements en attente entrants et sortants d'un emplacement
stock_location_lockdownLe 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_pull restaure 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_push permet 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_calendar ajoute 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_security restreint, 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_name et stock_location_is_sublocation sont 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

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.

Documentation OCALogistiqueEntrepôt

Partager

Fiches connexes

Équipe au travail sur des ordinateurs portables autour d'une table
Le module OCA `account_invoice_en16931` (dépôt `fr-einvoicing`, version 18.0.1.0.0, licence AGPL-3) est le socle qui fabrique le fichier de facture électronique conforme à la norme européenne **EN 16931** : Factur-X (PDF/A-3 avec XML CII embarqué), XML UBL, XML CII ou PDF accompagné d'un UBL — et il ajoute des **contrôles bloquants à la validation** d'une facture client. Les quatre modules qui s'y greffent pour la France, et ce que le socle ne fait pas.
Lire la suite
Documentation OCA, Facturation électronique
Réunion d'approbation autour d'un document de travail
Relevé sur une instance Odoo 18 Community, le module OCA `base_tier_validation` (dépôt `server-ux`, version 18.0.3.5.1, licence AGPL-3) ajoute 1 modèle, 101 champs et 3 menus, mais ne s'active sur aucun document métier par lui-même : il lui faut un module d'implémentation. C'est le point qui surprend le plus — voici ce qu'il fait réellement, et comment le mettre en service.
Lire la suite
Documentation OCA, Odoo