Documentation11 min de lecture

Disponible à promettre, réservation et règles de réassort

Le module OCA `stock_available_to_promise_release` (dépôt `stock-logistics-reservation`, version 18.0.1.7.0, licence LGPL-3) **libère les opérations en fonction du disponible à promettre** — le mécanisme sur lequel reposent les canaux de livraison et toute la logistique avancée du catalogue communautaire. Trente autres modules traitent la réservation par emplacement et les règles de réassort.

Zones de stock organisées dans un entrepôt

La question « que peut-on promettre à un client » n'a pas de réponse simple : le stock physique n'est pas le stock disponible, le stock disponible n'est pas le stock non réservé, et une partie du stock se trouve dans des zones dont on ne doit pas tenir compte.

Trente-et-un modules communautaires répondent à cette question, et terminent trois dépôts logistiques : stock-logistics-availability, stock-logistics-reservation et stock-logistics-orderpoint.

Résumé

Sept modules traitent le calcul du disponible : une quantité disponible à la vente distincte du stock, son affinage immédiat, l'exclusion d'emplacements du calcul avec ses deux briques techniques, la quantité libre non réservée rendue visible, et son affichage dans la liste de sélection d'un produit.

Neuf modules traitent la libération sur disponibilité : le mécanisme de libération des opérations selon le disponible à promettre, son intégration aux ventes et au dépôt direct, ses colles vers la livraison, le routage dynamique, le transporteur de remplacement et l'exclusion d'emplacements.

Cinq modules traitent la réservation : des réservations de stock sur produits, des règles de réservation par emplacement, l'affectation manuelle d'un quant, un bouton de déréservation sur le transfert, la réservation automatique à l'entrée en stock, la réservation de la quantité maximale disponible, et le forçage de la réservation des lots périmés.

Dix modules enfin traitent les règles de réassort : une règle par emplacement plutôt que par produit, un emplacement par défaut distinct, une configuration en masse par gabarits, un approvisionnement manuel depuis une règle, les liens aux mouvements et aux commandes d'achat, la matérialisation d'un besoin sur commande via une règle, la suppression de l'horizon de calcul, l'unité de mesure de la règle, et le fournisseur par défaut dans l'assistant de réapprovisionnement.

L'essentiel

  • Une quantité « disponible à la vente » distincte du stock physique.
  • Des emplacements exclus du calcul : conditionnement, contrôle qualité.
  • La libération des opérations sur disponibilité, socle des canaux de livraison.
  • Des règles de réservation par emplacement.
  • La réservation automatique à l'entrée en stock.
  • Une règle de réassort par emplacement, non par produit.
  • La suppression de l'horizon de calcul des besoins.
  • Le forçage de la réservation des lots périmés.

Ce que ces modules ajoutent à l'instance

DépôtModulesNombre
stock-logistics-availabilitystock_available, stock_available_immediately, stock_available_base_exclude_location, stock_available_immediately_exclude_location, stock_available_location_get_domain, stock_available_unreserved, stock_free_quantity, stock_picking_product_availability_inline8
stock-logistics-reservationstock_available_to_promise_release, sale_stock_available_to_promise_release, sale_stock_available_to_promise_release_dropshipping, stock_available_to_promise_release_delivery, stock_available_to_promise_release_dynamic_routing, stock_available_to_promise_release_carrier_alternative, stock_available_to_promise_release_exclude_location, stock_reserve, stock_reserve_rule, stock_quant_manual_assign, stock_picking_unreserve_button, stock_move_auto_assign, stock_rule_reserve_max_quantity, product_expiry_assign14
stock-logistics-orderpointstock_location_orderpoint, stock_orderpoint_default_location, stock_orderpoint_generator, stock_orderpoint_manual_procurement, stock_orderpoint_move_link, stock_orderpoint_purchase_link, stock_orderpoint_mto_as_mts, stock_orderpoint_no_horizon, stock_orderpoint_uom, purchase_stock_product_replenish_supplier10

Les menus : Inventaire ▸ Opérations ▸ Stock Reservations et Transfers Allocations, Inventaire ▸ Analyse ▸ Affectations des mouvements, Inventaire ▸ Configuration ▸ Gestion de l'entrepôt ▸ Reservation Rules et Règle de réassort d'emplacement, Inventaire ▸ Configuration ▸ Produits ▸ Reordering Rule Templates.

Quatre quantités, pas une

Un produit a au moins quatre quantités, et les confondre produit des promesses qu'on ne tient pas : le stock physique, le stock non réservé, le disponible à promettre — qui tient compte des entrées attendues — et le disponible immédiat, qui ne compte que ce qui est déjà là.

stock_available ajoute une quantité disponible à la vente sur le produit et ses variantes, distincte du stock. stock_available_immediately l'affine pour ne compter que ce qui est immédiatement utilisable.

  • stock_available_unreserved (LGPL-3) rend visible la quantité non réservée, présente mais masquée dans le standard.
  • stock_free_quantity affiche cette quantité libre sur les fiches et les listes de produits.
  • stock_picking_product_availability_inline l'affiche dans la liste déroulante de sélection d'un produit — au moment où l'on en a besoin.

Exclure des emplacements

Trois modules permettent d'exclure des emplacements du calcul : une brique technique fournissant le mécanisme, sa variante pour le disponible immédiat, et un utilitaire de conversion de domaine.

L'exclusion d'emplacements est la correction la plus utile du lot : une zone de conditionnement, une zone de contrôle qualité ou un emplacement de litige contiennent du stock qui existe physiquement mais qu'on ne peut pas vendre. Le compter revient à promettre ce qu'on n'a pas.

Libérer les opérations sur disponibilité

stock_available_to_promise_release (version 18.0.1.7.0) libère les opérations en fonction du disponible à promettre, avec deux écrans — les affectations des mouvements et les affectations de transferts.

C'est la brique socle de la logistique avancée communautaire : les canaux de livraison en dépendent, et plusieurs modules de transport s'y raccordent.

  • sale_stock_available_to_promise_release intègre le mécanisme aux ventes, et sa variante au dépôt direct.
  • stock_available_to_promise_release_delivery est la colle vers la livraison.
  • stock_available_to_promise_release_dynamic_routing la colle vers le routage dynamique.
  • stock_available_to_promise_release_carrier_alternative ajoute une sélection avancée des modes d'expédition préférés.
  • stock_available_to_promise_release_exclude_location applique l'exclusion d'emplacements au mécanisme de libération.

Les canaux de livraison qui en dépendent sont traités dans canaux de livraison : lisser la charge d'un entrepôt.

La réservation, pièce par pièce

  • stock_reserve ajoute des réservations de stock sur produits, avec son menu Inventaire ▸ Opérations ▸ Stock Reservations.
  • stock_reserve_rule (version 18.0.1.2.2) configure des règles de réservation par emplacement : dans quel ordre et à quelles conditions prélever.
  • stock_quant_manual_assign permet l'affectation manuelle d'un quant à un mouvement.
  • stock_picking_unreserve_button ajoute un bouton de déréservation sur le transfert. README réduit à sa catégorie.
  • stock_move_auto_assign réserve automatiquement les mouvements quand la marchandise entre dans un emplacement.
  • stock_rule_reserve_max_quantity (LGPL-3) réserve la quantité maximale disponible quand un mouvement vient d'une règle de stock.
  • product_expiry_assign force la réservation des lots périmés.

La réservation automatique à l'entrée est le module qui débloque les ruptures : une commande en attente de stock se sert d'elle-même dès que la réception arrive, sans qu'un planificateur relance le calcul. C'est aussi ce qui permet de tenir une date de livraison recalculée.

Le forçage des lots périmés mérite une explication : il permet de réserver délibérément un lot périmé — par exemple pour le sortir vers un emplacement de rebut, ce que le comportement standard empêche.

Les règles de réservation par emplacement sont l'outil d'un entrepôt structuré : prélever d'abord dans la zone de picking, puis dans la réserve, et jamais dans la zone de litige.

Les règles de réassort

Une règle de réassort standard porte sur un produit et un entrepôt. Dans un entrepôt à zones, le besoin est inverse : réapprovisionner un emplacement — la zone de picking, le magasin avancé, le chariot d'atelier — avec tous les produits qui y sont rangés.

stock_location_orderpoint (version 18.0.2.0.0) déclare une règle de réassort sur un emplacement, permettant de réapprovisionner n'importe quel produit selon les mêmes critères. Menu sous Inventaire ▸ Configuration ▸ Gestion de l'entrepôt ▸ Règle de réassort d'emplacement.

ModuleCe qu'il apporte
stock_orderpoint_generatorUne configuration en masse par gabarits de règle
stock_orderpoint_default_locationUn emplacement par défaut distinct de l'emplacement de stock
stock_orderpoint_manual_procurementUn approvisionnement manuel depuis une règle, sans attendre le planificateur
stock_orderpoint_no_horizonLa prise en compte de tous les mouvements futurs, sans limite d'horizon
stock_orderpoint_uomL'unité de mesure de la règle respectée dans l'approvisionnement
stock_orderpoint_move_linkLe lien de la règle aux mouvements générés (LGPL-3)
stock_orderpoint_purchase_linkLe lien de la règle aux commandes d'achat (LGPL-3)
stock_orderpoint_mto_as_mtsLa matérialisation d'un besoin sur commande par une règle
purchase_stock_product_replenish_supplierLe fournisseur par défaut dans l'assistant de réapprovisionnement

La suppression de l'horizon est la correction la plus subtile : par défaut, le calcul ne regarde les mouvements futurs que dans la limite du délai de la règle. Un besoin au-delà n'est donc pas vu, et la rupture arrive à l'heure prévue.

Les deux modules de lien répondent à une question de diagnostic : pourquoi cette commande d'achat existe-t-elle. Sans eux, la réponse est « le planificateur l'a décidée », ce qui n'aide personne.

La méthode DDMRP, qui remplace ce mécanisme par des tampons, est traitée dans DDMRP : piloter le stock par tampons.

Limites connues

  • Deux modules ont un README réduit à leur catégorie : stock_picking_unreserve_button et stock_quant_manual_assign.
  • Quatre quantités coexistent : stock, non réservé, disponible à promettre, disponible immédiat. Choisir laquelle s'affiche où, sinon les équipes ne savent plus laquelle lire.
  • Le mécanisme de libération modifie la façon dont Odoo réserve : c'est un changement de fond, à éprouver sur une base de recette.
  • Il dépend de stock_warehouse_out_pull : une brique de flux sortant à installer d'abord.
  • L'exclusion d'emplacements doit être exhaustive : un emplacement oublié continue d'alimenter la promesse.
  • La réservation automatique à l'entrée dépend des travaux de fond (queue_job) : un travailleur arrêté et les réservations ne se font plus.
  • Les règles de réassort par emplacement se cumulent avec les règles produit : vérifier qu'elles ne se contredisent pas.
  • Supprimer l'horizon alourdit le calcul : il examine tous les mouvements futurs, sans limite.
  • stock_reserve_rule dépend de quatre modules dont les niveaux de conditionnement et les sous-emplacements.

Identité technique

Les trente-et-un modules viennent de trois dépôts OCA, branche 18.0 — stock-logistics-availability, stock-logistics-reservation et stock-logistics-orderpoint —, désormais tous documentés ici. Vingt-cinq sont en AGPL-3, six en LGPL-3. Les dépendances externes notables : stock_warehouse_out_pull, stock_dynamic_routing, stock_route_location_source, stock_location_is_sublocation, product_packaging_level, product_route_mto, product_expiry, base_partition, queue_job, stock_dropshipping et deux modules de transport.

Voir aussi canaux de livraison et DDMRP : piloter le stock par tampons.

Questions fréquentes

Combien de quantités un produit a-t-il dans Odoo ?

Au moins quatre, et les confondre produit des promesses qu'on ne tient pas : le stock physique, le stock non réservé, le disponible à promettre — qui tient compte des entrées attendues — et le disponible immédiat, qui ne compte que ce qui est là. Les modules de ces dépôts les calculent et les affichent.

Peut-on exclure une zone du stock vendable ?

Oui, par trois modules d'exclusion d'emplacements. C'est la correction la plus utile du lot : une zone de conditionnement, de contrôle qualité ou de litige contient du stock qui existe physiquement mais n'est pas vendable. Le compter revient à promettre ce qu'on n'a pas. L'exclusion doit être exhaustive.

Une commande en attente se sert-elle automatiquement à la réception ?

Avec stock_move_auto_assign, oui : les mouvements sont réservés automatiquement quand la marchandise entre dans un emplacement, sans relance du planificateur. C'est ce qui débloque les ruptures et permet de tenir une date recalculée. Il dépend des travaux de fond — un travailleur arrêté et les réservations ne se font plus.

Peut-on réapprovisionner un emplacement plutôt qu'un produit ?

Oui : stock_location_orderpoint déclare une règle de réassort sur un emplacement, réapprovisionnant tous les produits qui y sont rangés selon les mêmes critères. C'est le besoin d'un entrepôt à zones — zone de picking, magasin avancé, chariot d'atelier — que la règle produit ne couvre pas.

Pourquoi une rupture arrive-t-elle alors que la règle de réassort était bonne ?

Souvent à cause de l'horizon de calcul : par défaut, Odoo ne regarde les mouvements futurs que dans la limite du délai de la règle. Un besoin au-delà n'est pas vu. stock_orderpoint_no_horizon fait examiner tous les mouvements futurs — au prix d'un calcul plus lourd.

Se faire accompagner

Le disponible à promettre est le chiffre le plus consulté d'un ERP logistique et le plus souvent faux : il compte du stock en zone de contrôle qualité, il ignore un besoin au-delà de l'horizon, et il ne dit pas ce qui est déjà réservé. Trois corrections suffisent à le rendre fiable.

Nous commençons donc par exclure les emplacements non vendables et par vérifier l'horizon de calcul, avant d'installer quoi que ce soit d'avancé. Un chiffre juste vaut mieux qu'un mécanisme de libération posé sur un calcul faux. Voir les prestations d'Atalios Consulting ou demander un rappel.

Pour aller plus loin

En résumé

« Que peut-on promettre à un client » n'a pas de réponse simple : le stock physique n'est pas le disponible, le disponible n'est pas le non réservé, et une partie du stock est en zone de contrôle qualité. Trente-et-un modules répondent à cette question. Parlons de vos promesses de livraison.

Documentation OCALogistiqueOdoo Community

Partager

Fiches connexes

Baies de serveurs dans une salle machine
Le module OCA `queue_job` (dépôt `queue`, version 18.0.3.4.1, licence LGPL-3) ajoute à Odoo une **file de travaux de fond** avec ses canaux, ses fonctions et ses tâches, sous le menu **File d'attente des tâches** : c'est la brique dont dépendent plus de quarante modules communautaires, et la première à surveiller en exploitation. Vingt-six autres modules traitent les composants, la configuration hors base, l'impression serveur et l'IoT.
Lire la suite
Documentation OCA, Exploitation
Câbles réseau branchés sur un commutateur
Le module OCA `endpoint` (dépôt `web-api`, version 18.0.1.1.4, licence LGPL-3) permet de **déclarer un point d'entrée HTTP depuis l'interface**, sous **Paramètres ▸ Technique ▸ Endpoints** : une adresse, une méthode, un traitement — sans écrire de module. Vingt-trois autres modules traitent le cache, les imports par sessions, les échanges de factures et l'agenda.
Lire la suite
Documentation OCA, Intégration