Skip to content
Auboros

Odoo Blanket Orders and Purchase Templates: How Australian Buyers Lock In Supplier Prices and Reorder Without Re-keying

An Odoo blanket order fixes one vendor's price and quantity for a period and feeds the vendor pricelist; a purchase template re-orders a list from any vendor.

By Josh Craig, Managing Director, Auboros ·

Odoo has two purchase agreement types. A blanket order fixes a unit price and a quantity with one vendor for a start and end date, and when you confirm it Odoo writes that price onto the product’s vendor pricelist, so replenishment buys at the agreed rate. A purchase template is a reusable order list you can send to any vendor. Both switch on with the Purchase Agreements setting.

At a glance

  • Who it is for: Australian wholesalers, manufacturers and trade suppliers who negotiate annual pricing with a handful of key suppliers, or who re-order the same lines every week.
  • Problem it solves: Negotiated prices living in an email thread or a spreadsheet, so RFQs go out at list price and repeat orders get re-keyed line by line.
  • Platforms: Odoo 18, 19 and 20, Purchase app with the Purchase Agreements setting switched on, plus Inventory if you want replenishment to buy against the agreement.
  • Typical cost: No extra licence. Purchase is included in every Odoo plan; Standard is A$43 and Custom is A$80 per user per month ex GST on yearly billing as at October 2026 on our Odoo pricing and packages page.
  • Typical timeline: The setting takes a minute. Loading a year of negotiated agreements is usually a day or two of work inside an implementation, after the vendor pricelists are in.
  • Last verified: 31 October 2026 against the Odoo 20 blanket orders and purchase templates documentation and the purchase_requisition module source on GitHub.

Most Australian buyers we meet have a deal with their main supplier. Twelve months of fixed pricing on the top fifty lines, a rebate if volume lands, a price list in a PDF. What they rarely have is that deal inside Odoo. The RFQ goes out at whatever price was on the last order, the supplier corrects it, and someone fixes the bill at month end. Purchase agreements are the feature that puts the deal where the purchase orders are made. This guide covers the two agreement types, what each one does to your vendor pricelist, how replenishment uses them, and the things an Australian buyer should check before the first one is confirmed.

What is the difference between a blanket order and a purchase template in Odoo?

Both live under Purchase, then Orders, then Purchase Agreements, and both share the same form. The Agreement Type field is the fork in the road. In the Odoo 20 source the two values are Blanket Order and Purchase Template, and an agreement moves through four statuses: Draft, Confirmed, Closed and Cancelled.

What is the difference between a blanket order and a purchase template in Odoo?
AreaBlanket orderPurchase template
VendorOne vendor, requiredOptional; pick a vendor on each RFQ
What it fixesA unit price and a quantity per product for a date rangeA list of products to re-order, with quantities
Validity datesStart and end date on the agreement; the RFQ date cannot sit before the startNone; Odoo clears the dates on a template
Confirm ruleEvery line needs a price above zero and a quantity above zeroNo price rule
Effect on the vendor pricelistOdoo adds a vendor line to each product with the agreed price, currency and a link to the agreementNone
New Quotation buttonCopies products and prices, leaves quantity at zero for you to fillCopies products, prices and quantities
Ordered trackingThe Ordered column counts quantities on confirmed orders against each lineOrders are listed under the RFQs/Orders button
ReplenishmentReordering rules buy against the agreement when its vendor line is the one Odoo selectsNot used by replenishment
Best fitAnnual supply deals with a key supplierWeekly consumables, packaging, the same list from whoever is cheapest this month

Table: Blanket orders vs purchase templates in Odoo 20, from the Odoo documentation and the purchase_requisition module source, as at 31 October 2026.

The Odoo docs put it plainly: a blanket order is one large order split into several deliveries, so every RFQ under it goes to the same vendor, while a template can be replicated for multiple vendors. If you only remember one line from this post, make it that one.

How do you set up a blanket order in Odoo 20?

  • Switch the feature on. Purchase, Configuration, Settings, tick Purchase Agreements under Orders and save. The same setting also enables alternative RFQs, which we come back to below.
  • Create the agreement. Purchase, Orders, Purchase Agreements, New. Pick the Vendor, leave Agreement Type on Blanket Order, and set the Agreement Validity dates. The Currency defaults to the vendor’s purchase currency if one is set on the vendor, otherwise your company currency. The Operation Type decides which warehouse receives the goods, which matters if you run more than one site.
  • Add the lines. Add a line, choose the product, enter the Quantity and the Unit Price. Odoo does not copy an existing pricelist price onto a blanket order line; you type the negotiated figure. You can group lines under section headings, which is handy when a supplier’s deal covers two or three product families.
  • Confirm. Odoo refuses to confirm a blanket order if any line is missing a price or a quantity. Once confirmed, products, quantities and prices stay editable.
  • Raise orders against it. Click New Quotation on the agreement. The RFQ opens with the vendor, the agreement’s currency, the agreement name in Source Document, and every product and price pre-filled with quantity at zero. Enter what you want this time, send it, confirm it. The Ordered column on the agreement climbs as orders are confirmed.

One small thing the source does that the docs don’t mention: when you pick a vendor on a new agreement and that vendor already has a confirmed blanket order in the same company, Odoo warns you and suggests using the open one. Take the hint. Two overlapping agreements for the same supplier means two vendor lines fighting over the same product.

What happens to the vendor pricelist when you confirm a blanket order?

This is the part that makes the feature worth the setup. On confirm, Odoo creates a vendor line on the Purchase tab of every product in the agreement, carrying the vendor, the price, the currency and a reference to the agreement line. In the Odoo 20 source that record is a product.supplierinfo with a purchase_requisition_line_id, which is why the Purchase tab shows an Agreement column once you have one.

From then on the agreement line and the vendor line move together. Change the price on the agreement and Odoo writes the new price onto the linked vendor line. Try to set a confirmed line’s price to zero and Odoo blocks it. Add a product to a confirmed agreement and a vendor line appears for it, unless that vendor already has a line for the product tied to another agreement.

The practical consequence is that the blanket order becomes the source of truth for that supplier’s price on those products, ahead of whatever was keyed by hand. How Odoo picks between competing vendor lines is covered in our guide to Odoo vendor pricelists and lead times; the short version is that the line’s vendor, minimum quantity and validity still decide, so keep the hand-keyed lines tidy.

The deal with your main supplier is usually the single biggest number in your cost of goods, and most businesses keep it in a PDF. Putting it on a blanket order means every purchase order, including the ones replenishment raises at two in the morning, goes out at the price you negotiated.

Josh Craig, Director, Auboros

Does replenishment use the blanket order price?

Yes, through the vendor line it created. A reordering rule on a Buy route asks the product for its best vendor line, and if the line Odoo selects belongs to a blanket order, the purchase_requisition_stock module takes over the RFQ it raises. The RFQ is linked to the agreement, takes the agreement’s currency, and carries the agreement name in the Vendor Reference field. Odoo also groups replenishment needs by agreement, so two products on the same blanket order land on one RFQ instead of two.

That means a well set up blanket order does its job without anyone opening it. Min and max levels trigger the need, the agreement supplies the vendor and the price, and the purchase order waits for approval. If you have not set those levels yet, our reordering rules guide walks through the min and max maths, and the Odoo 20 reordering rules documentation covers the route settings.

Two limits to know. The agreement’s end date does not stop replenishment on its own; the vendor line stays on the product until you close the agreement or remove the line, so put a calendar reminder on the end date. And the Ordered column counts confirmed orders only, so it is a record of what was bought, not an enforcement of the ceiling. If the deal has a hard volume cap, someone still needs to look.

When should you use a purchase template instead?

A template is the right tool when the list matters more than the price. Packaging, cleaning consumables, the standard set of fasteners a workshop goes through every fortnight. You build the list once, with quantities, and each New Quotation copies the whole thing so the buyer deletes what is not needed this time.

Three differences follow from the source. A template needs no vendor, and if you leave it blank you choose the vendor on each RFQ. A template has no validity dates; Odoo clears them when you switch the type. And the docs tell you to type unit prices on a template, although the 20.0 source will pull the vendor’s pricelist price onto a draft template that has a vendor set, so check the figures before confirming instead of assuming they are blank or correct.

What about comparing vendors with alternative RFQs?

The Purchase Agreements setting also unlocks the Alternatives tab on an RFQ, which is Odoo’s version of a call for tenders. From the first RFQ you click Create Alternative, pick a second vendor, and Odoo copies the product quantities across (untick Copy Products for a blank one). You can also link an existing RFQ as an alternative. The tab lists each quote’s reference, vendor, total, status and expected arrival, with the arrival date worked out from the lead times on the vendor and product forms, and the call for tenders documentation covers comparing product lines and cancelling the losers.

Alternatives are a one-off exercise. A blanket order is what you create once the tender is won, so the price you fought for stays on the product for the next twelve months.

What should Australian buyers check before confirming the first one?

  • Currency. An agreement with a US or Chinese supplier should be in that supplier’s currency, which Odoo takes from the vendor’s purchase currency setting. The RFQs inherit it. Our Odoo multi-currency accounting guide covers the rate source and the BAS side.
  • GST on the lines. When Odoo builds an RFQ from an agreement it maps each product’s supplier taxes through the vendor’s fiscal position. An overseas supplier with an import fiscal position gets no GST on the PO line, and the GST paid at the border or deferred under the ATO’s deferred GST scheme is handled on the bill and the landed cost, as set out in our landed costs and deferred GST guide.
  • Approvals. Confirming an agreement has no approval step of its own. The control still sits on the purchase order, so the minimum amount setting for purchase order approvals applies to every order raised against a blanket order exactly as it does to a one-off.
  • Bills. A bill against a blanket order PO still matches receipts and prices the normal way; three-way matching in Odoo accounts payable is where a supplier billing above the agreed price gets caught.
  • Close it when it ends. Set the agreement to Closed when the deal expires. Until you do, the vendor line it created keeps feeding replenishment at the old price.

As an Odoo partner in Brisbane we load supply agreements as part of the purchasing setup on every implementation, because they are the cheapest control a buyer can add. The feature is standard, it costs nothing extra, and the only real work is getting the negotiated prices out of the PDF.

Goes well with

Have a supplier deal that never made it into Odoo?

We set up blanket orders, purchase templates and the vendor pricelists behind them for wholesalers and manufacturers across Brisbane, the Gold Coast and the rest of Queensland, usually inside a wider purchasing and replenishment setup. If your buyers are still checking a PDF before they confirm an order, book a free 1-hour scoping call and we’ll look at what your agreements would take to load. No pitch, just a look at the purchasing flow you have today.

FAQ

Frequently asked questions

How do I enable blanket orders in Odoo?

Go to Purchase, Configuration, Settings and tick Purchase Agreements under Orders, then save. The Purchase Agreements menu appears under Orders, and the same setting unlocks the Alternatives tab on requests for quotation. Blanket orders are standard in Odoo 18, 19 and 20 and need no extra licence.

Does a blanket order in Odoo update the vendor pricelist?

Yes. When you confirm a blanket order, Odoo adds a vendor line on the Purchase tab of every product in the agreement with the vendor, the agreed price, the currency and a link to the agreement. If you later change the price on the agreement, Odoo updates that vendor line to match.

Will Odoo replenishment buy from a blanket order?

Yes, when the vendor line Odoo selects for the product is the one the blanket order created. The RFQ raised by the reordering rule is linked to the agreement, uses its currency and carries the agreement name as the vendor reference. Odoo groups replenishment lines by agreement so one RFQ covers all the products on it.

What is a purchase template in Odoo?

A purchase template is the second agreement type. It is a reusable list of products and quantities you can turn into an RFQ for any vendor, so it suits weekly consumables and packaging orders. Unlike a blanket order it has no validity dates, no vendor requirement and no effect on the vendor pricelist.

Can I stop a blanket order from being used after its end date?

Set the agreement to Closed. The end date on its own does not stop new quotations or replenishment, because the vendor line Odoo created stays on the product until the agreement is closed or the line is removed. Put a reminder on the end date and close it, or renew it with the new price.

Want help with your own implementation?

We're a Brisbane-based Odoo Silver Partner and MYOB Acumatica Partner. Book a free 1-hour scoping call and get a straight answer.