Every Discount, Stacked and Explained
Add multiple discount components — percentages, fixed amounts, or both — to sale order, purchase order and invoice lines, and let Odoo resolve them automatically into one clear price with a full itemized breakdown.
The problem
Odoo's native pricing model allows only a single discount value per line, so teams negotiating layered deals — a standing customer discount, a seasonal promotion, a volume rebate — are forced to collapse everything into one blended percentage or manually edit line amounts. That destroys the audit trail of why a price was reduced and makes it impossible to report on each discount separately.
The solution
Add an itemized stack of discount components to any sale order, purchase order or invoice/bill line. Choose sequential or cumulative resolution, and the module computes the equivalent native discount automatically so every subtotal, tax figure and standard report keeps working — while the form and printed documents show exactly which concessions produced the final price.
Everything a stacked discount needs
Every capability below is implemented in the module.
Stacked discount components
Add any mix of percentage and fixed-amount discount lines to a single sale, purchase or invoice line instead of one blended number.
Sequential or cumulative resolution
Choose whether each discount applies to the running balance or is summed against the original price, per line or as a company default.
Sale, purchase and invoicing coverage
The same discount stack works on sale order lines, purchase order lines, customer invoices and vendor bills, so every document in the chain agrees.
Reusable discount templates
Save common combinations as named templates, with an optional quantity threshold and a list of customers or vendors they apply to, for one-click reuse.
Bulk apply wizard
Roll a template across several sale orders, purchase orders or invoices at once, with an option to overwrite or skip lines that already carry discounts.
Over-limit guardrails
Configure what happens when a stack would exceed 100% — block the save, show a warning, or cap the result — so pricing mistakes never reach a customer.
Live effective-discount preview
The effective discount percentage and the total money removed from the line recompute the moment a component is added or changed — no need to save first.
Itemized breakdown on reports
The standard sale order, purchase order and invoice/bill PDF reports list each discount component under its line, so customers see exactly why the price dropped.
Automatic invoice & bill propagation
Confirming a sale order or purchase order carries the exact discount stack onto the generated invoice or bill line automatically.
How it works
Build a template
Save a common combination of percentage and fixed discounts as a named, reusable template — or skip this step and add components directly on a line.
Apply it to a line
Apply the template to one line, or use the bulk wizard to roll it across every eligible line on several sale orders, purchase orders or invoices at once.
Review the live preview
The effective discount percentage and total impact recompute instantly, with an inline warning if the stack goes over the configured limit.
Confirm and invoice
Confirming the document carries the same breakdown onto the invoice or bill, and onto the printed report.
Frequently asked
No sales fog. If your question isn't here, email us and we'll answer it the same way.
No. The component stack is resolved automatically into Odoo's native per-line discount percentage, so every subtotal, tax figure and standard report keeps working exactly as before — the components just give you the itemized "why" behind that number.
Buy it on the Odoo App Store
Purchase, download and install directly from the official Odoo Apps Store — you'll always get the latest supported build.
Mixed Discount in Sale, Purchase and Invoicing
An itemized stack of discount components per line on sale orders, purchase orders and invoices — resolved sequentially or cumulatively into the native discount, with templates, a bulk wizard and over-limit guardrails.
Buy on Odoo App StoreMore Odoo sales apps
Multiple Delivery Addresses on Sales Orders
Order-level and line-level delivery addresses with required confirmation, automatic delivery splitting behind a preview, per-line instructions and delivery-versus-invoice conflict warnings — visible on reports, the portal and an immutable audit trail.
Odoo Digital Signature Pro
Capture company and counterparty signatures on Sales Orders, Purchase Orders, Invoices, Bills and Deliveries — with a compliance-grade audit trail, configurable enforcement, and passwordless email-to-sign.
One-time Delivery Contact
Capture a one-off shipping address on the sales order, preview and confirm it, and let it archive itself afterwards — with postal-code validation, duplicate reuse and auto-purge.
Partner Last Order Details
Last sale order and last purchase order, with an inline line-item preview and one-click access, right on every contact — plus a recency report for triage.
Portal Sale Orders & Quotations Filter
Status badges, sortable columns, quick filters, date ranges, grouping, saved presets and CSV export on the customer portal's orders and quotations — self-service order tracking without backend access.
Price Negotiation Management
Purchase and sale negotiations in one place, with multi-round offers, round-by-round comparison, approval thresholds and price lock on confirmation — plus portal participation and win/loss analytics.