Discount limits are a feature in Sapera that allows companies to define the maximum discount amount or maximum discount percentage that a given user or user group may apply. The limits are linked to organizational levels, so they can be tailored per store, department or higher level.
When a discount limit is active at a level, Sapera automatically checks whether a given discount exceeds the limit. If the limit is exceeded, the discount is blocked, and the cash register operator or salesperson cannot remove the block.
Open Financial and select Setup in the menu. Under the setup menu, select Discount limits.
If you cannot see the menu item, you probably do not have permission for it. Contact support.
The screen is divided into two parts. On the left side an organization tree is shown where you select the level you want to view and manage discount limits for. The selected level determines:
Which limits are shown — the list on the right side shows all discount limits available at the selected level, including limits created at higher levels that can be inherited downward.
Which level a new limit is created on — clicking "+" creates a new limit linked to exactly the selected level.
Whether the Edit button is active — the Edit button (pencil icon) is only active when the selected limit in the list belongs to the currently selected level. Limits inherited from higher levels cannot be edited from here.
The leftmost column in the list contains a checkbox per discount limit. The checkbox controls whether the limit in question is active at the currently selected level. It is possible for a limit to exist at a higher level but be turned off at a specific lower level. Tick the box to activate the limit at the level; clear the box to deactivate it without deleting it.
New (+ icon) creates a new discount limit at the selected level and opens the create/edit dialog. The button is always available as long as a level is selected.
Edit (pencil icon) opens the edit dialog for the selected limit. The button is only active when the selected limit is created at the currently selected level — not at a higher level.
Delete (cross icon) permanently deletes the selected discount limit. The button is active when a limit is selected in the list.
Up (arrow up) and Down (arrow down) change the order of discount limits within the selected level. The order matters for the calculation: it is the lowest active limit that applies, but the order is used to sort limits in the list and during calculation lookups. The buttons are only active when the selected limit belongs to the current level, and there are limits to move past.
Copy to sublevels.. copies the activation status (on/off checkbox) for the selected limit to all sublevels under the currently selected level. Before execution, a confirmation dialog is shown with the text "Setup will be overwritten." — confirm with Yes to continue. The button is active when a limit is selected.
Copy to all org. units below this. copies the activation status for all limits at the selected level to all sublevels. The confirmation dialog is likewise shown. The button is active when a limit is selected.
Help button (?) opens contextual help for the discount limits screen.
Click "+" to create a new discount limit, or select an existing limit in the list and click the pencil icon to edit it. The dialog contains the following fields.
Level: Specifies the organizational level the discount limit belongs to. The field is read-only and is filled in automatically based on the level you had selected in the level selector when you clicked "New". When editing, the level the limit was created on is shown.
Name: Free-text name of the discount limit, shown in the list. The field is required. Example: "BlackFriday limit" or "Sales manager max".
System name: Internal identifier for use in integrations and calculation logic. The system name must be unique and must not contain spaces or special characters. The field is required at creation. When editing an existing discount limit, the system name is locked and cannot be changed.
Amount: The maximum discount amount in kroner. The field is optional, but either Amount or Percent must be filled in. The value must be positive and different from zero.
Percent: The maximum discount percentage. The field is optional, but either Amount or Percent must be filled in. The value must be positive, different from zero and at most 100. It is possible to fill in both Amount and Percent — in which case both limits apply.
User: Autocomplete search for a single user. Specifies which user the discount limit applies to. Either User or Group must be filled in — the two fields are mutually exclusive: if you select a user, the group is reset automatically and vice versa.
Group: Autocomplete search for a user group. Specifies which user group the discount limit applies to. Either User or Group must be filled in — mutually exclusive with the User field as described above.
The form requires that at least one of the Amount and Percent fields is filled in. The error message "Either amount or percent must be selected" is shown if both are empty at Save.
The form likewise requires that at least one of the User and Group fields is filled in. The error message "Either user or group must be selected" is shown if both are empty at Save.
The system name is validated as unique across all discount limits. If you try to save with a system name that is already in use, an error message is shown.
Discount limits you create and activate here apply automatically in Sapera's discount calculation engine in three places:
Pos screen (POS) — When a cash register operation contains an item with a discount, Sapera checks whether the discount exceeds an active limit for the user of the cash register in question. If the limit is exceeded, the item line is marked with a visual warning in the cash register view, and the cash register operator cannot remove or change the discount. The block is not lifted locally — it must be handled by a user with sufficient permissions.
Sales order lines — When creating and changing product lines on a sales order, Sapera calls the discount calculation engine, which compares the calculated discount with active limits for the user's level. If the lowest active limit is exceeded, the discount is blocked with result code "LimitExceeded".
Invoice lines — The same control mechanism applies to invoices, including when changing customer details on an invoice. The discount calculation engine checks the active limits for the user's level and blocks the discount if the limit is exceeded.
The limit that applies is the lowest active limit for the user's level relation. It is therefore important to consider the order and activation status when several limits are active at the same level.
If you have questions, you are welcome to contact support.
Want to know more?
Read more in these related articles:
Discounts
How to create and set up discounts in Sapera — incl. types, validity, product and customer restrictions, level management and automatic activation on sales.
New / edit discount
This article explains how discounts are set up, assigned and handled dynamically in Sapera
Loyalty programs
Create and manage loyalty programs that allow customers to earn and redeem loyalty points when purchasing at the cash register.