This page will explain how to apply multiple discounts to one order. We are assuming that the first discount is a Default Discount on the product and the second discount is a Promotion on the order.

In version 4.4, the the handling of the default discount was fixed, but some users were intentionally using the previous behavior. In version 4.3, if you had a default product discount and added an order-level discount, it added both discounts. It should have overriden the default. The examples below should help to explain these changes:

The (incorrect) way Control calculated multiple discounts in Control 4.3:

Base Price = $100.00

Default Discount = 25%

Promotion = 10%

Price = $100 - ($100 * 10%) - ($100 * 25%)

Price = $100 - $10 - $25

Price = $65

The (correct) way Control calculates multiple discounts by default:

Base Price = $100.00

Default Discount = 25%

Promotion = 10%

Price = $100 - ($100 * 10%)

Price = $100 - $10

Price = $90

In this case the 25% default discount is overridden by the 10% order promotion.

The way Control 4.3 can calculates multiple discounts using the formulas explained on this page:

Base Price = $100.00

Default Discount = 25%

Promotion = 10%

Line Item Discount = $100 * 25% = $25

Order Level Discount = ($100 - $25) * 10% = $7.50

Total Discount = $25 + $7.50 = $32.50

Price = $100 - ( $32.50 )

Price = $67.50

The second (overridden) approach is the default behavior in Control. If you want to allow for multiple discounts, this Wiki will show you how to achieve that.

For products using a Built-In Discount:

  • The built-in discount is already factored into the base price. It is not the default discount and is unaffected by the order level promotion. Therefore, there is nothing to do in this case. The order level discount will already work the way indicated.

For products using a Default Discount:

  • On the Product tab, check the Exclude Product from Promotions option.
  • Let's say you give a percentage discount based on quantity and you already have your Discount Table created. Your Default Discount formula should look something like this:

code_formatpascal

(PreDiscountPrice - BuiltInDiscount) * DiscountValue(“QuantityDiscountTable”)%

  • Since we also want it to calculate the promotion, we'll add an additional section to this formula.

code_formatpascal

(PreDiscountPrice - BuiltInDiscount) * DiscountValue(“QuantityDiscountTable”)%

+

If Transheader.Promotion.Text = “Not Assigned”

Then 0

Else Transheader.Promotion.PercentageOff * (PreDiscountPrice - BuiltInDiscount)

EndIf

You could leave a comment if you were logged in.