When ERPNext blanket orders fit a long-term supply agreement
Your team has agreed an annual rate with a supplier or customer, but the goods will arrive in releases over several months, and each release needs to be ordered, received or invoiced at that rate. In ERPNext, a Blanket Order is the record for that commitment. It holds the items, the agreed period and the negotiated rates, so the agreement lives in one place instead of being retyped into every purchase order or sales order. The key point for planning is that a Blanket Order does not deliver, receive, bill or pay on its own. Downstream transactions reference it and draw quantities from it as each release happens, and the ordered versus committed quantity is what you watch between them.
Use a Blanket Order when the commitment is a volume and price agreement that spans a defined period and the timing of each delivery is not yet known. If every order is priced fresh from a price list, or each release is a one-off purchase with no agreed total, ordinary purchase orders or a standing price list are simpler. Before you configure anything, confirm with your commercial team which items, units of measure, rates and validity dates the contract actually fixes, and whether the agreement sets a maximum quantity, a minimum commitment or both. Those terms determine how the record should be built and whether releases can exceed what was committed. Check the exact fields and behavior against the ERPNext Blanket Order documentation for your ERPNext version before you sign off the design.
Blanket order configuration options and when each fits
This table compares the main choices when setting up an ERPNext Blanket Order, including direction, item pricing, validity and how releases are raised. Read each row with the question of which downstream document the release creates, since that determines who receives stock or invoices and how committed quantities are tracked. A blanket order only records the commitment, so each release must be confirmed in the transaction that carries it.
| Option | When it fits | What it changes downstream |
|---|---|---|
| Supplier direction (buying) | Long-term buying from a vendor at negotiated rates | Releases are raised as purchase orders, which later drive receipts and purchase invoices |
| Customer direction (selling) | Committing a customer to agreed volumes and prices over a period | Releases are raised as sales orders, which later drive deliveries and sales invoices |
| Item-level quantities and rates | Products carry different negotiated prices or annual volumes | Each release pulls the agreed rate and checks against that item's remaining committed quantity |
| Validity period | Agreements tied to a contract year or a defined term | Confirm how your version blocks releases after the end date and whether expired orders can be extended |
| Releases by purchase order | Procurement needs receipts and bills tracked against the agreed commitment | Ordered quantity updates on each purchase order, so buyers see how much of the agreement is still open |
| Releases by sales order | Sales teams need fulfillment and billing tied to the customer agreement | Ordered quantity updates on each sales order, so account teams see remaining customer volume |
| Ordered versus committed tracking | Finance and operations need to know how much of the commitment is used | Confirm which field or report shows ordered against committed quantity in your ERPNext version |
| Rate changes after release | Prices may be revised mid-term under the same agreement | Confirm whether changing the blanket order rate affects releases already raised |
How to set up blanket orders in ERPNext
This sequence turns a negotiated supply agreement into a Blanket Order in ERPNext that records committed quantities and rates, then tracks each release through purchase or sales orders until the agreed quantity is used or the agreement ends.
Confirm item, party and price list masters
Before creating anything, check that each item in the agreement exists with the correct unit of measure, stock settings and default warehouse, and that the supplier or customer record carries the right currency, tax template and default price list. Pricing in a Blanket Order flows from these masters, so a wrong default here will carry into every release. Confirm the negotiated rates are loaded into the correct price list, then open one test item to verify its rate resolves as expected. The step is complete when the masters match the signed agreement line by line.
Create the blanket order from the agreement
Open a new Blanket Order and select the supplier (for a purchase agreement) or customer (for a sales agreement). Enter the validity period from the contract, the applicable price list, and one row per item with the agreed quantity and rate. Check that the totals on the form match the agreement schedule, including any quantity tiers or currency. Save the draft and review it with the person who negotiated the terms, because the document is the reference for every later release. The step is complete when the saved draft reproduces the agreement without manual corrections.
Submit the blanket order
Submit the saved Blanket Order so it becomes an active commitment that other transactions can reference. Submission does not deliver, receive, bill or pay, so no stock or ledger entries should appear afterward. Confirm this by checking the stock ledger and general ledger for the document reference. Confirm the submitted record shows the correct validity dates and remaining quantities. The step is complete when the order is submitted and the balance shows the full agreed quantity as not yet released.
Release quantities through purchase orders
For each call-off, create a Purchase Order from the Blanket Order and reduce the quantity to the amount needed for that delivery window. Submit the Purchase Order, then send it to the supplier as you would any other order. Check that the rates on the new order come from the blanket agreement and not from a fresh price lookup. The step is complete when the Purchase Order is submitted, its rows link back to the Blanket Order, and the rates match the agreed rates.
Release quantities through sales orders
For a sales agreement, create a Sales Order from the Blanket Order for each customer release, adjusting quantity to the scheduled call-off. Submit the Sales Order and confirm that the customer, item and negotiated rate carry over from the agreement. Use the same check on rates and links as in the purchase flow, so that release documents stay traceable to the contract. The step is complete when the Sales Order is submitted and linked to the Blanket Order.
Check ordered versus committed balance after each release
After every submitted release, open the Blanket Order and compare its ordered quantity with the committed total from the agreement. Confirm the remaining balance equals the agreed quantity minus all submitted releases, and that cancelled or amended releases have adjusted the balance as expected. Record the result in your contract log so procurement or sales can see how much of the agreement is still open. The step is complete when the balance reconciles to the agreement after each release, and any mismatch is investigated before the next call-off.
Confirm the agreement is fully tracked at expiry
Before the validity period ends, review the Blanket Order against the contract to identify unused quantity and any releases that are still open. Confirm with the business owner whether the remaining balance should be called off, amended or allowed to lapse, and check how your team handles unused commitments under the contract terms. Ask your ERPNext implementation team to confirm how expiry and closure behave in your version, since this depends on configuration. The step is complete when the outcome for each item is recorded and the Blanket Order status matches that decision.
Supplier agreements versus customer agreements
A purchase-side Blanket Order records what you have committed to buy from a supplier over an agreed period at negotiated rates. The purchasing team owns the agreement, releases quantities through Purchase Orders as demand appears, and watches how much of the commitment is still open. The main risk is not a missed delivery but an over-committed supplier relationship or a rate that no longer matches the contract. The commitment has to be visible to the people who fund it, and the release history has to be easy to audit.
- Approval of the commitment: Confirm who may create and submit a supplier Blanket Order, and whether finance must approve it above a value or quantity threshold. Use ERPNext approval workflows if your policy requires it.
- Price checks on release: Decide whether purchase orders released against the agreement must pick up the negotiated rate automatically, and who may override it.
- Ordered versus committed reporting: Ask for a regular view of committed quantity against ordered quantity by supplier and item, so the buyer can see exposure before the period closes.
- Expiry and renewal: Set a review date before the agreement ends, since unused commitments can become a liability at renewal.
- Supplier-facing terms: Confirm which terms are held in ERPNext and which remain in the signed contract.
Before go-live, confirm with your procurement lead which rate changes require a new agreement and which can be applied on the purchase order.
A sales-side Blanket Order records what a customer has agreed to take over a period at agreed prices. The sales team does not ship against the agreement directly. Each customer call-off becomes a Sales Order that references the agreement, and the agreed quantity is reduced as those orders are placed. The commercial concern is the opposite of procurement: the team needs to know how much of the customer's commitment is still open so that stock is reserved, capacity is planned and invoicing follows the agreed price.
- Approval of the commitment: Confirm who may accept a customer agreement and whether credit controls apply before call-offs are released.
- Price and discount checks: Decide how the agreed rate interacts with Pricing Rules and any customer-specific discounts, and which role may change the price on a call-off.
- Released versus invoiced reporting: Ask for reporting that separates quantity called off, delivered and invoiced, so account managers can follow the customer's remaining commitment.
- Shortfall and overrun handling: Agree what happens when a customer under-calls or exceeds the agreed quantity, including whether the excess needs a new agreement.
- Account ownership: Name the person accountable for each agreement, since call-offs often arrive by email or portal rather than through a single channel.
Before go-live, confirm with your sales operations lead how mid-period price changes will reach open call-offs and whether existing agreements keep their original rate.
Rate changes during an agreement period are where supplier and customer agreements most often diverge in practice. A negotiated rate sits in the agreement, but Pricing Rules, price lists and manual edits on downstream documents can each produce a different number. The question is not only what the rate is today but which rate applies to each open release. Buyers and sellers both need a written rule before the first call-off or release is made, and the rule should be tested with a few realistic sample documents during implementation.
- Source of the rate: Confirm whether the agreed rate is copied to each downstream document or read from a price list, and what happens if the price list changes.
- Rule conflicts: Confirm how Pricing Rules that match the same item and customer or supplier are prioritized against the agreement rate.
- Mid-period changes: Decide whether a change applies to open quantities, only to new releases or only after a formal amendment.
- Override rights: Limit which roles may edit rates on released documents, and record the reason for each override.
- Test cases: Ask the implementation partner to document how a rate change flows through an open release, so finance can check the result against the signed terms.
Before go-live, confirm with your finance and legal teams whether a rate change needs a signed amendment or can be applied through a documented internal approval.
Access, approvals and audit trail for committed quantities
Blanket orders carry negotiated rates and committed volumes, so who can create, amend and release them matters as much as the data itself. The cards below cover the roles, approval steps and reporting that connect a blanket order to supply planning, and what to review with your team before go-live.
Who may create and amend
Creating and amending a Blanket Order are separate permissions in ERPNext, granted through roles and the permission rules on the Blanket Order DocType. Decide which purchasing or sales roles can draft a new agreement, and which can change rates, item lines or validity dates after submission. Confirm the exact permission levels in your ERPNext version and test them with a user from each role before you grant access in production.
Release rights for orders
A Blanket Order does not deliver or bill by itself. Quantities are drawn down when downstream purchase orders or sales orders reference it, so the people who can create those documents effectively control how much of the commitment is used. Map which roles may release against each agreement, and whether a release can exceed the remaining committed quantity.
Approval steps before submission
ERPNext approval workflows can be attached to documents so that a blanket order must pass named approvers before it is submitted. Define the approval thresholds with your finance and procurement leads, such as value or supplier category, and confirm whether amendments after submission restart the approval path. Keep the approval chain in your written design so auditors can trace who signed off each agreement.
Audit trail for changes
Submitted documents in ERPNext keep a version history of changes, and the Version log helps show what changed, when and by whom. Check that the fields that matter most, including rates, quantities and dates, are tracked in your configuration. Decide who reviews the change log and how often, and whether amendments need a written reason recorded in the document.
Committed quantity in supply planning
Committed quantity is the amount still available to release against an agreement, and it should feed material planning so that purchasing does not plan against volumes already drawn. Confirm how your planning run reads open blanket order quantities, and test that a release reduces the remaining commitment as expected. Agree who owns the reconciliation between planned demand and remaining commitment.
Reporting on ordered versus committed
Reports comparing ordered quantity against committed quantity show how much of each long-term agreement has been used and how much is at risk of expiring unused. Define the report owners, the review cadence and the thresholds that trigger a conversation with the supplier or customer. Validate the figures against a sample of underlying orders before relying on them for commercial decisions.
Questions buyers ask about ERPNext blanket orders
How much effort does setting up blanket orders in ERPNext take?
Effort depends less on the Blanket Order form itself and more on how many agreements exist, how cleanly item masters and supplier or customer records are kept, and how many downstream documents must reference the agreement. A single supplier with a few items and fixed rates is a small configuration task. Dozens of agreements with tiered rates, multiple currencies, and price lists tied to each contract take considerably longer to model, test, and document. Ask any partner to break the quote into agreement data, item and price list cleanup, testing of each release path (purchase orders, sales orders, and invoices), and user training.
Can our own team set up blanket orders without outside help?
Yes, if you have someone who understands ERPNext's buying and selling documents and can test them with real data. A Blanket Order records a long-term commitment to buy or sell specified items within an agreed period at negotiated rates. It does not deliver, receive, bill, or pay by itself, so your team must also set up how quantities are released through purchase orders or sales orders and how those releases are tracked against the agreed quantity. Outside help is most useful when the agreements affect several departments, when pricing logic is complex, or when your team has no time to validate the results before go-live.
What does the work need from procurement and sales?
Blanket orders only work if procurement and sales agree on the commercial terms before anything is configured. Procurement must confirm which supplier agreements exist, the item list, the negotiated rates, the validity period, and the total committed quantity. Sales must confirm the same for customer agreements and how releases will be requested. Each side should also define who approves a release, who handles a shortfall or excess against the commitment, and how amendments to rates or quantities are recorded. Gather these decisions in writing first, because configuration changes after the fact are usually the costliest rework.
Does the ERPNext version affect how blanket orders work?
Yes. The version you run determines which features, fixes, and upgrade steps apply, so confirm the behavior of Blanket Order and its linked documents in your exact release before designing around it. ERPNext and Frappe Framework version 14 reached end of life on January 31, 2026. Version 15 is planned to be supported until the end of 2027 and version 16 until the end of 2029, according to Frappe's supported versions page. Both supported major versions receive frequent minor releases, so plan for regular patching. Check the supported versions page before choosing a target.
How does hosting choice change the blanket order project?
The Blanket Order configuration is the same wherever ERPNext runs, but hosting determines who maintains it and what customization is allowed. ERPNext can be installed on Frappe Cloud, with Docker Compose, or manually with the bench command line tool. Self-hosting is free as software, while Frappe Cloud pricing starts at published rates listed on the pricing page. Any custom scripts that check or update blanket order quantities need a runtime that permits them. Server Scripts are disabled by default from version 15 and must be enabled, and Frappe Cloud public shared benches do not allow them. Confirm this before you design automation around releases.
What should we ask for in a quote for this work?
Ask for a written scope that lists each agreement type, the number of items and suppliers or customers involved, the document chain to be configured, the reports you need on ordered versus committed quantity, and the data to migrate from any existing spreadsheet. Ask which parts are one-time (design, configuration, data load, testing, training) and which recur (version upgrades, patching, support). Ask for acceptance criteria, such as test cases that prove a release reduces the committed quantity correctly, and for the assumptions behind each estimate. DeployOpen plans most engagements as fixed scope, with deliverables and timelines agreed in writing before work starts.
What goes wrong most often with blanket orders?
The most common failures are unclear ownership of agreements, expired agreements that are still being released against, and quantities that are not reconciled between the agreement and the releases. Rates can also drift when price lists are changed without updating the agreement. Teams often assume that a blanket order will generate deliveries or invoices, then find that each release still needs its own downstream documents. Test expiry dates, over-release behavior, and partial releases in a staging site before go-live, and assign one person to review the ordered versus committed report each period.
Loading existing agreements without duplicating commitments
Load each open agreement once, then reconcile it against what has already been released before go-live. Most long-term supply agreements start life in a spreadsheet, a legacy system or a contract register, and the risk is that the same commitment ends up in ERPNext twice: once as a migrated Blanket Order and again as a manually entered order that someone raises because the old schedule was not visible. The ERPNext Data Import tool can create and update records from CSV or Excel files, using downloadable templates, and it supports child table rows, which is how Blanket Order items are held. Prepare one template per DocType, keep the item rows linked to the correct parent, and confirm with the data owner which agreements are still open, which are closed and what quantity has already been ordered against each one.
Import in small batches. The Data Import documentation advises importing only a few thousand records at a time, so split large registers by supplier or by agreement period and run a trial import on a copy of the site first. After each batch, compare record counts and a sample of rates, dates and quantities against the source file. Ask your implementation partner or internal team to write down how the migrated Blanket Order quantities are expected to map to ordered and committed quantity, so that the first reconciliation has a clear target.
Before go-live, reconcile every imported Blanket Order against the purchase orders and receipts already raised for it. For an illustrative agreement of 1,000 units with 400 already released through earlier orders, the imported record should show 400 committed and 600 remaining, not 1,000 remaining. Any mismatch means either the import was wrong or a release was entered outside the system, and both need fixing before users place new orders. Confirm the rules for who can edit a submitted Blanket Order and who signs off the reconciliation, and keep the signed reconciliation as evidence for auditors and for the buyers who will rely on it.
How DeployOpen scopes and delivers blanket order configuration
DeployOpen plans, implements, customizes, documents and supports self-hosted open-source platforms inside your own infrastructure, including ERPNext. For blanket orders, we start from the supply agreements you already hold, confirm how they map to ERPNext transactions, and build the setup in a controlled environment before anything reaches production.
How we scope
- Written scope lists the agreement types, item groups, suppliers or customers, and validity periods the blanket orders must cover.
- We map each negotiated rate to its price list, currency and company so release orders pick up the agreed terms.
- Scope states which downstream transactions reference blanket orders, such as purchase orders, sales orders and receipts, and which stay outside the build.
How we build
- We configure Blanket Order records, approval rules and item-level quantity limits in a staging ERPNext site before production work begins.
- Ordered and committed quantity tracking is tested with sample release orders, including partial releases and amendments to the agreement.
- Custom fields or scripts are added only where standard blanket order behavior does not match the agreed commercial terms, and each change is recorded.
How we hand over
- Handover includes a written configuration record, a test script with expected results, and the report views your team will use to track committed quantities.
- Your users receive a short procedure covering how to create a blanket order, release quantities, and close or amend an agreement.
- Customizations are exported so they can be versioned and reproduced on your own environments without manual rework.
How we support
- Ongoing support, upgrades and continuous testing are available as a retainer, which covers blanket order changes after go-live.
- Before any ERPNext version upgrade, we retest blanket order flows, since release and quantity logic can change between versions.
- Confirm with DeployOpen during scoping which ERPNext version your environment runs and whether the support plan covers it.

