Documentation10 min de lecture

Routage dynamique, valorisation et mises au rebut

Dix-neuf modules OCA du dépôt `stock-logistics-workflow` traitent trois sujets avancés dans Odoo 18 Community : `stock_dynamic_routing` **change le type d'opération d'un mouvement et insère des étapes** selon son emplacement, et `stock_account_show_automatic_valuation` **réaffiche en Community un réglage de valorisation** masqué hors Enterprise. Les dix-sept autres, des coûts logistiques automatiques au contrôle des mises au rebut.

Courbe d'évolution affichée sur un ordinateur portable

Trois sujets d'entrepôt mûr se retrouvent ici : router les mouvements selon la topologie réelle du site, valoriser juste quand les coûts arrivent après la marchandise, et encadrer les mises au rebut — qui sont des destructions de valeur.

Dix-neuf modules communautaires les traitent, dont un qui restaure un réglage d'Odoo masqué en Community.

Résumé

stock_dynamic_routing insère des étapes et change le type d'opération d'un mouvement selon son emplacement : un prélèvement en zone de grande hauteur passe par une étape de descente, un colis fragile par une zone d'emballage spécifique. Quatre modules de colle l'articulent avec les transporteurs, les règles de réservation et la synchronisation des zones de sortie. stock_checkout_sync regroupe sur un même emplacement de destination les mouvements qui convergent vers un même type d'opération.

Côté valorisation : un coût logistique créé automatiquement à la confirmation d'une commande d'achat, une priorité sur ces dossiers de coûts, la traçabilité des couches de valorisation consommées par les sorties, le recalcul du coût moyen après correction d'une couche, un point d'ancrage technique pour la méthode FIFO, et la réapparition du réglage de valorisation automatique.

Côté rebut enfin : des codes motif avec emplacement par défaut, le rebut d'un lot entier en une action, le rebut de toutes les lignes d'un transfert terminé, l'annulation d'un rebut validé, des droits dédiés retirés aux groupes standards, et une validation par paliers.

L'essentiel

  • Le routage dynamique : étapes insérées et type d'opération changé selon l'emplacement.
  • La synchronisation des zones de sortie : les mouvements convergents vont au même endroit.
  • Un coût logistique créé automatiquement à la confirmation d'une commande d'achat.
  • La traçabilité des couches de valorisation : quelle entrée a servi quelle sortie.
  • Le coût moyen recalculé après correction d'une couche de valorisation.
  • Un réglage Enterprise restauré en Community : la valorisation automatique.
  • Des codes motif de rebut, avec emplacement par défaut et restriction.
  • Des droits dédiés au rebut, retirés aux groupes standards de l'inventaire.

Ce que ces modules ajoutent à l'instance

FamilleModulesNombre
Routage dynamiquestock_dynamic_routing, stock_dynamic_routing_checkout_sync, stock_dynamic_routing_delivery, stock_dynamic_routing_delivery_procurement_group_carrier, stock_dynamic_routing_reserve_rule, stock_checkout_sync6
Coûts logistiquesstock_landed_costs_purchase_auto, stock_landed_costs_priority2
Valorisationstock_valuation_layer_usage, product_cost_price_avco_sync, stock_account_product_run_fifo_hook, stock_account_show_automatic_valuation4
Rebutsscrap_reason_code, stock_lot_scrap, stock_picking_whole_scrap, stock_scrap_cancel, stock_scrap_security, stock_scrap_tier_validation6
Marchandises dangereusesstock_dangerous_goods1

Trois menus ajoutés : Inventaire ▸ Configuration ▸ Gestion de l'entrepôt ▸ Dynamic Routing, Inventaire ▸ Configuration ▸ Motifs de Rebut, et Inventaire ▸ Analyse ▸ Stock Valuation Layer Usages.

Router les mouvements selon la topologie du site

Le routage standard d'Odoo décide des étapes à la configuration de l'entrepôt, une fois pour toutes. Le routage dynamique décide au moment du mouvement, selon l'emplacement réellement concerné — ce qui permet qu'un prélèvement en zone haute passe par une descente, et qu'un prélèvement en zone basse n'y passe pas.

Le module change le type d'opération du mouvement et insère des étapes supplémentaires, selon des règles configurées dans Inventaire ▸ Configuration ▸ Gestion de l'entrepôt ▸ Dynamic Routing.

Quatre modules de colle l'articulent avec le reste :

  • avec la synchronisation des zones de sortie, pour que les mouvements convergents restent cohérents ;
  • avec les transporteurs, pour que le transporteur se propage aux étapes insérées ;
  • avec le groupe d'approvisionnement par transporteur, variante plus fine de la précédente ;
  • avec les règles de réservation avancées, qui décident où le stock est pris.

stock_checkout_sync traite une question voisine et fréquente : plusieurs mouvements qui convergent vers un même type d'opération — par exemple plusieurs zones d'emballage — doivent aboutir au même emplacement de destination, sinon un même colis se retrouve éclaté entre deux postes.

Ces modules s'adressent à des entrepôts matures : ils supposent une topologie modélisée et des zones réelles. Sur un entrepôt simple, ils ajoutent de la complexité sans contrepartie.

La modélisation des zones et des emplacements est traitée dans stock : négatif, zones et rangement.

Valoriser juste : coûts logistiques et couches

Les coûts logistiques

  • stock_landed_costs_purchase_auto crée automatiquement un dossier de coûts logistiques à la confirmation d'une commande d'achat, lié à cette commande.
  • stock_landed_costs_priority permet de marquer certains dossiers comme importants, pour les distinguer et les traiter en priorité.

Le premier répond à un oubli classique de l'import : le transport, les droits de douane et l'assurance arrivent des semaines après la marchandise, et le dossier de coûts n'est jamais créé — donc le prix de revient reste faux.

Les couches de valorisation

ModuleCe qu'il apporte
stock_valuation_layer_usageLa traçabilité entre les couches de valorisation entrantes et les sorties qui les ont consommées, avec son écran d'analyse
product_cost_price_avco_syncLe recalcul du prix de revient en coût moyen pondéré après correction d'une couche
stock_account_product_run_fifo_hookUn point d'ancrage technique pour intervenir dans le calcul FIFO — brique de développement
stock_account_show_automatic_valuationLa case Automatic Accounting, masquée par l'éditeur hors Enterprise, réaffichée en Community

Le dernier appartient à une famille que nous avons déjà croisée : les modules qui restaurent en Community des réglages retirés par l'éditeur. Il ne crée aucun champ — il rend visible ce qui existe déjà.

Le premier est l'outil d'un contrôleur de gestion : savoir quelle réception, à quel prix, a servi telle livraison, c'est ce qui permet d'expliquer une marge anormale au lieu de la constater.

Les états comptables qui exploitent ces données sont traités dans états financiers, soldes de taxes et budgets.

Encadrer les mises au rebut

Un rebut est une destruction de valeur enregistrée en deux clics. Six modules l'encadrent.

  1. scrap_reason_code crée un référentiel de codes motif, chacun pouvant porter un emplacement de rebut par défaut et une restriction d'usage.
  2. stock_scrap_security retire aux groupes standards de l'inventaire le droit de créer ou modifier un rebut, et crée des droits dédiés.
  3. stock_scrap_tier_validation ajoute une validation par paliers sur les rebuts.
  4. stock_scrap_cancel ajoute un état Annulé et permet de revenir en brouillon — ce qu'Odoo n'autorise pas une fois le rebut validé.

Les trois premiers forment le dispositif de contrôle : un motif obligatoire, des droits restreints, une validation au-delà d'un seuil. Le quatrième est le filet de sécurité, car l'erreur de saisie existe.

Deux modules de productivité complètent :

  • stock_lot_scrap ajoute un bouton Scrap sur la fiche d'un lot, qui met au rebut toutes les quantités de ce lot présentes dans les emplacements internes — le geste du rappel produit ou du blocage qualité.
  • stock_picking_whole_scrap met au rebut toutes les lignes d'un transfert terminé en une fois, au lieu d'une fiche par produit — le cas du colis endommagé à la réception.

Le premier se combine avec le verrouillage de lot décrit dans les mouvements de stock : on verrouille d'abord, on analyse, puis on rebute si nécessaire.

Reste stock_dangerous_goods, module de colle entre l'inventaire et le référentiel européen ADR des marchandises dangereuses — une obligation réglementaire pour qui transporte des produits classés.

Limites connues

  • Le routage dynamique suppose une topologie modélisée : sur un entrepôt simple, il ajoute de la complexité sans gain.
  • Quatre modules de colle accompagnent le routage : leur absence produit des incohérences difficiles à diagnostiquer (transporteur perdu, réservation incohérente).
  • Le coût logistique automatique crée un dossier par commande : sur un gros volume d'achats, cela fait beaucoup de dossiers à traiter ou à clôturer.
  • Les corrections de couches de valorisation touchent la comptabilité : à réserver à un rôle identifié et à éprouver sur une copie.
  • Restreindre les droits de rebut déplace la charge : prévoir qui valide, sinon les rebuts s'accumulent en brouillon.
  • stock_scrap_tier_validation est peu documenté dans le relevé : comportement à vérifier sur le dépôt.

Identité technique

Les dix-neuf modules viennent du dépôt OCA stock-logistics-workflow, branche 18.0, en licence AGPL-3 sauf stock_account_product_run_fifo_hook (LGPL-3). Plusieurs dépendent de briques d'autres dépôts : règles de réservation avancées, destination commune de mouvements, et le référentiel ADR européen des marchandises dangereuses.

Les familles voisines : les mouvements de stock, transferts : retours et contrôles et les vagues de préparation.

Questions fréquentes

Qu'apporte le routage dynamique par rapport aux routes d'Odoo ?

Les routes standards décident des étapes à la configuration, une fois pour toutes. stock_dynamic_routing décide au moment du mouvement, selon l'emplacement concerné : il change le type d'opération et insère des étapes. Un prélèvement en zone haute passe par une descente, un prélèvement en zone basse n'y passe pas.

Comment ne pas oublier les coûts de transport et de douane ?

stock_landed_costs_purchase_auto crée automatiquement le dossier de coûts logistiques à la confirmation de la commande d'achat, lié à celle-ci. C'est l'oubli classique de l'import : ces coûts arrivent des semaines après la marchandise, le dossier n'est jamais créé, et le prix de revient reste faux.

Peut-on savoir quelle réception a servi quelle livraison ?

Oui, avec stock_valuation_layer_usage, qui trace le lien entre les couches de valorisation entrantes et les sorties qui les ont consommées, avec un écran d'analyse dédié. C'est ce qui permet d'expliquer une marge anormale au lieu de la constater.

Peut-on annuler une mise au rebut validée ?

Pas en standard. stock_scrap_cancel ajoute un état Annulé et deux boutons permettant d'annuler un rebut validé puis de le repasser en brouillon. C'est le filet de sécurité qui accompagne le dispositif de contrôle — motif obligatoire, droits restreints, validation par paliers.

Comment rebuter tout un lot d'un coup ?

stock_lot_scrap ajoute un bouton sur la fiche du lot qui met au rebut toutes ses quantités présentes dans les emplacements internes. C'est le geste du rappel produit. Pour un colis endommagé à la réception, stock_picking_whole_scrap rebute en une fois toutes les lignes d'un transfert terminé.

Se faire accompagner

Ces trois sujets — routage, valorisation, rebut — ont en commun d'être invisibles jusqu'à la clôture. Un routage mal pensé fait marcher les préparateurs ; une valorisation fausse fait prendre des décisions commerciales sur des marges imaginaires ; des rebuts non contrôlés font disparaître de la valeur sans trace.

Nous traitons d'abord la valorisation — c'est elle qui fausse les décisions —, ensuite le contrôle des rebuts, et le routage dynamique en dernier, quand l'entrepôt a une topologie stable qui mérite d'être modélisée. Voir les prestations d'Atalios Consulting, notre méthode ou demander un rappel.

Pour aller plus loin

En résumé

Router les mouvements selon la topologie réelle du site, valoriser juste quand les coûts arrivent après la marchandise, et encadrer les rebuts — qui sont des destructions de valeur enregistrées en deux clics. Avec, au passage, un réglage Enterprise restauré en Community. Parlons de votre valorisation de stock.

Documentation OCALogistiqueComptabilité

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