Discount Rules - Discount Matrix
Introduction
appero quote offers the function to determine Sum Discounts or Price Rebates in the quoting process also automatically.
The underlying rules can be found in the Discount Matrix object, which means discount rule. With the help of discount rules, for example, special conditions granted to a particular customer can be automatically taken into account in the quoting process without the salesperson having to know or look them up in advance. Another use case would be the agency discount, which is generally granted to this customer group.
Administration
Discount rules configuration is based on two custom objects included in appero quote - Discount Type (sf42_quotefx__SF42_Discount_Type__c) and Discount Matrix (sf42_quotefx__SF42_Discount_Matrix__c) - where Discount Type is connected to Discount Matrix using lookup.
Discount Type
The Discount Type is used to differentiate between different discount types, e.g. agency commission or customer discount - on the other hand, in case of active multi-level sales, it is also possible to define to which account in the hierarchy the discount should refer.
Thus, only two fields need to be filled in to configure the Discount Type:
Field Name | API-Name | Field type | Explanation | Example |
---|---|---|---|---|
Discount Type Name | Name | Text(80) | The name of the Discount Type can be freely assigned, it appears in the quote at the description and label of the Sum Discount item. | Product Discount |
related Account (optional) | sf42_quotefx__SF42_relatedAccount__c | Picklist:
| If multi-level sales is enabled in the Settings > Accounts (setup parameter additionalaccounts = true), it is possible to specify at this point to which account in the quote the discount type refers. If no selection is affected, the rule applies to the opportunity account. | Opportunity-Account |
Quote Item API Fieldname | sf42_quotefx__SF42_QuoLi_APIfieldname__c | Text(80) | If a Custom Field is stored in this field at the Quote Line Item, the amount calculated by this individual Sum Discount/Price Rebate will be written into this field, if the Quote Line Item is a product, i.e. unit price of the product minus the item discounts minus proportional Sum Discount/Price Rebate for this Discount Type. This subtotal is then written into the stored field, not the discount value. If there are several Sum Discounts/Price Rebates for different Discount Types in the quote, the calculation will be done according to the order in the quote. However, the configuration of multiple Sum Discounts/Price Rebates for the same Discount Type in a quote is not supported, in this case the last result from one of these discounts overwrites the previous results. |
Discount Matrix
The Discount Matrix contains all the information needed for discounting:
Account or account group
Product group(s)
Discount type
granted discount and possible restrictions
The following fields must be filled in at the Discount Matrix object:
Field Name | API-Name | Field Type | Explanation | Example |
---|---|---|---|---|
Discount Matrix Name | Name | Text(80) | This name does not appear in the quote editor. | Burlington Discount Generators |
Discount Type | sf42_quotefx__SF42_DiscountType__c | Lookup(Discount Type) | Establishes the connection to the Discount Type. | Product discount |
Account | sf42_quotefx__SF42_Account__c | Lookup(Account) | The named account is matched with the Discount Type to activate the rule: In case of multi-level sales, the rule takes effect only if the account appears in the quote in the same function as specified in the Discount Type. If nothing is specified in the discount type, the opportunity account is meant. | Burlington Textiles Corp of America |
active | sf42_quotefx__SF42_isActive__c | Checkbox | Only active rules are queried in the quote editor. | true |
Account Group | sf42_quotefx__SF42_Account_Group__c | Lookup(Account Group) | Alternatively to the account, the rule can also refer to an entire account group. | - |
Product Group | sf42_quotefx__SF42_Product_Group__c | Lookup(Product Group) | Exact match required, i.e. Quote Line Item and Rule must have the same product group combination and sequence. | OneTime |
secondary Product Group | sf42_quotefx__SF42_Product_Group_2__c | Lookup(Product Group) | see above | Hardware |
Discount | sf42_quotefx__SF42_Discount__c | Percent(16, 2) | Discount value | 10% |
minimum Sum | sf42_quotefx__SF42_minimumSum__c | Currency(16, 2) | Optional. Specifies a minimum amount above which the rule takes effect. | 10.000 € |
Discount Limit | sf42_quotefx__SF42_DiscountLimit__c | Percent(16, 2) | Optional. Sets the upper limit if the user wants to manually override the discount. | 20% |
Configuration in appero quote Lightning Editor
Assigning a discount matrix in the offer template is done in three steps:
1. Insert Sum Discount or Price Rebate element and mark the item in the Quote Line Item using the checkbox.
2. Assign the product groups that are also stored in the Discount Matrix via the "Groups" tab.
3. After unchecking the checkbox, you can open the Sum Discount/Price Rebate for editing by clicking the gear icon again.
The modal for discount configuration will open. In the "Search Discount Type" section, select the discount type you are looking for from the list that opens. Save this setting directly to your quote template.
If a rule matching the discount type is found in the quoting process, the discount value is automatically entered and criteria such as discount limit and minimum amount are displayed:
The Discount Matrix in appero quote Lightning
In the appero quote Lightning Editor, you can recognize the Discount Matrix by the label on the right side and by the "Description" column, which also displays the name of the Discount Type:
Basics of the calculation logic
To determine the discount, a comparison is made between the offer information and the existing discount matrices:
The Sum Discount/Price Rebate transfers the values for the product group(s) as well as the stored discount type. From the quote itself, the account and, if applicable, the associated customer group are passed.
The method determines the most exact match from the existing discount rules based on the passed filter criteria and passes the stored percentage value to the Sum Discount. If necessary, the minimum sum and the discount limit are also passed.
If no suitable rule is found, the rule is automatically hidden in the template.
In case of competing rules, e.g. if there is a Discount Matrix for both the account and its account group, the most precise specification will prevail, i.e. the rule for the account will apply, the rule for the account group will be ignored.
If neither account (group) nor product group is specified in the Discount Matrix, the rule applies globally to all products in the quote. The assignment of the discount type to account 1-4 in multi-level sales is then also invalid.