Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Point of Sale
  3. POS Restrict Negative Inventory v 19.0
  4. Sales Conditions FAQ

POS Restrict Negative Inventory

by Crowe Maldives LLP https://www.crowe.mv
Odoo

$ 4.99

In-App Purchases
v 19.0 Third Party
Apps purchases are linked to your Odoo account, please sign in or sign up first.
You bought this module and need support? Click here!
  • Description
  • Manifest

POS Restrict Product Stock

Stop selling what you do not have at the register

Block or warn when cashiers add products beyond stock at the Point of Sale. Stock is checked against the POS shop source location using on-hand or available quantity. Choose strict blocking or a warning with Order Anyway, and exempt individual products when negative sales are allowed.

Key Features

Out-of-Stock Restriction

Prevent adding products when stock at the POS warehouse location is zero or insufficient. Applies when tapping a product or increasing quantity on an order line.

Strict or Warning Mode

Fully Restrict blocks the line completely. Warning Only shows a popup with Order Anyway so a supervisor can override when needed.

Per-Product Override

Enable Allow Negative Sales on specific products to bypass the global restriction for items that may sell below zero.

How It Works

Configure the POS, then sell with stock checks at the counter

Stock settings on the POS

Open Point of Sale → Configuration → Settings, select your shop, and use the Stock Configuration section. Enable restriction, choose On Hand or Available quantity, and pick Fully Restrict or Warning Only mode.

POS settings stock configuration
Strict stock restriction popup in POS

Blocked when fully restricted

In Fully Restrict mode, adding a product beyond stock opens a Product Stock Issue dialog showing on-hand, available, customer requested quantity, and extra requested units. The cashier can only Cancel — the line is not added until stock allows it.

Override in warning mode

In Warning Only mode, the same popup appears but includes Order Anyway. The cashier can proceed when a manager-approved exception is needed, or dismiss with Cancel.

Warning mode stock popup with Order Anyway
Allow Negative Sales on product form

Product-level exception

On the product form, enable Allow Negative Sales for items that should always be sellable at the register regardless of the global restriction. Those products add to the order without triggering the stock popup.

Configuration

POS settings and product exceptions

  1. Install the module (requires point_of_sale and stock).
  2. Confirm your POS has an inventory operation type with a source location (the warehouse stock the register draws from).
  3. Go to Point of Sale → Configuration → Settings and select your shop.
  4. Under Stock Configuration, enable Restrict Product Out of Stock in POS.
  5. Set Stock Type (on-hand vs available) and Restriction Mode (strict vs warning).
  6. On products that may sell below zero, enable Allow Negative Sales on the product form.
  7. Close and open a new POS session after changing settings.
Stock checks use quantities at the POS operation type source location (for example WH/Stock), not company-wide totals. Ensure test products have stock at that location.

Benefits

Fewer oversells

Cashiers get immediate feedback at the counter instead of discovering stock problems after payment or during picking.

Location-aware

Restrictions follow the POS shop warehouse location, so multi-shop setups can enforce stock per register correctly.

Flexible enforcement

Switch between hard blocks and supervisor override per POS configuration without custom development.

Granular exceptions

Exempt specific products with Allow Negative Sales while keeping the restriction active for everything else.

Feature Summary

At the register

Stock check when adding a product to the order.

Stock check when increasing quantity on an order line.

Product Stock Issue popup with on-hand, available, customer requested, and extra requested quantities.

Order Anyway in warning mode; line blocked in strict mode.

Behind the scenes

pos.config fields: is_restrict_product, stock_type, stock_restriction_mode.

Stock read from stock.quant at the POS source location via get_product_stock_for_pos.

product.template.allow_negative_sales bypasses restriction per product.

OWL popup and PosStore / PosOrderline patches for add-line and qty-change flows.

Technical Details

Server side

  • pos.config — restriction flags and stock type; settings synced from Point of Sale → Configuration → Settings.
  • pos.session — resolves the stock location for the current POS register.
  • product.template / product.product — allow_negative_sales and kit stock helpers when MRP phantom BoMs are present.

Front end (OWL)

  • Patches PosStore.addLineToOrder to intercept product adds and run stock checks.
  • Patches PosOrderline.setQuantity to validate quantity increases against available stock.
  • RestrictStockPopup dialog for out-of-stock and exceeding-stock scenarios.

Compatibility & Dependencies

Version

Built for Odoo 19.0, compatible with Community and Enterprise.

Dependencies

Requires point_of_sale and stock. Kit product checks use mrp when installed.

Support

Brought to you by Crowe Maldives LLP

Author

Crowe Maldives LLP

Website

www.crowe.mv

Support

info@exponent.mv

Licensed under AGPL-3.

Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Inventory (stock)
• Point of Sale (point_of_sale)
• Discuss (mail)
• Invoicing (account)
Lines of code 1177
Technical Name crowe_pos_restrict_product_stock
LicenseAGPL-3
Websitehttps://www.crowe.mv

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with