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.

Capabilities

Everything you need to stop overselling

Every capability below is implemented in the module.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

07

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.

08

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.

09

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.

Workflow

How it works

1

Enable and configure

Turn on Prevent Negative Stock per point of sale, choose block or warn, and set the low-stock threshold in Settings.

2

Exempt legitimate negatives

Mark gift cards, preorders, or an entire category as allowed to sell past zero.

3

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.

4

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.

Questions

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.

Get the app

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