Negative Stock Control
No stock, no movement
Blocks any inventory move that would push stock negative and explains why: what is on hand, what is being requested and in which location. It acts on confirmation, across deliveries, transfers, production and returns.
How you get it
Every development works in all three Odoo environments. The only thing that changes is how we deliver it.
Odoo Online (SaaS)
You do not need the ability to install modules. A Millora consultant comes in with temporary access that you authorize and implements it with Odoo Studio. When they are done, you revoke the access.
Odoo.sh or your own server
You receive the module and the installation guide by email as soon as payment clears. Install it yourself, or we install it with you.
Installation · shell
# 1 · copia el módulo a tu addons_path
cp -r millora_control_de_negativos /mnt/extra-addons/
# 2 · reinicia y actualiza la lista de apps
odoo-bin -u all -d tu_base --stop-after-init
# 3 · instala desde Apps
# busca "Negative Stock Control"What it solves
The problem
Odoo lets stock go negative. That is not a defect: it is a design decision so operations don't stop when data entry runs behind. The cost is that a typo in the warehouse is not caught in the moment — it surfaces weeks later, when somebody looks at a report and finds minus twenty units of something.
By then it is too late. The wrong move dragged costs with it, the valuation is skewed, and reconstructing what happened costs more than the original mistake. Worse: goods that did not exist were sold and promised, and somebody had to face the customer.
How it works
The module checks real availability at the moment the move is confirmed. If the outgoing quantity exceeds what is there, the operation does not go through: it stops with a message stating how much is available, how much is being requested and in which location.
That detail is what makes it usable. A block that only says "not allowed" sends people hunting for the number on another screen; one that says "there are 12 in WH/Stock and you are taking out 40" is solved on the spot.
Validation happens on the stock move, not on any particular document. That is why it covers everything that generates moves — sales deliveries, transfers between warehouses and locations, raw material consumption in production, returns to vendor, manual adjustments — with nothing to configure per process.
It evaluates availability in the move's actual location, not the company total. Stock sitting in another warehouse does not authorise taking it from where there is none. And if the product is tracked by lot, availability is measured per lot.
What it does not do
Worth being blunt here, because it decides whether this fits you.
It acts when someone confirms the operation. An automated process or an integration writing straight to stock does not pass through this validation.
It cannot be switched off from the interface. There is no toggle to disable it for an afternoon while a mess is cleaned up; it is an operational decision, not a day-to-day setting. Worth thinking through before installing.
It keeps no record of blocked attempts. It stops the move, but does not store who tried or how many times. If you need that trail, that is a different development.
And the message text can be adapted to your company's vocabulary, but that is a code change, not a configuration field.
What changes
Negative stock stops being possible by accident. The error is caught where it is made — with the person who made it in front of the screen and the number they need to fix it — instead of showing up weeks later as a discrepancy nobody can explain.
What's included
- Blocks, on confirmation, any move that would push stock negative
- States available quantity, requested quantity and location in the message
- Covers deliveries, transfers, production consumption, vendor returns and manual adjustments
- Evaluates availability in the move's own location, not the company total
- Measures availability per lot when the product is tracked
- Works from installation, with no setup per process or per product
- Respects permissions: an authorised profile can push a restricted move through
- Lets the message text be adapted to the company's vocabulary
Requirements
- Inventory module active
- Stock figures reasonably up to date: the block is only as good as the inventory it compares against
- Locations and lots properly configured if you work with detailed traceability
- Inventory permissions correctly assigned: they decide who may push a restricted move through
You might also need
Fulfillment Restock Calculator
How many units to ship to the marketplace warehouse, with numbers
Inventory & warehouse
Fulfilment Appointments
So the appointment doesn't fall through over something already known
Inventory & warehouse
Containers
You know what each unit cost you before the ship docks
Inventory & warehouse

