Never oversell in Point of Sale again
Hard-block POS sales that would drive stock below zero, show cashiers live availability right on the product card, and log every blocked attempt for managers to review.
The problem
Odoo POS lets cashiers ring up items with zero or negative on-hand stock by default. A busy shift can oversell for hours with no live signal, promising customers goods that do not exist and quietly dragging inventory valuation away from reality — often thousands of euros of drift within weeks.
The solution
This app adds a real-time, un-bypassable stock guard to the POS. Cashiers see live availability before adding an item, oversells are hard-blocked (or warned) at the point of sale and again on the server, and every blocked attempt is logged so managers can prove what was prevented.
Everything you need to stop overselling
Every capability below is implemented in the module.
Hard stock enforcement
Blocks sales that would drive a product's stock to zero or below, enforced client-side for instant feedback and again server-side in order processing so it can never be bypassed.
Configurable block or warn mode
Choose hard-block or warn-only per point of sale, pick on-hand or forecasted quantity as the basis, and set a low-stock highlight threshold.
Live stock badges on product cards
Every POS product card shows a live available-quantity badge, color-coded green, amber, or red, so cashiers see availability before they ever tap the item.
Actionable block dialog
When a sale would oversell, a clear dialog states the exact requested-vs-available gap instead of a generic "cannot proceed" message.
Per-product negative-stock exemption
A first-class "Allow Negative Stock in POS" checkbox on the product form for gift cards, preorders, and made-to-order items.
Per-category negative-stock exemption
Apply the same exemption at the product category level to whitelist an entire family of products in one place, no per-product setup required.
Full audit trail of blocked attempts
Every blocked or warned sale is logged with cashier, product, location, timestamp, and requested vs available quantity — the reconciliation evidence finance needs.
Audit list and form views
Browse the block log with color-coded list decorations and an action badge, or drill into any single blocked attempt for full detail.
Pivot reporting by category and action
Roll up shortfall quantity by product category and enforcement action under Point of Sale Reporting to quantify exactly how much loss was prevented.
How it works
Enable and configure
Turn on Prevent Negative Stock per point of sale, choose block or warn, and set the low-stock threshold in Settings.
Exempt legitimate negatives
Mark gift cards, preorders, or an entire category as allowed to sell past zero.
Cashiers see stock live
The POS product screen shows a live stock badge on every card, so cashiers see the on-hand quantity before adding to the order.
Every block is logged
The moment a sale would go negative, it is blocked or warned and the attempt is written to the audit log for managers to review.
Frequently asked
No sales fog. If your question isn't here, email us and we'll answer it the same way.
No. The check runs client-side for instant feedback and again server-side when the order is processed, so a blocked sale cannot be forced through by editing the order or retrying.
Buy it on the Odoo App Store
Purchase, download and install directly from the official Odoo Apps Store — you'll always get the latest supported build.
POS Prevent Negative Stock — Enforce, Inform & Audit
Real-time stock enforcement at the register in block or warn mode, with live badges on product cards, per-product and per-category exemptions, and every blocked attempt logged and reportable.
Buy on Odoo App Store