All posts
Integrator6 min read

Odoo Sale Order Templates: Reusable Quotation Structures for Sales Teams

Sale order templates let you predefine products, optional items, payment terms, and expiration rules that sales reps apply with a single click. This guide covers template setup, optional product sections, and how they interact with pricelists.

Sale order templates solve the problem of sales reps building the same quotation structure from scratch every time. A template defines the default lines, optional product sections, validity period, and payment terms. Applying it to a new quotation populates all of those fields instantly.

Enabling the Feature#

Sales → Configuration → Settings → Quotations & Orders → Quotation Templates

Toggle on. This adds a Quotation Template field to the sale order form and a new menu at Sales → Configuration → Quotation Templates.

Creating a Template#

Sales → Configuration → Quotation Templates → New

FieldPurpose
Template NameInternal label (e.g., "Standard Software Project")
Quotation expires afterDays before the customer link expires
Confirmation MailEmail template sent when customer confirms online
Payment TermsOverrides the partner's default payment terms

Template Lines#

Add products in the Lines tab. Each line can be a regular product line or a note/section header. Sections let you organise the quote visually and appear in the PDF as section headers.

Optional Products#

The Optional Products tab lists products the customer can add from the portal with an Add to Order button. These do not become confirmed order lines until the customer clicks "Add" and confirms the quote.

Applying a Template to a Quotation#

Select the template in the Quotation Template field on a new sale order. Odoo populates all template lines, optional products, payment terms, and expiry date. Existing lines are replaced unless you confirm the "Keep existing lines?" dialog.

Automating Template Use by Sales Team#

Assign a default template to a sales team: Sales → Configuration → Sales Teams → [Team] → Quotation Template. All new quotations created by users in that team default to the team's template.

Template and Pricelist Interaction#

Template line prices update from the product form when the template is resaved - they are not snapshots. If the product's price changes, the next quote using the template picks up the new price. Use pricelists for controlled pricing rather than hardcoding prices on template lines.

Common Mistakes#

  • Hardcoding prices in templates - prices update from the product form; use pricelists for price control
  • Forgetting confirmation mail - set the Confirmation Mail field to "Sale Order Confirmation" if customers should receive an automatic email on acceptance
  • Optional products not showing on portal - verify the portal sharing link is active and the customer's email is on the partner record
  • Template lines overwriting customisation - when changing the template on an order that already has customised lines, Odoo prompts for confirmation; warn sales reps

Try ERPeek on your own Odoo module - ask questions, scaffold tests, and explore your codebase in plain language.

Get started free