Setting up order fees
Order fees allow you to automatically add fees or discounts to an order when certain conditions are met. It can be used for example to add a ticket delivery fee or a transaction fee to the order.
Automatic order fees
are added automatically to an order if the order matches the rules of the orderfee. Rules are based on sales channel, delivery scenario and/or payment scenario. Order fees can be expressed as either a fixed amount or a percentage of the ticket price. If you need even more flexibility, you can use Script order fees
to define a script that will decide which fee to add to an order.
Order fees are managed in the Settings app. Click the button below to go to the Order fees module:
Go to order feesAutomatic order fees
An automatic order fee can have multiple rules. The general rules should be defined first and the exceptions later. Whenever the rules of an (automatic) order fee are checked it will execute the last rule that matches.
A match will occur if the order has a saleschannel, delivery scenario and payment scenario that matches the OrderfeeAutoRule. If it’s matched (and it is was the last rule that matched) the defined value will be added, based on the status (fixedfee or percentagefee).
For example: we can define a fixed fee of 3€ for all Web orders that use delivery scenario “Send via mail”:
Script order fees
In certain cases a percentage or value based order fee is not sufficient. In these cases an order fee script can be written in plain Javascript. This javascript is executed when needed and the return value of the script decides the fee that will be added. This script has an order object available.
Simple script
The script should be written in Javascript and should always return a number. It’s not necessary to write a function, only the script itself. The order (as defined in the public data model) is always available in the script environment.
For example, we can write a script to calculate an order fee of 0.5 euro per ticket, but only if the total amount of the order is smaller than 20€:
1if (order.totalamount < 20) {
2 return order.nbroftickets * 0.5
3}
4return 0;