Free Sales module for Odoo

SBS Sales Discount Amount: discounts in money, not percent

Customers ask you to knock 250 off, but Odoo's discount column only takes a percentage, so totals land slightly off what was agreed. This module adds a Disc. Amount column that stays in step with the percentage, from quotation to invoice.

FreeOdoo 19.0Open source
Open sourceBuilt by Star Bit SolutionsFree to installSupport available
SBS Sales Discount Amount illustration: Set sales line discounts by percentage or fixed amount
Scroll
The gap it closes

Why teams install Sales Discount Amount

A salesperson who agrees a round discount in money has to convert it to a percentage by hand for the sales order line, and the total ends up slightly off what was promised. We add a Disc. Amount column that stays in sync with the percentage, on quotations and on customer invoices.

Who it is for: Sales teams on Odoo 19 Community who negotiate discounts in currency amounts and want the quotation and invoice totals to match exactly what was agreed with the customer.

Totals match what was agreed

Salespeople type the discount the customer asked for in money, so the line total matches the agreed figure without dividing by hand.

No discount beyond the line

A discount larger than the line, or a negative one, is refused, with the allowed range shown in your own currency.

Consistent from quotation to invoice

The discount carries across to the customer invoice, and partial invoicing discounts only the share of goods being invoiced.

Capabilities

What Sales Discount Amount adds to Odoo 19

Discount in money, not percent - two-way sync from quotation to invoice.

Disc. Amount column beside Disc.%

Adds a discount amount column next to Odoo's percentage field on sales order lines, so a discount can be typed in money. Fill in either one and the other follows.

Two-way synchronisation

Typing an amount works out the matching percentage; typing a percentage works out the matching amount. Both values always stay in step.

Remembers which figure you typed

The module records whether the amount or the percentage was entered and keeps that one steady when the line changes.

Re-sync on quantity or price changes

Change quantity or price after typing an amount and the amount is held while the percentage moves; after typing a percentage, the percentage is held while the amount moves.

Guarded against over-discounting

A discount larger than the line, or a negative one, is refused. The check names the allowed range in your own currency rather than just refusing.

Carries through to the invoice

Invoicing an order carries the discount across, so the amount agreed on the quotation is what appears on the customer invoice.

Amount column on invoices, credit notes and receipts

The same discount amount column is available on customer invoices, credit notes and receipts, editable while the document is a draft, so a late adjustment can be made in money there too.

Honest partial invoicing

On the invoice the discount is expressed as a proportion rather than pinned to a fixed sum, so invoicing half an order discounts half the goods instead of taking the whole discount off the first invoice. We have not yet measured partial invoicing line by line.

Vendor bills untouched

Vendor bills are left alone entirely; this is a selling tool for the customer side only.

Taxes and totals unchanged

The discount still reaches the total through Odoo's own percentage field, so tax computation and totals behave exactly as standard Odoo.

Pricelist aware

Designed so that a pricelist that changes the unit price re-syncs the line according to what you typed. We have not yet tested this with pricelist rules.

Works with SBS Multi UoM

Recognised automatically when installed: the discount is worked out against the packaging quantity rather than the base units.

Appears where Odoo's Discounts setting puts it

The amount column shows exactly where the percentage column does. Turn on Odoo's own Discounts setting first, or neither column is shown.

Verified on a live Odoo 19 Community database

We tested both entry directions, both re-sync directions, the limit check and the carry-through to an invoice on a live Odoo 19 Community database.

Lightweight and open source

A small, open-source module that depends only on the standard Sales, Discuss and Invoicing apps.

Want Sales Discount Amount installed and configured on your database? The engineers who built it can do it for you.
How it works

From install to everyday use

  1. Install the module and turn on Odoo's own Discounts setting so the Disc.% and Disc. Amount columns appear on order lines.

  2. Open a quotation and add order lines as usual.

  3. Type the discount the customer asked for in the Disc. Amount column, or type a percentage in Disc.%; the other column is worked out automatically.

  4. Change the quantity or unit price if needed: the figure you typed (amount or percentage) is held and the other value is recomputed.

  5. If the discount exceeds the line value or is negative, the entry is refused and the allowed range is shown in your currency.

  6. Confirm the order and create the invoice; the discount carries across, and the amount column remains editable while the invoice is a draft.

  7. For partial invoicing, the discount is applied proportionally to the goods invoiced on each invoice.

What you will see in Odoo

  • Disc.% and Disc. Amount side by side on the order lines.
  • The check names the range rather than just refusing.
  • The invoice created from the order, carrying both discounts.
See the screenshots on the Odoo App Store
In detail

SBS Sales Discount Amount explained

Give the discount the customer asked for - in money, not percent. Type "take 250 off" and Odoo works out the percentage. Type a percentage and it works out the money. Both stay in step, on quotations and on customer invoices.

Customers negotiate in money. Nobody asks for 17.3% off. They ask you to knock 250 off the price, or to round the line down to a number. Odoo's discount column only takes a percentage, so the salesperson does the division in their head, types something like 16.67, and the total lands a little off what was agreed.

We add a Disc. Amount column beside the percentage, and the module remembers which of the two you typed. That figure is the one it keeps steady: change the quantity or price after typing an amount and it holds the amount and moves the percentage; after typing a percentage it holds the percentage and moves the amount.

We measured this on a live database with a line of 10 × 100.00. Entering an amount of 250 produced 25% and a subtotal of 750. On a second line, entering 15% produced an amount of 150 and a subtotal of 850. Doubling the quantity on the first line kept the discount at 250 and moved the percentage. Doubling it on the second kept 15% and moved the amount. Each line behaved according to what had been typed on it.

It will not let you give away more than the line is worth. A discount larger than the line, or a negative one, is refused with the actual limits spelled out in your own currency.

It follows through to the invoice. Invoicing an order carries the discount across, and the same amount column is available on customer invoices, credit notes and receipts, editable while the invoice is a draft. On the invoice the discount is expressed as a proportion rather than pinned to a fixed sum, so invoicing half an order discounts half the goods rather than taking the whole discount off the first invoice. Vendor bills are left alone entirely - this is a selling tool.

How it fits with what you already have: with Odoo's Discounts setting, the amount column appears exactly where the percentage column does - turn Discounts on first, or neither is shown. Taxes and totals are unchanged; the discount still reaches the total through Odoo's own percentage field. A pricelist that changes the unit price is designed to re-sync the line according to what you typed. SBS Multi UoM is recognised automatically: the discount is worked out against the packaging quantity rather than the base units.

We tested both entry directions, both re-sync directions, the limit check and the carry-through to an invoice on a live Odoo 19 Community database. We have not yet tested multi-currency orders, pricelist rules driving the unit price, or partial invoicing measured line by line.

Technical specification

Requirements and compatibility

Everything your Odoo administrator needs to know before installing SBS Sales Discount Amount.

Technical name
sbs_sales_discount
Odoo version
19.0, built and tested on Community Edition
Price
Free
Hosting
Odoo.sh, On Premise (not available on Odoo Online)
Required Odoo apps
Sales (sale_management), Discuss (mail), Invoicing (account)
Module dependencies
sale_management, mail, account

Installation

  1. Download SBS Sales Discount Amount from the Odoo App Store, or add it to your Odoo.sh repository or on-premise addons path.

  2. In Odoo, activate developer mode, open Apps, choose Update Apps List and search for sbs_sales_discount.

  3. Install the module. Odoo installs the required apps listed above automatically.

  4. Follow the configuration notes.

Configuration and requirements

  • Install SBS Sales Discount Amount on Odoo 19.0 (requires the Sales, Discuss and Invoicing apps).
  • Enable Odoo's own Discounts setting; otherwise neither the percentage nor the amount column is shown on order lines.
  • Optionally install SBS Multi UoM; it is recognised automatically and the discount is then worked out against the packaging quantity.

Odoo 20 or Odoo Enterprise? Check the Odoo App Store for the Odoo versions SBS Sales Discount Amount is available for. When we upgrade a database to Odoo 20 we port the SBS modules and other customisations it uses, and we implement Odoo Enterprise as well as Community. See what Odoo 20 changes.

Implementation and support

Need help setting up discount amounts in Odoo?

The engineers who wrote SBS Sales Discount Amount can install it, configure it for your processes, extend it and support it. The module is free; you only pay for the help you choose.

  • Installation on Odoo.sh or your own servers
  • Configuration, data migration and user training
  • Custom changes and integration with your other modules
  • Support from the team that maintains the code
  • Running Odoo Enterprise? We implement Enterprise too, and will tell you whether this module or a standard Enterprise app fits better
  • Moving to Odoo 20? We port this module and your other customisations as part of the upgrade

Get help with Sales Discount Amount

Tell us about your Odoo setup and what you need. We reply within one business day.

No spam, ever. Read our privacy policy.

Questions

Sales Discount Amount, answered

Which Odoo apps does SBS Sales Discount Amount depend on?

It depends on Sales (sale_management), Discuss (mail) and Invoicing (account). It is built for Odoo 19.0, and we tested it on Community Edition.

Why don't I see the Disc. Amount column after installing?

The amount column appears exactly where Odoo's percentage column does, which requires Odoo's own Discounts setting to be turned on. Enable it first, or neither column is shown.

What happens if I change the quantity or price after entering a discount?

The module remembers which figure you typed. If you typed an amount it holds the amount and moves the percentage; if you typed a percentage it holds the percentage and moves the amount.

Does the discount carry over to invoices, and how does partial invoicing work?

Yes. Invoicing an order carries the discount across, and the amount column is available on customer invoices, credit notes and receipts while they are in draft. On the invoice the discount is expressed as a proportion, so invoicing half an order discounts half the goods rather than taking the whole discount off the first invoice. Vendor bills are not affected.

Does it work with SBS Multi UoM and with pricelists?

SBS Multi UoM is recognised automatically and the discount is worked out against the packaging quantity rather than base units. The module is designed to re-sync the line when a pricelist changes the unit price, but we have not yet tested multi-currency orders or pricelist rules driving the unit price.

Can Star Bit Solutions install and customise SBS Sales Discount Amount for us?

Yes. The engineers who wrote SBS Sales Discount Amount can install it on Odoo.sh or your own servers, configure it for your processes, extend it and support it. The module itself is free; you only pay for the implementation or support you choose. Call or WhatsApp +971 55 973 4524 or email info@starbitsolutions.com.

OdooStar by Star Bit Solutions

Put Sales Discount Amount to work in your Odoo.

Install it free from the Odoo App Store, or let our engineers deploy, configure and support it alongside the rest of your Odoo setup.

Not sure which solution fits?

Tell us about your business and we will recommend the right starting point, free of charge.