OdooWiki OCA HUB

Sale Stock Prebook

sale_stock_prebook folder_open OCA/sale-prebook open_in_new
Uncategorised License: LGPL-3

Add process to prebook a sale order's stock before confirming it

auto_awesome What this module does

AI-generated from the code · Odoo 18.0

This module lets you reserve stock for a draft or sent quotation before confirming it, so you can secure inventory early. It adds Reserve Stock and Release Reservation buttons on the sale order form.

On a draft or sent quotation, you can click "Reserve Stock" to prebook the products. This creates internal stock moves that reserve the goods without confirming the sale order. The button is only visible when the order is not yet confirmed and stock is not already reserved. Once reserved, a "Release Reservation" button appears to cancel the reservation and free the stock.

The reservation uses a separate procurement group and marks the generated stock moves with a flag so they are not picked or assigned like normal deliveries. You cannot mark a reservation move as picked; Odoo will block it with an error.

You can exclude certain products from prebooking by setting the "No Prebook Stock" option on a stock route. If a product uses that route, its lines will be skipped when reserving.

For advanced configuration, stock rules now have a "Prebook Picking Type" field. If set, reservation moves will use that operation type instead of the default one. This is useful to separate reservation moves from regular delivery moves.

The sale order form shows a computed indicator (stock_is_reserved) that tracks whether a reservation exists. The forecasted report also hides reserved quantities from the available stock calculation, so you see the real availability.

When you confirm the sale order or cancel it, any existing reservation is automatically released first.

Depends on

sale_stock
Models and fields (5)
  • sale.order · extends an existing modelstock_is_reserved
  • stock.move · extends an existing modelused_for_sale_reservation
  • stock.rule · extends an existing modelprebook_picking_type_id
  • stock.route · extends an existing modelno_sale_stock_prebook
  • sale.order.line · extends an existing model

Text generated by AI (DeepSeek) from reading the Odoo 18.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 3 confirmed, 6 with no information of 9 versions.

Sources · Odoo 16.0

Confirmed on 2026-11-03 in branch 16.0 of OCA/sale-prebook.

terminal Installation and usage

OCA documentation · Odoo 18.0

On the sale.order view you will find two new buttons "Reserve Stock" and "Release reservation" which are only shown if the state is in "Quotation" or "Quotation Sent".

The reservation creates the picking/moves via a procurement run by placing a real move.

No verified information in OCA: Installation, Configuration.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.