Documentation9 min de lecture

Transferts : retours contrôlés, annulations interdites et consignes client

Dix-huit modules OCA du dépôt `stock-logistics-workflow` ferment les trous du transfert dans Odoo 18 Community : `stock_picking_return_restricted_qty` **empêche de retourner plus que ce qui a été livré**, et `stock_picking_restrict_cancel_printed` **interdit d'annuler un transfert déjà imprimé** — deux situations qu'Odoo autorise sans broncher. Les seize autres, du lot repris au retour aux consignes de préparation portées par la fiche client.

Consultation d'un document sur un ordinateur portable

Un bon de livraison imprimé, donné au cariste, puis annulé dans l'ERP : la marchandise part quand même. Un retour client saisi pour douze pièces alors que huit ont été livrées : le stock augmente de quatre pièces qui n'existent pas.

Odoo autorise les deux. Dix-huit modules communautaires y mettent des garde-fous — et ajoutent ce qui manque pour communiquer autour d'un transfert.

Résumé

Trois modules restreignent les retours : la quantité retournée ne peut pas dépasser la quantité livrée, le lot d'origine est repris automatiquement pour les produits tracés, et seul le contenu d'un colis est remis en stock lors d'un retour de colis.

Quatre encadrent l'annulation et la validation : interdiction d'annuler un transfert déjà imprimé, interdiction d'annuler un maillon isolé d'une chaîne de transferts, obligation de valider intégralement sans reliquat selon le type d'opération, et validation par paliers sur les transferts.

Le reste sert la communication et la navigation : avertissement du partenaire affiché sur le transfert, alerte avant de traiter un transfert réservé dont rien n'a été explicitement prélevé, envoi du bon par courriel, consignes de préparation portées par la fiche client, numéro de TVA imprimé sur les bons, référence client reprise de la commande, document d'origine rendu cliquable — avec deux extensions pour les ventes et les achats — et deux boutons de retour vers la commande d'origine.

L'essentiel

  • Impossible de retourner plus que ce qui a été livré — option par type d'opération.
  • Le lot d'origine repris automatiquement lors d'un retour de produit tracé.
  • Annulation interdite après impression du bon : le papier est déjà parti dans l'entrepôt.
  • Annulation interdite d'un maillon isolé d'une chaîne de transferts.
  • Validation intégrale obligatoire par type d'opération : ni reliquat, ni quantité partielle.
  • Des consignes de préparation par client : « fragile », « livrer sur palette ».
  • Le document d'origine cliquable, y compris vers une commande de vente ou d'achat.
  • Le bon de livraison envoyé par courriel depuis sa fiche.

Ce que ces modules ajoutent à l'instance

FamilleModulesNombre
Retoursstock_picking_return_restricted_qty, stock_picking_return_lot, stock_picking_return_empty_package3
Annulation et validationstock_picking_restrict_cancel_printed, stock_picking_restrict_cancel_with_orig_move, stock_picking_restrict_partial_validation, stock_picking_tier_validation, stock_picking_immediate_transfer_warning5
Communicationstock_picking_warn_message, stock_picking_send_by_mail, stock_picking_partner_note, stock_picking_partner_vat, stock_picking_customer_ref5
Navigationstock_picking_origin_reference, stock_picking_origin_reference_sale, stock_picking_origin_reference_purchase, stock_picking_purchase_order_link, stock_picking_sale_order_link5

Un seul menu ajouté : Inventaire ▸ Configuration ▸ Picking Notes et ses types de notes, pour les consignes de préparation.

Des retours qui ne créent pas de stock

Retourner plus que ce qui a été livré crée du stock à partir de rien. C'est l'une des sources les plus fréquentes d'écart d'inventaire, et elle est invisible : chaque ligne prise isolément paraît légitime.

  • stock_picking_return_restricted_qty ajoute une option par type d'opération qui bloque toute tentative de retourner une quantité supérieure à celle livrée ou reçue.
  • stock_picking_return_lot force, pour les produits tracés, la reprise du lot ou numéro de série d'origine dans l'assistant de retour. Sans lui, l'opérateur saisit un lot au hasard, et la traçabilité est rompue au moment précis où elle devrait servir.
  • stock_picking_return_empty_package garantit que seul le contenu d'un colis est remis en stock lors d'un retour de colis — et non le colis lui-même comme article.

Les deux premiers forment le minimum vital pour toute entreprise qui gère des retours sur des produits tracés : agroalimentaire, pharmacie, pièces techniques, matériel sous garantie.

Le circuit de retour côté commercial est traité dans ventes et stock, avec la demande de retour rattachée à la commande d'origine.

Ce qu'on ne doit plus pouvoir annuler

ModuleCe qu'il interditPourquoi
stock_picking_restrict_cancel_printedL'annulation d'un transfert déjà impriméLe bon papier circule déjà dans l'entrepôt
stock_picking_restrict_cancel_with_orig_moveL'annulation d'un maillon isolé d'une chaîneAnnuler le contrôle qualité laisse la réception orpheline
stock_picking_restrict_partial_validationLa validation partielle, par type d'opérationNi reliquat ni quantité partielle quand le process l'exige

Le premier est le plus simple et le plus utile : dès qu'un document est imprimé, il existe physiquement quelque part. L'annuler dans l'ERP ne l'efface pas du quai.

Le deuxième traite un défaut structurel : Odoo permet d'annuler n'importe quel transfert d'une chaîne indépendamment des autres, ce qui laisse des mouvements amont sans destination et des stocks bloqués dans un emplacement de transit.

Le troisième est un choix de process : sur certains types d'opération — inventaire, transfert interne contrôlé —, un traitement partiel n'a pas de sens, et le reliquat créé automatiquement complique tout.

Deux contrôles supplémentaires

  • stock_picking_tier_validation branche la validation par paliers sur les transferts : un ou plusieurs valideurs avant de pouvoir valider un mouvement — utile pour les sorties sensibles ou les régularisations.
  • stock_picking_immediate_transfer_warning avertit avant de traiter un transfert réservé dont aucun mouvement n'a été explicitement prélevé : c'est le cas du clic sur « Valider » sans avoir rien scanné, qui valide les quantités théoriques.

Le second mérite d'être généralisé : valider sans prélever revient à déclarer conforme ce qu'on n'a pas regardé, et c'est le geste qui produit les écarts les plus durs à expliquer.

Communiquer autour d'un transfert

Les consignes de préparation

stock_picking_partner_note permet d'enregistrer sur la fiche d'un client des consignes destinées au préparateur — « fragile, à emballer séparément », « livrer sur palette », « sonner à l'interphone 3 ». Elles se gèrent par types, dans un menu dédié.

Ces consignes vivent sinon dans la mémoire d'un préparateur expérimenté. Le jour de son absence, le client reçoit un colis mal emballé — et la réclamation coûte plus cher que tout ce que l'ERP a fait gagner ce mois-là.

Les autres informations utiles

ModuleCe qu'il affiche ou permet
stock_picking_warn_messageL'avertissement du partenaire affiché sur le transfert — client en litige, consigne de sécurité
stock_picking_partner_vatLe numéro de TVA du contact sur le formulaire et sur deux rapports PDF
stock_picking_customer_refLa référence client issue de la commande, avec recherche et regroupement
stock_picking_send_by_mailL'envoi du bon par courriel depuis sa fiche, via l'assistant standard

Le numéro de TVA sur le bon de livraison n'est pas un ornement : il est exigé dans plusieurs contextes d'expédition intracommunautaire, et son absence fait rejeter des documents en douane.

  • stock_picking_origin_reference rend le champ document d'origine cliquable lorsqu'il correspond au nom d'un autre transfert : au lieu d'un texte à recopier dans une recherche, un lien.
  • Deux extensions ajoutent les commandes de vente et les commandes d'achat aux types de documents reconnus.
  • stock_picking_sale_order_link et stock_picking_purchase_order_link ajoutent un bouton vers la commande qui a généré le transfert.

Ces cinq modules ne changent aucun comportement : ils suppriment des copier-coller. Sur un entrepôt qui traite trois cents transferts par jour, c'est une économie de temps réelle — et surtout une économie d'erreurs de recherche.

Les accès inverses — depuis le transfert vers ses reliquats, ses retours, ses lots — sont traités dans regrouper et scinder les transferts.

Limites connues

  • Interdire l'annulation après impression suppose une procédure de rattrapage : il faut pouvoir corriger autrement, sinon les opérateurs impriment le plus tard possible.
  • La validation intégrale obligatoire bloque les livraisons partielles : à réserver aux types d'opération où le process l'exige.
  • La validation par paliers sur les transferts ralentit l'entrepôt : à limiter aux opérations sensibles.
  • Les consignes client doivent être tenues : une consigne périmée produit une erreur avec l'autorité d'une instruction.
  • stock_picking_return_empty_package est peu documenté dans le relevé : comportement à vérifier sur le dépôt.
  • L'avertissement avant validation n'empêche rien : il alerte, et suppose qu'on lise.

Identité technique

Les dix-huit modules viennent du dépôt OCA stock-logistics-workflow, branche 18.0, tous en licence AGPL-3. Quatre dépendent de sale_stock ou de purchase_stock — ils ne concernent donc que les flux issus d'une commande — et la validation par paliers s'appuie sur le socle générique du dépôt server-ux.

Les familles voisines : les mouvements de stock, regrouper et scinder les transferts et les vagues de préparation.

Questions fréquentes

Peut-on empêcher un retour supérieur à la quantité livrée ?

Oui : stock_picking_return_restricted_qty ajoute une option par type d'opération qui bloque toute tentative de retourner plus que ce qui a été livré ou reçu. C'est une source fréquente d'écart d'inventaire, et elle est invisible ligne à ligne — chaque retour paraît légitime pris isolément.

Le lot d'origine est-il repris lors d'un retour ?

Pas en standard. stock_picking_return_lot force la reprise du lot ou numéro de série d'origine dans l'assistant de retour pour les produits tracés. Sans lui, l'opérateur saisit un lot au hasard et la traçabilité se rompt au moment précis où elle devrait servir.

Pourquoi interdire l'annulation d'un transfert imprimé ?

Parce que le document existe physiquement : il a été remis à un cariste ou posé sur un quai. stock_picking_restrict_cancel_printed empêche l'annulation dans l'ERP, qui ne fait pas disparaître le papier. Prévoyez la procédure de correction, sinon les opérateurs retarderont l'impression.

Comment transmettre une consigne de préparation propre à un client ?

Avec stock_picking_partner_note : les consignes — « fragile, emballer séparément », « livrer sur palette » — sont enregistrées sur la fiche du client, par types, et apparaissent sur ses transferts. Elles cessent de dépendre de la mémoire d'un préparateur expérimenté.

Comment éviter de valider un transfert sans rien avoir prélevé ?

stock_picking_immediate_transfer_warning avertit avant de traiter un transfert réservé dont aucun mouvement n'a été explicitement prélevé. Valider sans prélever revient à déclarer conforme ce qu'on n'a pas regardé : c'est le geste qui produit les écarts les plus difficiles à expliquer.

Se faire accompagner

Ces dix-huit modules partagent une caractéristique : chacun comble un trou qu'Odoo laisse ouvert par souplesse. Pris isolément, aucun ne paraît urgent ; ensemble, ils expliquent pourquoi un inventaire tombe juste ou non.

Nous les posons donc en partant des écarts constatés : d'où viennent les erreurs d'inventaire de l'an dernier, et quel garde-fou les aurait évitées. C'est plus rapide que d'installer dix-huit modules et plus convaincant pour les équipes. Voir les prestations d'Atalios Consulting ou demander un rappel.

Pour aller plus loin

En résumé

Ce qu'Odoo laisse faire et qui coûte cher : retourner plus que livré, annuler un bon déjà imprimé, valider sans avoir rien prélevé, perdre le lot d'origine d'un retour. Dix-huit garde-fous, plus les consignes client et les liens vers le document d'origine. Parlons de vos écarts d'inventaire.

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