Reserve stock before it's gone
A pre-confirmation reservation ledger for Odoo Sales that locks stock to a customer the moment you quote it — so nothing gets double-promised between quotation and confirmation.
The problem
Odoo only reserves inventory after a sales order is confirmed. Between quoting an item and confirming the order, the same stock can be quoted to another customer — leading to overselling, broken delivery promises, and sales teams tracking manual holds in spreadsheets.
The solution
Product Reservation System adds a first-class pre-confirmation hold: reserve stock the moment you quote it, see reserved-vs-available on every order line in real time, and release it automatically if the deal falls through or the hold expires.
Everything you need to stop overselling
Every capability below is implemented in the module.
Reserve at Quotation Stage
Lock stock to a customer before the sales order is confirmed, with a one-click Reserve action on the order or on an individual reservation record.
Overselling Block, Full or Partial
Every reserve request is checked against real free stock net of existing holds. Choose to block requests that exceed availability or automatically reserve the partial quantity on hand.
Reserved vs. Available on the Order Line
See reserved quantity, remaining availability, and a colour-coded status badge directly on each sales order line — no wizard required to know what is committed.
Full Lifecycle with Expiry and Undo
Reservations move through draft, reserved, done, expired, and cancelled states. A configurable hold period auto-expires stale reservations, and a short undo window lets staff reverse a mis-click.
Auto-Reserve and Auto-Release Automation
Optionally reserve stock the instant a quotation is sent, and choose per order whether confirming it releases the hold automatically or leaves it in place — with an in-app banner showing which rules are active.
Bulk Reserve, Release, and Expire
Apply Reserve, Release, Expire, or Mark Done to any selection of reservations at once from the list view, instead of updating them one by one.
Full Chatter Audit Trail and Notifications
Every reserve, release, expiry, undo, and lay-by payment event is logged to the reservation and sales order chatter, with configurable staff notifications and a customer confirmation email.
Lay-by and Deposit Milestones
Track deferred-payment reservations against a payment milestone schedule, distinct from standard holds, to support layaway and deposit-based sales.
Drill-Down Reporting and Customer Portal
A pivot and graph report breaks down reservations by product, warehouse, and customer, with reserved-vs-delivered discrepancy tracking; customers can view their own active reservations from the portal.
How it works
Quote and Reserve
Add products to a quotation and reserve stock with one click, or let auto-reserve trigger when the quote is sent.
Track in Real Time
Watch reserved quantity, availability, and status update live on the order line and the product record as holds are placed.
Confirm or Release
Confirm the order to hand off to standard delivery reservation, or release the hold instantly if the deal changes.
Review and Report
Audit every action in the chatter, and use the pivot/graph report to review reservations by product, warehouse, and customer.
Frequently asked
No sales fog. If your question isn't here, email us and we'll answer it the same way.
No. This module adds a separate pre-confirmation reservation ledger for the quotation stage. Odoo's native stock reservation on the delivery still runs as normal once the order is confirmed.
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.
Product Reservation System
Reserve and hold stock for a quotation before confirmation — with overselling protection, lay-by/deposit milestones, configurable expiry, and a customer portal for reservation visibility.
Buy on Odoo App Store