Se rendre au contenu

Le modèle stock.picking : Comprendre les opérations de transfert et d'entrepôt d'Odoo

Un guide complet sur le modèle de transfert central d'Odoo pour la gestion des stocks et des entrepôts.
10 mars 2026 par
Le modèle stock.picking : Comprendre les opérations de transfert et d'entrepôt d'Odoo
Dasolo
| Aucun commentaire pour l'instant

Introduction


Dans Odoo, les modèles définissent comment les données sont structurées et stockées dans la base de données. Chaque élément de données commerciales avec lequel vous travaillez, des commandes de vente aux transferts d'inventaire en passant par les opérations d'entrepôt, vit dans un modèle.


Comprendre les modèles Odoo est essentiel tant pour les développeurs que pour les consultants fonctionnels. Les modèles sont la base de l'architecture des données Odoo. Ils définissent les champs, les relations et la logique commerciale.


Cet article se concentre sur l'un des modèles les plus importants de l'application Inventaire : stock.picking. Que vous construisiez des modules d'entrepôt personnalisés, intégriez des systèmes externes ou configuriez des flux de travail, vous travaillerez avec ce modèle.

Qu'est-ce que le modèle stock.picking


Le modèle stock.picking représente les transferts dans Odoo. C'est l'endroit central où les opérations d'entrepôt sont suivies. Chaque enregistrement de picking représente un transfert unique de marchandises d'un emplacement à un autre.


Ce modèle dans Odoo est utilisé dans le module Inventaire. Les réceptions, les livraisons et les transferts internes créent tous des enregistrements stock.picking. Lorsque vous confirmez une commande de livraison d'une vente, recevez des marchandises d'un achat ou déplacez des stocks entre entrepôts, vous créez ou mettez à jour un enregistrement stock.picking.


Le modèle est défini dans le module stock. D'autres modules l'étendent par le biais de l'héritage de modèle Odoo. La vente ajoute des champs liés à la livraison. L'achat ajoute des flux de travail de réception. La fabrication ajoute des mouvements de production. Chaque module ajoute ce dont il a besoin sans dupliquer la structure de base.


Le modèle stock.picking hérite de mail.thread et mail.activity.mixin. Cela signifie que vous pouvez suivre les changements, ajouter des messages de discussion et planifier des activités sur les transferts directement.

Champs clés dans le modèle


Voici les champs Odoo les plus importants dans le modèle stock.picking. Comprendre ceux-ci vous aidera à travailler efficacement avec les transferts et les opérations d'entrepôt.


1. nom

Type : Char. Ce champ stocke la référence du transfert. Il est généralement auto-généré à partir d'une séquence (par exemple, WH/OUT/00001). Il est affiché dans l'en-tête des formulaires de transfert et est l'identifiant principal pour le picking.


2. origine

Type : Char. La référence du document source. Pour une livraison, cela pourrait être le nom de la commande de vente. Pour une réception, la commande d'achat. Cela aide à retracer l'origine du transfert.


3. état

Type : Sélection. Le statut du transfert. Valeurs : Brouillon, En attente d'une autre opération, En attente, Prêt, Fait, Annulé. Chaque état détermine quelles actions sont disponibles. Odoo calcule cela à partir des mouvements de stock associés.


4. picking_type_id

Type: Many2one (stock.picking.type). Le type d'opération. Définit s'il s'agit d'une réception, d'une livraison ou d'un transfert interne. Requis. Chaque type de picking a des emplacements source et destination par défaut.


5. move_ids

Type: One2many (stock.move). Les mouvements de stock. Chaque ligne représente un produit et une quantité à déplacer. C'est le cœur du transfert. Toute la logique de réservation et de disponibilité fonctionne sur ces mouvements.


6. move_line_ids

Type: One2many (stock.move.line). Les opérations détaillées. Lorsque vous avez un suivi par lot ou par numéro de série, ces lignes stockent les lots et emplacements spécifiques. Utilisé pour le picking, le packing et la validation.


7. location_id

Type: Many2one (stock.location). L'emplacement source. D'où les produits sont prélevés. Requis. Pour les livraisons, il s'agit généralement de l'emplacement de stock. Pour les réceptions, l'emplacement du fournisseur.


8. location_dest_id

Type: Many2one (stock.location). L'emplacement de destination. Où les produits sont déplacés. Requis. Pour les livraisons, il s'agit généralement de l'emplacement du client. Pour les réceptions, l'emplacement de stock.


9. partner_id

Type: Many2one (res.partner). Le contact. Pour les livraisons, le client. Pour les réceptions, le fournisseur. Utilisé pour l'adresse sur les documents et pour l'intégration des transporteurs.


10. scheduled_date

Type: Date/Heure. Quand le transfert est prévu pour être traité. Utilisé pour la planification et la priorisation. Le définir manuellement fixe la date attendue pour tous les mouvements de stock.


11. date_limite

Type: Date/Heure. La date limite. Provient souvent de la commande de vente ou de la commande d'achat. Utilisé pour signaler les transferts en retard et pour les dates promises aux clients.


12. date_fait

Type: Date/Heure. Quand le transfert a été validé ou annulé. En lecture seule. Défini automatiquement lorsque le prélèvement est effectué.


13. priorité

Type: Sélection. Le niveau de priorité. Les produits sont réservés en premier pour les transferts avec une priorité plus élevée. Utilisé pour les commandes urgentes.


14. type_de_mouvement

Type: Sélection. La politique d'expédition. Valeurs : Dès que possible (livraison partielle autorisée) ou Lorsque tous les produits sont prêts (tout ou rien). Affecte le moment où le prélèvement peut être traité.


15. utilisateur_id

Type: Many2one (res.users). L'utilisateur responsable. Utilisé pour l'attribution et le suivi de la charge de travail. Défaut sur l'utilisateur actuel lors de la création.


16. entreprise_id

Type: Many2one (res.company). L'entreprise. Lié au type de picking. Dans les configurations multi-entreprises, cela détermine quelle entreprise possède le transfert.


17. group_id

Type: Many2one (procurement.group). Le groupe d'approvisionnement. Lie les mouvements connexes ensemble. Utilisé lorsque plusieurs pickings proviennent de la même commande.


18. backorder_id

Type: Many2one (stock.picking). Lorsqu'un transfert est partiellement validé, une commande de retour est créée pour le reste. Ce champ est lié au picking original.


19. backorder_ids

Type: One2many (stock.picking). Les commandes de retour créées à partir de ce picking. Utilisé lorsque vous validez partiellement et devez traiter le reste plus tard.


20. return_id

Type: Many2one (stock.picking). Si ce picking a été créé comme un retour, cela renvoie au picking original. Utilisé pour les flux de travail de retour.


21. note

Type: Html. Notes internes. Visibles aux utilisateurs d'entrepôt. Peut inclure des instructions spéciales ou des exigences de manipulation.


22. signature

Type: Image. La signature capturée lorsque la livraison est validée. Utilisée comme preuve de livraison. Stockée en tant que pièce jointe.


23. est_signé

Type: Booléen. Calculé à partir de la signature. Indique si la livraison a été signée.


24. id_propriétaire

Type: Many2one (res.partner). Le propriétaire à assigner lors de la validation. Utilisé pour les envois ou lorsque les produits appartiennent à un tiers.


25. ids_niveaux_colis

Type: One2many (stock.package_level). Niveaux de colis lors de l'utilisation de mettre dans le colis. Regroupe les lignes de mouvement en colis pour l'expédition.


26. date_creation

Type: Datetime. Quand l'enregistrement a été créé. Géré automatiquement par Odoo. Hérité du modèle de base.


27. date_modification

Type: Datetime. Quand l'enregistrement a été modifié pour la dernière fois. Géré automatiquement. Hérité du modèle de base.


28. actif

Type : Booléen. Indicateur de suppression douce. Lorsque Faux, l'enregistrement est archivé. Hérité du modèle de base.

Comment ce modèle est utilisé dans les flux de travail commerciaux


1. Ventes et Livraison

Lorsqu'une commande de vente est confirmée, Odoo crée un bon de livraison (stock.picking). Le bon de livraison est lié à la commande de vente via l'origine. Le personnel d'entrepôt prépare et emballe, puis valide. L'état passe de brouillon à prêt à fait.


2. Achats et Réception

Lorsqu'une commande d'achat est confirmée, Odoo crée une réception entrante. Le bon de livraison reçoit des produits de l'emplacement du fournisseur vers le stock. Le partner_id est le fournisseur. La validation met à jour les quantités d'inventaire.


3. Transferts Internes

Le déplacement de stock entre entrepôts ou emplacements crée des bons de livraison internes. Le picking_type_id a le code 'interne'. L'emplacement et la destination sont tous deux des emplacements de stock internes.


4. Retours et Commandes en Attente

Lorsqu'une vente est retournée, un bon de retour est créé. Le return_id est lié à la livraison originale. Lorsqu'une livraison est partiellement validée, backorder_ids contient le travail restant.


5. Fabrication et Production

Les ordres de fabrication créent des bons de livraison pour les matières premières (consommation) et les produits finis (production). Le modèle stock.picking est étendu par le module mrp pour ces flux.

Comment les développeurs étendent ce modèle


Les développeurs étendent stock.picking en utilisant plusieurs modèles. L'héritage de modèle Odoo est le principal mécanisme.


Héritage de Modèle

Utilisez _inherit = 'stock.picking' pour étendre le modèle. Ajoutez de nouveaux champs, remplacez des méthodes ou ajoutez des contraintes. Le modèle hérité dans Odoo garde vos modifications dans un module séparé pour des mises à jour faciles.


Ajout de Champs

Définissez de nouveaux champs Odoo dans votre modèle hérité. Utilisez le bon type de champ : Char, Many2one, Boolean, Integer, Text, Selection. Considérez les champs dépendants de l'entreprise pour le multi-entreprise.


Extensions Python

Remplacez button_validate, action_assign, ou _create_backorder pour ajouter de la logique. Utilisez super() pour appeler l'original. Faites attention aux transitions d'état et à la création de mouvements.


Odoo Studio

Odoo Studio vous permet d'ajouter des champs sans code. Bon pour des personnalisations rapides comme des étiquettes personnalisées ou des notes supplémentaires. Pour une logique complexe ou une intégration de transporteur, des modules personnalisés sont plus maintenables.

Meilleures pratiques


  • Assurez-vous toujours de définir le picking_type_id lors de la création manuelle de pickings. Cela détermine les emplacements par défaut et le comportement.
  • Utilisez le champ d'origine pour retracer le document source. Cela aide à la génération de rapports et au débogage.
  • Lors de la création d'intégrations API, le modèle stock.picking est entièrement exposé via l'API Odoo. Créez des mouvements via la relation move_ids. Ne créez pas de pickings sans mouvements.
  • Utilisez scheduled_date pour la planification. Cela affecte la réservation et la priorisation.
  • Pour les champs personnalisés, utilisez le préfixe x_ ou un préfixe de module pour éviter les conflits avec les futures versions d'Odoo.

Erreurs courantes


  • Créer des pickings sans définir picking_type_id. Cela peut entraîner des emplacements par défaut incorrects.
  • Modifier move_ids après confirmation sans comprendre la machine d'état. Les transitions d'état peuvent être complexes.
  • Oublier de définir partner_id pour les livraisons. Les transporteurs et les documents ont besoin du contact.
  • Surcharger button_validate sans appeler super(). Cela peut casser la création de commandes en attente et d'autres modules.
  • Supposer que move_ids et move_line_ids sont toujours synchronisés. Les lignes de mouvement sont créées lorsque vous réservez ou lorsque vous utilisez des opérations détaillées.

Conclusion


Le modèle stock.picking est central pour l'inventaire Odoo. Il stocke les transferts, les livraisons et les réceptions. Comprendre ses champs et comment les modules l'étendent vous aidera à configurer, personnaliser et intégrer Odoo efficacement.


Que vous soyez un consultant fonctionnel cartographiant les processus d'entrepôt ou un développeur construisant des modules personnalisés, une bonne maîtrise de stock.picking vous fera gagner du temps et évitera des erreurs.

Prêt à optimiser votre entrepôt Odoo


Dasolo aide les entreprises à mettre en œuvre, personnaliser et optimiser Odoo. Nous nous spécialisons dans les intégrations API et le développement Odoo. Notre équipe a une grande expérience de l'architecture des données Odoo et des modèles comme stock.picking.


Si vous avez besoin d'aide pour votre mise en œuvre Odoo, des modules d'entrepôt personnalisés ou des intégrations, nous sommes là pour vous aider. Réservez une démo pour discuter de votre projet.

Le modèle stock.picking : Comprendre les opérations de transfert et d'entrepôt d'Odoo
Dasolo 10 mars 2026
Partager cet article
Se connecter pour laisser un commentaire.