There is an updated version available of this page

Promotional Coupons

Promotions overview screen

Promotions are electronic coupon codes that you can create for your customers to use during the booking process. The systems keeps track of which codes are used and whether offers are valid for the booking being made. If a coupon contains a discount it can be automatically applied. You can also create a batch of single use coupons, which is useful for Groupon type deals.

Setting up a Promotion

To be able to use promotions on a schedule we first need to add field to the reservation dialog that will hold the coupon code (aka “promo code”). To do this go to the configuration page, “Process” tab, and click the first of the two “Customize” links. In the “Edit Custom Field” screen that now appears make the following settings:

New promotion popup

Next go the “Overview” tab of the configuration screen and click the link “Set up promotions” next to the “Price” field. Note that this link is only visible if the schedule contains a coupon field. Now, on the promotions screen we can click the “New promotion” button to set up a new coupon code.

In the popup that appears we can enter the coupon code for the new promotion. Any combination of numbers, letters and spaces is allowed, and the code is not case-sensitive. All remaining fields on the popup are optional. The description field is for your own convenience only, it is not shown to the client. The next several fields allow you to limit the applicability of the coupon. The first date range is checked with the current date at the time the coupon is used. The second date range is checked with the date the appointment is made for. This allows you to create a coupon that only applies to a specific event. The date fields can also contain a time, if you want to limit the validity of a code to a single event within a day with multiple events. Finally, you can enter a time without a date to have it apply every day, for example to create a “Happy Hour” coupon. Simply leave any of the fields blank to indicate that the system should not check that limit.

There is a subtle difference between a coupon is marked as usable “once” and a coupon that is usable “1 times”. A coupon marked “once” can be used on a repeating appointment, so it can actually be applied to multiple dates in one go (assuming you allow repeating appointments on your schedule). For a coupon that is marked “x times”, on the other hand, the system will ensure it is not used more than x times including repeats. The check boxes with day names allow you to create coupons that can only be applied to weekend appointments, for example. Finally, the bottom field allows you to automatically apply a discount, as a percentage or as a flat amount. To create a coupon that entitles the user to a free appointment (skips the checkout phase) enter a discount of 100%. To create a coupon that does not give a discount, but has some other benefit that you handle outside the booking system, like a free T-shirt, just enter a discount of 0%.

After you save the coupon it appears in the list of available coupons. Any invalid coupon will be displayed in gray, for example because it expired or because it is a single use coupon that’s already been used.

To make a promotion apply only to a specific schedule, resource, class or service enter the magic word $limit xxx in the Description field. The promotion will only be valid if “xxx” appears in the schedule name or, depending on schedule type, in the resource name, the service name, the slot title or slot location. On a resource schedule the magic word can also be used to limit a promotion to a specific choice from the length selector, if that is enabled.

To match multiple consecutive words replace spaces with underscores, so to make a promotion apply only to the class “Intro course” use $limit Intro_course (the match is case-sensitive). You can use multiple $limit clauses on the same promotion, for example to limit it to both to a specific class title and class location.

Creating Multiple Coupons at Once

There is a separate facility for creating multiple coupons at once. This is especially convenient for single use coupons as used in Groupon deals, where each voucher has a different code that can be redeemed only once. You could also create a batch of single use coupons to be sold as gift certificates, however a gift certificate process can be better managed with the purpose built gift certificate feature of PayPal that works with SuperSaaS. PayPal has further documentation on gift certificates on their site.

To create a batch of coupons click the “New promotion” button and then click the small link “Enter a list”. A text area appears that allows you to type a list of coupon numbers, more likely, copy and paste a list of numbers from another program such as Excel. All options and restrictions you define in the rest of the popup will be applied to each voucher.

When you have more than a handful of promotions a new “Mass delete” option appears. This allows you to quickly remove all vouchers codes at once, or to remove all voucher codes that have already been used. The coupon code is checked at the time it is applied; removing coupons does not affect bookings that have been made using the coupon.

The Booking Process while using a Coupon

As with any change to your setup, it’s a good idea to try out whether the booking process with coupons works as expected. Note that the specific options “Can only be used once per user” and “Can only be used on the first appointment” only work if you are logged in as a user (or acting on behalf of one). The booking process when not using a coupon should not be affected at all, but if a valid coupon code is entered then the process can be influenced if the coupon contains a discount and a payment system is active. The discount is applied to the total price and if there is no amount left to be paid the booking is marked “Paid with coupon”, skipping checkout. If the value of the coupon is higher than the amount due, the surplus gets lost. The rest of the process proceeds as normal: If the customer has any remaining credit it gets applied and if there is no amount left to pay the booking gets marked “Paid with credit”. Finally, if there is an amount left to pay the user is forwarded to the checkout screen and the booking gets marked “Paid” once payment completes.

If you allow your customers to create a repeating appointment then be aware that the coupon is applied to each appointment in the series, even if the coupon is marked as usable only “once”. If you don’t want that behavior you can mark the coupon as “1 times” instead to make sure it really can be applied only to one specific appointment. On a repeating coupon the discount is applied to the total of all prices for each of the appointments. The “Used” column on the promotions screen show the number of separate reservations made that have the coupon applied, so a single use coupon applied to a booking that repeats 3 times can show “3”. If a user is entitled to a permanent discount (as explained on the payment tutorial) then the coupon discount takes precedence, even if the coupon has a lower or zero discount.

Once a regular user has entered a coupon code he is no longer allowed to change it, nor can he add a discount to an already created appointment. If you allow your users to delete appointments then they can still delete an entire appointment, at which point the coupon will be marked as “unused” again. Therefore, you would want to make sure that people cannot delete past appointments or they would be able to re-use coupons. The relevant setting is on the “Process” tab, under the heading "How long in advance can a user add or change his appointment?". As a superuser or administrator you can still modify the coupon code field. If you remove a code from a field or delete an appointment the corresponding coupon will be marked as “unused” again. The exception to this is the automatic clean up of appointments on the “Usage Information” screen, those do not affect coupon usage statistics.