Les étapes en détail
Lire le message
En français, Odoo affiche une fenêtre Opération invalide : « La quantité de produit débloquée ne peut pas être supérieure à la quantité en stock. ». C'est la traduction de « It is not possible to unreserve more products of produit than you have in stock. », le texte que l'on retrouve sur le forum d'Odoo. Le message est le même en V20, V19 et V18. Il vient du fichier stock_quant.py du module Inventaire.
Comprendre la cause
Odoo tient deux comptes de la réservation. Chaque ligne d'un transfert dit combien d'unités elle a réservées. Le stock d'un emplacement (le « quant ») garde de son côté le total réservé. Le message apparaît quand Odoo veut retirer d'une réservation plus d'unités que le stock de cet emplacement n'en a d'enregistrées comme réservées. Les deux comptes ne concordent plus. Dans l'exemple : la livraison porte déjà, dans WH/Sortie, plus de chaises que la préparation n'en apporte, et le stock de WH/Sortie en compte moins comme réservées que ses lignes. Odoo ne crée pas cet écart lui-même en usage normal : une ligne saisie à la main réserve aussi sur le stock. Il vient de données déjà fausses (import, correction directe, base migrée). Odoo prévoit lui-même ce cas : il a une routine qui remet le total réservé du stock au niveau des lignes de transfert.
Savoir quand il apparaît encore
En Odoo 20, le message n'apparaît plus en standard : le calcul de réservation retire ce que le transfert a déjà réservé avant de ne garder que les quantités positives, et ne demande donc jamais de « dé-réservation ». Il ne peut venir que d'une base migrée avec des réservations déjà fausses, d'un module tiers ou d'un cas d'arrondi d'unités. Malgré son nom anglais, il ne vient plus non plus du bouton Annuler la réservation en V18, V19 et V20 : à l'annulation, la quantité réservée du stock est ramenée à zéro au minimum, sans erreur. En V19 et V18, seul le calcul de réservation d'une opération qui en suit une autre peut encore demander une telle « dé-réservation ». C'est le cas d'un entrepôt réglé en Choisir puis livrer (2 étapes) : valider la préparation (type Transfert, numéros WH/PICK/) fait réserver aussitôt la livraison WH/OUT/ qui suit. Le message s'affiche alors à la validation de la préparation, ou au clic sur Réserver de la livraison.
Odoo 19Le message reste possible en standard : la soustraction de ce que la livraison a déjà réservé se fait après le filtre des quantités positives, le résultat peut être négatif. Le bouton de la livraison s'appelle Vérifier la disponibilité.Odoo 18Comme en V19.Réaligner les réservations
Ouvrez Inventaire › Opérations › Inventaire physique. Il n'y a rien à saisir : à l'ouverture de cet écran, Odoo fusionne les doublons de stock et recalcule le total réservé de chaque produit et emplacement d'après les lignes des transferts en cours. Les quantités en stock ne changent pas. La même routine tourne aussi une fois par jour, avec la tâche planifiée du réapprovisionnement.
Odoo 18L'écran s'ouvre sous le titre Ajustements d'inventaire, même menu.Refaire l'opération
Revenez au transfert qui a échoué (la préparation est dans Opérations › Transferts › Interne) et refaites le même geste : Valider, ou Réserver sur la livraison. Pour repartir de lignes vides sur un transfert, ouvrez le menu Actions (icône ⋮ à côté du numéro) et choisissez Annuler la réservation : il n'y a pas de bouton dans l'en-tête du formulaire.
Odoo 19Le menu Actions a une icône ⚙ et le bouton de réservation s'appelle Vérifier la disponibilité. Dans la liste des transferts, Annuler la réservation est un bouton en haut de la liste quand des lignes sont cochées.Odoo 18Comme en V19. Dans la liste, Annuler la réservation est aussi dans le menu Actions.Si le message revient
Comptez le produit dans Inventaire physique : une quantité en stock fausse fausse aussi la réservation. Vérifiez ensuite le paramètre système stock.skip_quant_tasks (Paramètres › Technique › Paramètres système, mode développeur) : activé, il coupe le recalcul à l'ouverture de l'inventaire. Si l'erreur persiste malgré tout, la cause est dans les données (import, base migrée) et demande un diagnostic : Kameos peut s'en charger.
Odoo 19Le paramètre coupe le recalcul dès qu'il porte une valeur, quelle qu'elle soit, même « False ».Odoo 18Comme en V19.
Ce qui change selon la version
| Odoo 20 | Odoo 19 | Odoo 18 | |
|---|---|---|---|
| Menu Actions du formulaire | icône ⋮ | icône ⚙ | icône ⚙ |
| Bouton de réservation | Réserver | Vérifier la disponibilité | Vérifier la disponibilité |
| Annuler la réservation en liste | menu Actions | en-tête | en-tête + Actions |
| Titre de l'écran d'inventaire | Inventaire physique | Inventaire physique | Ajustements d'inventaire |
| Message possible en standard | non | oui | oui |
| Texte du message | identique | identique | identique |