Discount actions
Discount actions
A comprehensive list of available discount actionsDiscount actions are the primary benefits that your customers receive from the discounts you offer.
This page is a key component of the Creating Discounts process, specifically Step 3. It provides a comprehensive guide to all possible discount actions, explaining their applications, configuration steps, and additional details.
After you select a discount action from the dropdown menu, the page will update dynamically. The available discount actions in the menu depend on the trigger type initially chosen.
Below, we detail the various discount actions.
Product Sets
Not applicable if the initial trigger type selected was Manual.
We kick off this action with the Discount type field under Set Discount values card. Available options include:
- Discount amount: Applies a fixed discount amount.
- Discount percentage: Applies a fixed discount percentage. Additionally, selecting this option prompts a Maximum discount amount field, explained under the order discounts action.
- Discount unit price: Applies a discounted unit price.
- Set fixed price: Overrides the product price with a specified fixed price.
- Free product: Allows selection of a free product from the specified set.
- Don't allow picking checkbox: If checked, prevents selection, automatically choosing the product listed under Default product. The setting
Discounts:PickProductAction:FilterOptionsOnStockAvailability
ensures that if set to true, the default product is not an option if out-of-stock, and will be replaced by the next available product from the set. If all products are out of stock, no options will be returned. This is similar behavior to what this setting does when using the Pick a product action.
- Don't allow picking checkbox: If checked, prevents selection, automatically choosing the product listed under Default product. The setting
Financial Distribution for Free Products
This section covers the financial dispersion behavior that applies to the impacted product sets and free product. Setting this to your preference is quite handy, especially in return order scenarios that originally involved a product sets discount action with a 'Free product'.
Expand to read more
To avoid scenarios where a customer returns product(s) that were originally the reason for triggering a product sets discount action with a 'Free product' and hence benefits from the received free product essentially through a loophole, this financial dispersion configuration comes into action.
- Products to consider: Specify here which products will be considered when performing the financial calculations.
- Distribution type: Specify here the way the financial implication of the discount will be distributed among the considered products.
Using a Script (checkbox)
The script would, for example, disperse the financial value of the free product among the other products of that same order rather than on the free product itself, with the latter being the default behavior. Doing so and based on the script, only a partial refund could be triggered on the return product to accommodate for the free product already in the customer's possession. The financial dispersion behavior would be based on what is defined in the tagged Discount financial implication script.
The script would, for example, disperse the financial value of the free product among the other products of that same order rather than on the free product itself. By doing so, and based on the script, only a partial refund could be triggered on the returned product to accommodate for the free product already in the customer's possession. The financial dispersion behavior would be based on what is defined in the tagged Discount financial implication script.
Here is a sample script:
extend DiscountFinancialDispersion
set financialDispersion to DefaultProductSetFinancialDispersion
set productDispersion to DefaultFinancialDispersion
set customFieldValue to User.CustomFields.QA_DiscountFinancialDispersion
if customFieldValue = '0' then
set financialDispersion to 0
set productDispersion to 0
else
if customFieldValue = '1' then
set financialDispersion to 1
set productDispersion to 1
else
if customFieldValue = '2' then
set financialDispersion to 2
set productDispersion to 2
else
if customFieldValue = '3' then
set financialDispersion to 3
set productDispersion to 3
else
if customFieldValue = '4' then
set financialDispersion to 4
set productDispersion to 4
end
output financialDispersion, productDispersion
Product Search Guide
After that comes the Product sets card, clicking the '+' icon will present some options:
Add Product Search
This option enables you to add a preconfigured product set.
Add Products
This option enables you to add individual products from your product catalog.
Add Custom Product Set
This option allows to create a product specifically for this discount. One that you would then create using filter products.
Filter Products
The filter is used to specify which products are part of your custom product set. The ones that would accordingly apply to this discount. Once you click the corresponding '+' icon to add products, you'll be presented with two options:
- Add products in bulk: prompts a notepad like modal where you can specify a Product property and input the corresponding values (use commas to separate between values).
- Add product filter: works the same as described here.
Afterwards, you can click the boxed magnifying glass icon on the filter products card to Show selected products in one view.
When determining the eligible products using Filter products, be advised that the product properties are culture sensitive.
Refer to the example for a detailed explanation.
Example
Assumption 1:
You have a product as follows:
Product property type | Value | Culture |
---|---|---|
Product_name | New Black pants | EN-USA |
Product_name | New Black trousers | EN-GB |
Assumption 2:
A discount is configured to apply universally across both the USA and UK. The discount uses the discount action “Product sets" and uses the product property type ”Product_name" specific to the EN-USA culture as in “New Black Pants" to determine the eligible products for the discount.
You have a discount configured that applies across cultures as in both USA and UK organization units. The discount action used in the discount is “Product sets” and you’ve used the product property type “Product_name” pertaining to the culture EN-USA so “New Black Pants” in the product filter.
Assumption 3:
Culture used across countries
- USA: Organization units use the culture code "EN-USA."
- UK: Organization units use the culture code "EN-GB."
Assumption 4:
Customers in both countries become eligible to avail the discount. Our frontend apps will behave as follows:
- USA: The discount applies correctly in the USA since the "Product_name" matches the EN-USA culture setting and the product set (eligible products) are identified.
- UK: The discount fails in the UK and cannot be applied because it references the EN-GB culture, where the "Product_name" differs and hence, the product set (eligible products) are not identified.
Summary:
Product properties are product culture sensitive when applying discounts.
Add Personalized Promotion
More on this option can be found here.
Add Product Requirement
This one applies to products with custom product requirements. Choose a product, specify the requirement, and set the corresponding value that would then trigger the action or condition of the discount.
Multiple product requirements can be added if necessary.
Order Discounts
These are straightforward, either percentage or fixed amount discounts. Simply, a percentage or an amount that will be deducted from the total payment due on an order.
If percentage is your preferred choice for this action, utilize the Maximum discount amount field. Leaving it empty would imply no maximum. Here's a few examples:
Discount percentage | Maximum discount amount | Order value | Discount given |
---|---|---|---|
20% | not specified | $100 | $20 |
20% | $10 | $100 | $10 |
20% | $50 | $100 | $20 |
Pick a Product
Not applicable if the initial trigger type selected was Manual.
This action works same as Get a product, except for the fact that you can specify multiple product for the customer to choose from. You can also distribute the options across tiers, so for each tier you can specify a minimum order amount that is required before the customer can pick one of the products from that tier. Further, you can specify a default product selection (optional).
There are a few things to consider if multiple products are applicable for the customer to choose from:
- The UI will only list 100 products to pick from.
- However, if for example, 200 were available a manual scan of the product will enlist the product and pick it.
There are a few settings that influence the behavior of which stock is available:
Setting | Value | Description |
---|---|---|
Discounts:PickProductAction:FilterOptionsOnStockAvailability | true | This would imply that the front end user would not get the default product as an option if the product is out-of-stock. If there was a list and all options were out of stock, no options will be returned. |
Discounts:PickProductAction:ForceDefaultProductWhenOutOffStock | true | This would imply that if the default product is out-of-stock, and the next/most expensive in stock product from the specified product list (a default behavior assuming a list exists) is also out-of-stock/cannot be determined, then the initial out-of-stock product would anyway be added to the order and the front end user would be prompted with an out-of-stock notification. |
Discounts:PickProductAction:FilterOptionsOnAssortment | true | To allow for further fine-tuning, set this to true to limit the configured gifts based on the assortment of the OU the user's logged into. |
Sliding Discount
Not applicable if the initial trigger type selected was Manual.
A sliding discount is a simple order discount, but the discount amount depends on one of two things:
- total order amount
- quantity of products in the order
Example: you can set the discount to be 10% when there is only one product on the order, and then set it to 20% if there are two products. You can add as many steps as you would like.
If a percentage config was your choice for this discount action, a field called Maximum discount amount will appear. The purpose of this field is described under the order discounts action.
Sliding Points
This directly links with Loyalty Programs. More on this action can be found here.
If a percentage config was your choice for this discount action, a field called Maximum discount amount will appear. The purpose of this field is described under the order discounts action.
Other Costs
This discount action allows you to set a discount on gift wrapping or shipping costs. This discount is a simple percentage or amount.
If a percentage configuration was chosen, a Maximum Discount Amount field will appear, explained under the order discounts action.
Get a Product
Not applicable if the initial trigger type selected was Manual.
In this action, specify a product and quantity to be given to the customer. You can also set a unit price, either discounted from the original or set to 0.00
to make the product free.
Setting the unit price to "0.00" automatically checks the Give Away Product box, making the Unit Price field disappear since it becomes irrelevant. The Give Away Product checkbox signifies that the product is entirely free.
Age Discount
Using this discount action, you can set an amount or percentage discount based on the customer's age. You can either let the customer's age be the actual discount amount or percentage, or create age tiers with the amount/percentage attached.
If a percentage config was your choice for this discount action, a field called Maximum discount amount will appear. The purpose of this field is described under the order discounts action.
User Custom Field Discount
This discount is not applicable if the initial trigger type selected is Manual.
The custom field action enables you to apply a discount based on the value of a User type custom field. This discount will reference Custom fields already configured as User type.
Define your discount type (either percentage or fixed amount) and provide at least two custom field values along with their corresponding discounts. If you select the Use value as discount checkbox, the entered custom field value will directly serve as the discount amount (only valid for integer values), rendering the Discount value field unnecessary.
Choosing a percentage-based discount will prompt the display of a Maximum discount amount field. This field's function is further explained in the order discounts section.
Fixed Amount (Trigger type manual or loyalty)
This action will only be visible if trigger type manual or loyalty was initially chosen.
It can be set to a fixed amount or a maximum amount, where the actual amount has to be specified when applying the discount to an order. This is possible since this will already be a manual process during checkout. Additionally, you can set the discount to apply either to the whole order, to an order line, or both.
The following fields require user input when applying this discount action:
Required Order Custom Fields: Specify a custom field that will be mandatory for users to complete when applying this discount action. This depicts that a value for the specified custom field must be provided before the discount can be applied. Keep in mind that only Order type custom fields will apply. For guidance on creating or editing Order type custom fields, refer to the Custom Fields documentation.
Reason Required: Selecting this checkbox makes it mandatory for users to provide a reason when applying this discount.
Percentage (Trigger type manual or loyalty)
This action will only be visible if trigger type manual or loyalty was initially chosen. The action behaves similar to the fixed amount one, except it uses percentages instead of amounts.
Required Order Custom Fields: Specify a custom field that will be mandatory for users to complete when applying this discount action. This depicts that a value for the specified custom field must be provided before the discount can be applied. Keep in mind that only Order type custom fields will apply. For guidance on creating or editing Order type custom fields, refer to the Custom Fields documentation.
Reason Required: Selecting this checkbox makes it mandatory for users to provide a reason when applying this discount.
Generate Coupon (Trigger type price rule only)
This action requires a DiscountCouponEmail Stencil to be set up.
This action is only visible if the trigger type price rule was initially chosen. Additionally, you must first create a discount with trigger type Generated Coupons to link here.
A coupon code is generated and emailed to the customer associated with the order as a result of this action. The coupon code can be used on future orders to avail the discount action specified in the Target Discount ID.
Target Discount ID field: This dropdown list displays all discounts with a trigger type Generated Coupon. You must link the related one here.
Store Generated Coupon on User checkbox: Checking this box binds the generated coupon to the customer who received it (customer attached to an order at the time the coupon was granted). This means that only the customer who initially received the coupon can use it on future orders. POS & Checkout App users are also notified of any bound customer coupons during order checkouts, allowing easy application.
Here is how a bound customer coupon appears on POS. You can see a €10 coupon bound to this customer on the right pane. Tapping Apply simply applies it to the order:
Check the Generated coupon use case sample.
Original Order Discount (Trigger type generated coupons only)
This action will only be visible if trigger type Generated coupon was initially chosen.
Using this action, you can set a discount to be an amount, which will be calculated based on the total amount of the order in which the coupon you're using was generated. Optionally, you can set the amount to only be calculated based on a certain set of products.