You can use the optional "Validate by Phrase" property of a text field to give a flat discount to users who enter the proper coupon code.
Troubleshooting: Can a percentage discount be added?
Unfortunately, at this time forms are not able to utilize percentage discount. A form can only do a specific amount discount. This is, however, a suggestion over on Finalsite Ideas for future development. You can vote for it if you’d like this functionality to be considered.
The general idea behind the "Validate by Phrase" feature is that the form user must enter in a certain word or phrase correctly into a text element in order to submit the form - if the word or phrase entered does not match the criteria set by the form admin when it was created, the user will see an error message and won't be able to submit the form for payment. The validated text element can be combined with another form element that includes a price discount. Working together, the two elements will grant a discount to any user who enters the proper validation code.
The best way to include a discount code element is to use a radio button element to first ask the user if they have a coupon code; if the user selects “Yes,” they will be granted the discount AND prompted to enter the coupon code, which at that point becomes necessary to submit the form. If the user selects “No,” however, no discount is granted and no coupon code is required.
Our example form is pretty simple; it asks users to select the size T-shirt they want to buy, and then asks if they have a discount code.
To make this form on your own, start with two radio button elements and a text element. Drag them into your form.
The first element, the "Purchase a T-shirt" radio buttons element, doesn't have any particular special properties. Configure it with the size options of the T-shirt. Check the “Assign currency” checkbox and include the regular price of the T-shirt for each size in the options.
Then configure the "Coupon code?" radio buttons element, and make it required. In order for the coupon code to work, form users cannot be allowed to skip this question!
In addition, in the "List Items" section, select the “Assign currency” checkbox and add a “-5.00” value to the “Yes” response. This means users will receive a $5 discount if they select yes--as long as they also input the code correctly.
Finally, the “Enter Code” text field has two different types of special formatting: validation and conditional formatting.
Under “Validation,” set the "Select Validation" section to "Advanced Validation." Then, set the "Accepted Values" control to "By Phrase..." This will pop open the "Phrase" text box, where you can type the magic word, "coupon."
Next, apply the conditional property, so that the coupon code entry field only appears (and the discount is only applied) when the user indicates that they have a coupon code to enter. Select the checkbox in the "Conditional Settings" section. From the dropdown menu that appears, select the "Yes/No" radio button element that you created above. Then, select the "Yes" checkbox.
After you’ve added the conditional properties, you’ll notice that the “Coupon Code?” element now has a green outline, and the “Enter Code” field has a blue outline. The green border means that field is the “parent” element for a conditional element, in blue (see Use conditional fields for more information).
When the form is published, users will at first only see the yes/no radio buttons asking if they have a discount code. Selecting "Yes" will apply the $5 discount immediately, but it will also require that the user enter the proper code (in this case, "coupon"). Without the proper code, the validation will fail and the form cannot be submitted. If the user selects "No," then they don't get the $5 discount, and they never see the coupon-entry element. The form can be submitted as normal.