When ERPNext stock reservation against sales orders protects committed stock
Holding scarce stock for a named customer is a commitment that the system has to enforce. Imagine a distributor with a few units of a fast-selling item left and two customers waiting for them (illustrative). Without a hold, whichever transaction is posted first draws the stock, and the other customer finds out at delivery. ERPNext stock reservation sets aside on-hand quantity of an item in a warehouse against a specific document, so other transactions draw only from the unreserved balance. The feature is available since version 15 and can originate from four places: sales orders, pick lists, production plans and work orders. Each origin answers a different question: who the stock is for, which units are being picked, which production demand is covered, and which job consumes components.
Distributors that take allocation commitments from key accounts and manufacturers that sell make-to-order usually need this first, because their sales orders often outrun available stock. The decisions come before configuration. Decide which origin should hold stock, whether reservation should happen at order confirmation or only when a pick list is prepared, and which warehouses may supply a reservation. Reserving too early can lock stock that operations needs for an urgent order, while reserving too late leaves the commitment open. Write the rule down per item group. For the work order origin, the stock reservation for work order documentation describes how components are held. Confirm in your version how partial reservations, cancellations and later stock adjustments are handled.
Reservation only protects stock that the system can see, so the starting balance matters. Damaged, miscounted or unrecorded units stay available in the books while the shelf tells a different story, and a reserved quantity can be promised twice in practice. Before go-live, run a physical count for the items you plan to reserve, reconcile it with the stock ledger, and test three flows on a staging site: a full reservation, a partial delivery and a cancelled sales order. Planners who use production plans should read the stock reservation for production plan page against your bill of materials and work order process, then agree which origin each team will use so reservations do not overlap.
Where ERPNext stock reservation can start
Stock reservation in ERPNext can begin on four different documents, and each one holds stock for a different purpose and at a different point in the order cycle. Choosing the entry point deliberately decides which quantity is protected, who can release it, and whether the held stock is tied to a customer order or to a production plan.
Sales orders
A reservation created from a sales order holds stock for one named customer order, so the quantity is protected from other demand as soon as the order is submitted with reservation enabled. Check that the reserve-stock option is on the order line, that the warehouse on each line is the one you intend to draw from, and that the item is stock-managed. Partial deliveries and later amendments change the reserved quantity, so confirm how the reservation moves when the order is revised.
Pick lists
A pick list reserves stock when the warehouse team prepares an order for dispatch, which suits teams that allocate stock later than order entry. Check which sales orders the pick list draws from, the batches or serial numbers it selects, and whether the reservation matches the quantity actually picked. A pick list that is created but never submitted may leave the picking plan out of step with what is physically on the shelf.
Production plans
A production plan can reserve raw materials and components for planned manufacturing, so the stock is held before any work order exists. Check the item list, the warehouse for component stock, and whether the plan is set to reserve materials for the sub-assemblies it generates. Confirm with your planning team which quantities are firm and which may still change, because reservations held for a plan that is later revised must be adjusted.
Work orders
A work order reserves the components a specific production run consumes, so materials are held for one manufacturing job rather than for a forecast. Check that the bill of materials is correct for the run, that the source warehouse for components is set, and that the reserved quantities match the planned production quantity. Reservations on work orders should be reviewed when the order is cancelled or the quantity changes, since held stock returns to available only when those documents are updated.
Stock reservation options and when each fits
This table compares the stock-level switch and the three places where reservations originate: sales orders, pick lists, and production documents. Read each row as a decision: which document holds the stock, who usually creates it, and whether that matches how your warehouse commits goods to customers and production.
| Entry point | Typical creator | What it protects | When it fits |
|---|---|---|---|
| Stock settings: enable stock reservation | Implementation lead or ERP administrator | Turns on reservation behavior for the whole site so that other entry points can create reservations. Confirm the exact field name and location in your version. | Every site that wants to hold stock for specific orders or production rather than leaving it open to any demand |
| Sales order reservation | Sales or order management staff | Quantity committed to a named customer order, visible against the item and warehouse before delivery is created | Customers who expect confirmed availability at order entry and where sales orders are the main commitment point |
| Pick list reservation | Warehouse supervisor or picker planning a wave | Stock allocated to the pick list while picking is planned, so a second wave does not claim the same units | Warehouses that release orders in batches and need stock committed before the physical pick starts |
| Production plan reservation | Production planner | Raw materials and components held for planned production across the sales orders or material requests in the plan | Manufacturers running periodic planning where shortages should surface before shop floor release |
| Work order reservation | Production supervisor or planner | Components held against a specific work order, protecting the quantities needed for that job | Make-to-order or repetitive production where each job needs its components held until consumption |
| Reservation without a linked order | Warehouse or inventory controller | Stock held by manual entry that is not tied to a customer order or production document, which makes the hold harder to trace | Rarely recommended. Use only where your policy allows holds with a documented reason and an owner who reviews them |
How to set up stock reservation in ERPNext 15 and later
This sequence takes a team from confirming its ERPNext version through enabling reservation, then testing sales order, pick list, production plan and work order reservations one at a time on a sample item and warehouse. Each step closes with a check so the reserved quantity is verified before go-live.
Confirm the ERPNext version and test site
Confirm that the site runs ERPNext version 15 or later, because stock reservation is documented as available from that version onward. Check the version on the About page inside ERPNext and confirm it matches a version listed on Frappe's supported versions page. Make these checks on a staging copy, not production. The step is done when the version is recorded in your test plan and the site is confirmed as a non-production environment.
Enable stock reservation in stock settings
An administrator opens Stock Settings and turns on the option that allows stock to be reserved, then saves. Reservation behavior, including whether reserved stock is excluded from available quantity, depends on how your stock settings are configured, so confirm the exact field labels and effects against the ERPNext documentation for your version. The step is done when the setting is saved and a second user with stock permissions can see the change after reloading the form.
Create a sample item, warehouse and stock balance
Create one test item that is tracked in stock, a dedicated test warehouse, and a stock entry that places a known quantity of that item in the warehouse. Keeping the item and warehouse isolated makes the reservation results easy to read. The step is done when the stock ledger or stock balance report shows the expected quantity for that item in that warehouse, and you have written down the starting figure.
Test a reservation from a sales order
Create a sales order for a test customer that orders part of the sample stock, and submit it with reservation enabled. Confirm the reservation is created against the sales order rather than only as a note. The step is done when the reserved quantity appears against the correct item and warehouse in the stock reservation view, and the available quantity drops by the same amount. Then cancel or close the order and confirm the reservation is released.
Test reservation through a pick list
Create a pick list from the test sales order and check whether the reserved stock is used for picking from the reservation. Pick a quantity that is partly reserved and partly unreserved, and observe which stock the pick list draws from. The step is done when the pick list lists the expected batches or locations and the reservation balance updates after the delivery note is created or the pick is completed. Record any mismatch before moving on.
Test reservation for a production plan
Create a production plan with a sample finished good whose bill of materials uses the test component, and confirm whether the component stock is reserved for the plan. Run this test separately from the sales order and pick list tests, so a failure can be traced to one feature. The step is done when the reserved component quantities appear against the correct warehouse, and the figures match the planned material requirement shown in the plan.
Test reservation for a work order
Create and submit a work order from the same bill of materials, and check that the required components are reserved against it. Then start and complete a stock entry for manufacturing or part of the work, and confirm the reservation reduces as material is consumed. The step is done when the work order reservation shows the correct balance at each stage and the stock ledger matches the consumption. Document the final state and repeat the full test set with your real item types, such as batch or serial tracked items, before go-live.
Trade-offs of reserving stock before it ships
A reservation reduces the quantity available for other orders while the physical stock stays exactly where it is. The bin count does not change, so a warehouse walk will still show the units on the shelf, but the sellable quantity that new sales orders and pick lists see is lower. Before enabling reservation, the team should decide which customers, item groups or order types justify holding stock, because every reserved unit is unavailable to everyone else until it is delivered, released or reassigned. Sales should understand that a reserved quantity can block a new order that would otherwise have been accepted, and the people who take those orders need a clear route to escalate.
The operational cost appears when the underlying order changes. A cancelled sales order, a reduced quantity, or a short shipment all leave reservation records that must be released or adjusted, and a missed step means stock stays locked for a customer who no longer needs it. Partial deliveries are the most common source of confusion, because the remaining reserved quantity has to be reconciled against what was actually shipped. Ask the implementation partner to document who releases reservations after each amendment, how the team finds reservations left open after a short shipment, and whether any reserved stock can be moved to another order without a manual workaround.
Reserving for key customers protects service levels, but it also shifts risk onto other sales and onto planning. Finance needs to know whether reserved quantities affect the reported stock position, valuation or any availability figure used in budgets, and planning needs to know whether reserved stock is excluded from the supply the production schedule sees. Confirm these points with your own finance and planning leads and test them on sample data before go-live, since the answers depend on your reporting configuration and not only on the reservation feature itself.
Access, approvals and operational controls for reservations
Reservations hold stock that other orders cannot take, so who creates, changes and releases them matters as much as how they are set up. The four controls below cover access, review when sales orders change, the effect of backdated stock entries and the audit trail. Confirm each one against your own role setup and the documentation for your ERPNext version.
Roles that create, amend and release
Decide which roles may create a reservation, change its quantity or warehouse, and release it back to free stock. Reserving stock for a customer is a commitment, so releasing it should not sit with every sales user by default. Check the standard role permissions for stock reservation entries in your version, then test each role in a staging site with a user who holds only that role. Document who approves exceptions, such as reserving stock that is already committed to another order.
Review when sales orders change
A reservation is tied to a sales order, so a change to quantity, item or delivery date can leave the reserved amount out of step with demand. Decide whether changes to a submitted sales order require someone to review linked reservations, or whether the system adjusts them automatically. Confirm how amendments, cancellations and partial deliveries affect the reserved quantity in your version, and write down the review step your sales and warehouse teams follow.
Backdated stock entries and reserved quantities
A backdated receipt, transfer or stock reconciliation can change the stock position at a date that already has reservations against it. Confirm how ERPNext validates available quantity for reserved stock when entries are posted with earlier dates, and whether a reservation can end up covering more than the physical balance. Agree a rule for who may post backdated entries against warehouses that hold reserved stock, and check the stock reposting settings with your accountants before go-live.
Auditing reservation activity
Reservations change stock availability for customers, so you need to know who created, changed or released them and when. Confirm which version history and document logs ERPNext keeps for stock reservation entries, how long they are retained on your deployment, and which reports let a reviewer trace a reservation back to its sales order and the delivery that consumed it. Test that an auditor can answer the question of who released a reservation without database access.
Questions buyers ask about ERPNext stock reservation
Can our own team configure stock reservation in ERPNext?
Yes, a team with an ERPNext administrator and someone who knows the stock process can switch on reservation and test it on a non-production site. The configuration itself is a settings change, so the effort lies in deciding which transactions should reserve stock, which warehouses are in scope and who may release or change a reservation. Teams that already run ERPNext stock workflows usually find the setup straightforward. Teams without that experience, or with several companies and warehouses, should expect more time on the design questions. Ask a partner to show you the reservation rules they would apply to your own sales orders before you decide.
What drives the effort of implementing stock reservation?
The main drivers are the number of item groups and warehouses that need reservation, how many sales channels create orders, and whether reservations must also flow from pick lists and production plans. Each path needs its own test cases. Data quality matters too: stock balances, batch and serial records and open sales orders must be accurate before reservation starts to hold real stock. Custom sales or production workflows add more work because they must respect the same reservation logic. Ask for the written scope to list each document type, warehouse and item group covered, with the test plan for each.
What do our inventory and sales staff need to provide?
Inventory staff need to confirm how stock is held today, including which warehouses count as available, how partial deliveries are handled and who decides when a reserved quantity is released. Sales staff need to explain which customers or order types deserve priority, and how exceptions are approved. Both groups should review sample orders during testing so the reservation behavior matches real practice. Plan time for these reviews, because unclear rules are the most common reason reservations are later disabled or ignored. Ask the implementation partner for a list of decisions they need from each team before build work begins.
Does stock reservation work with existing stock after upgrading to version 15?
Reservation is a feature of ERPNext from version 15 onward, so an upgrade is the starting point, not a migration of old reservations. Existing stock balances stay in place, but open sales orders and work orders created before the upgrade should be reviewed before you enable reservation, because their quantities may not reserve as expected. Confirm with your upgrade partner how existing open orders will be treated and test them on a copy of your production data. Check the ERPNext documentation for the exact settings that apply to your version before you change production behavior.
How do stock reservations interact with pick lists?
A reservation holds stock for a specific sales order, and a pick list then selects the physical batches or serials to fulfil it. The two steps must agree, so the pick list should draw from the stock reserved for that order, not from stock held for another customer. Test partial picks, cancelled orders and reservations that are released after a pick list has been created. Warehouse staff need a clear rule for which reservation is used first when stock is short. Confirm this behavior against the current ERPNext documentation and your own warehouse process before go-live.
What should a partner quote for stock reservation include?
A useful quote states the scope in writing: which document types reserve stock, which warehouses, item groups and companies are covered, and whether production plans and work orders are included. It should list the design workshops, configuration steps, test cases, data checks, user training and the go-live support. It should separate one-time work from any recurring support or upgrade retainer, and state which items the client must provide, such as stock data and approvers. Ask how changes to scope are priced and how testing results are signed off. Fixed scope, agreed in writing before work starts, makes these items easier to compare across quotes.
Limits to confirm in your environment before go-live
Stock reservation touches item setup, warehouse design, serial and batch handling, version support and custom code at the same time. Each limit below can change whether reservation works as your sales and production teams expect, so confirm them against your own data and your chosen release before you configure anything for live orders.
Supported item types and warehouses
Confirm which item types, stock items and warehouse setups the reservation feature accepts in the version you run. Check whether items you sell as bundles, templates or variants reserve the way your team expects, and whether reservations can draw from every warehouse your sales orders ship from. Test one item from each category with a real warehouse layout before you rely on it for customer commitments. Ask your implementation lead to write the results down.
Serial and batch tracked items
Reserving serialized or batch tracked items is the most common place where expected and actual behavior diverge. Confirm whether a reservation holds specific serial numbers or batches, what happens when a batch reaches expiry before delivery, and how a reservation interacts with the Serial and Batch Bundle that records movements. Run a test with one batch that is partly reserved and one that is fully consumed, then check the stock ledger and reservation list after each step.
Behavior in your release line
Reservation behavior, field names and document flows can differ between major versions and between minor releases within a line. Note the exact version and minor release your team will run, read its release notes for stock and manufacturing changes, and repeat your test cases on that exact build. Do not assume that a feature described in current documentation exists in the release you deploy until your own test confirms it.
Support window for your version
Check how long your chosen version remains supported on Frappe's supported versions page before you commit a production calendar. Version 14 has already reached end of life, so a stock reservation design built on it needs an upgrade plan from the start. Ask who will apply security and bug fixes after the support date, and whether a planned upgrade would change reservation behavior and require retesting.
Interaction with custom scripts
If your team added server scripts or client scripts that create or change sales orders, work orders or stock entries, reservations may behave differently. Server Scripts are disabled by default from version 15 and must be enabled with server_script_enabled, and public shared benches on Frappe Cloud do not allow them. Confirm which hosting option you use, whether scripts are permitted, and test every custom flow that touches a reservation before go-live.
How DeployOpen scopes and delivers ERPNext stock reservation
DeployOpen plans, implements, customizes, tests and documents ERPNext stock reservation inside your own infrastructure, from the first review of your sales and production flows to the handover of a working setup. Each engagement starts with a written scope that defines which reservation paths your teams will use and how they will be verified.
How we scope
- Map which sales orders, pick lists and production documents will hold stock for named customers.
- Confirm the ERPNext version in use and the reservation features it supports before any build work.
- Agree deliverables, test cases and timelines in writing, since most engagements are fixed-scope.
How we build
- Enable stock reservation in stock settings and configure warehouses, items and reservation rules as agreed.
- Set up reservation from sales orders, pick lists, production plans and work orders in a staging environment.
- Test partial reservations, cancellations and stock movements against the agreed acceptance cases.
How we hand over
- Deliver a configuration record, role setup and documented steps for each reservation path.
- Walk through the operating procedure with warehouse, sales and production staff who will use it.
- Provide runbooks for reviewing reserved stock and resolving conflicts after go-live.
How we support
- Offer ongoing support, upgrades and reviews of reservation behavior as a retainer if you want it.
- Re-test reservation flows when you upgrade ERPNext or change your sales and production processes.
- Confirm with your team which support scope and response arrangements fit your operating model.

