Rick's Tutorial - Buy X Get Y Free

Here is a quick guide to a buy X get Y free setup, in this case its buy 6 get 1 free when buying bottled beer.

Step 1 - Setup a Product Tag Caption
SETTINGS>PROGRAM SETTINGS>GENERAL SETTINGS

Under the Product Tap Caption field enter the name for this type of transaction, im calling it Promotion. This is a comma separated list with no space as you can see from my example below I have a number of different product tags for that do various other things. But for this tutorial ensure you have Promotion setup there

Step 2 - Add a Product Tag to each Product you want included in the promotion
SETTINGS>PRODUCTS>PRODUCT TAG EDITOR

Here you will see a list of all your products with each product tag in a different column. Again ignore all the rest of mine, just focus of the Promotion column we just setup. Next to each product that you want to include in your Buy X Get Y Free you need to add a tag in the Promotion column for that Item

In my example below I have entered B6G1F (Buy 6 Get 1 Free) next to Corona and Peroni as I only want the promotion applied to these two items, and in any combination of 6 added. As this is mix and match across products when the 6th bottle is added the discount price is spread across all products, result in the overall price reduced by the price of 1 .

Step 3 - Create the Action
SETTINGS>AUTOMATION>ACTIONS

Click Add Action, and Select the “Adjust Order Prices” action near the bottom of the list and complete as below:

Ensure Order Tag Name is set to the one we setup called Promotion, and enter all other setting as per below

The sort field set to Ascending will discount the value of the cheapest item, set it to Descending and it will discount the most expensive item if you are mix and matching products with different prices in the offer.

Step 5 - Create the Rule
SETTINGS>AUTOMATION>RULES

Create a Ticket Total Changed Rule, so this rule will run each time the ticket total changes, so if you add or remove an item the discount will automatically be added or removed depending on if there are 6 qualifying products in the screen (as in this case its buy 6 get 1 free)

Add the actions we just created, i called it Promotion X for Y Free Items and complete as below

So Promotion Description is what will be tagged to each order in the promotion, call this whatever you want, ive entered Buy 6 Get 1 Free you can also add these to your receipts or create a separate discount line on your receipt showing the offer.

Now for X and Y values, X is the number of products you need to add to get the number of Y free. So for buy 6 get 1 free you need to add 7 in X and 1 in Y. The reason X is 7 and not 6 is because in total you will have sold 7 products (6 + 1 free), so when you add the 7th product the discount is applied for 1 product giving you 6 paid for and the 7th free

Order Selector links to the product tag we setup at the beginning so the rule knows that any product tagged with the tag B6G1F in the Promotion column is to be included in the offer. You must enter this exact otherwise it wont work, in this case it is:

(MT.Promotion=B6G1F)

Dont forget to SAVE the rule

Now on the Pos screen add any combination of products setup for the offer and once the 7th is added the discount is applied and spread across all 7 items added.

If you remove 1, then the offer is removed as you no longer have met the requirements of buy 6 get 1 free and there are now only 6 items on the ticket, once you add the 7th item this generates the discount, so it doesnt automatically add 1 free when 6 products are added as it doesnt know what other product you are going to add to make the calculation, this is why 7 need to be added then the discount kicks in and discount 1 product, in this case it discounts the £3.00 Product as this is the cheapest (from the Ascending setting in the action that we set)

Image below shows 1 item removed leaving just 6

Add another qualifying product and the promo is added again

You can then setup your receipts to show each discount type added, for example below you can see the promo tag and discount across each line in the promotion.

A sub total of the cost of the 7 items before the discount is applied, then underneath i have a discount section that lists all the discounts types on the order, in this case just Promotion Discount is Added from our offer

Then the total showing what the customer will pay once all the discounts have been deducted

7 Likes

bargain :wink: I’d go here :grinning:

1 Like

oops haha, i changed it now lol

Rick’s help me with the ticket template please, the discount is not reflected, I have achieved everything except the template.

Sorry been off for a while did you sort your template?

I have not been able to get success

Looking @ Rick’s tutorial and if you have it setup the same, does {ORDER TAG TOTAL:Promotion} give you the proper total?

1 Like

So my Sub Total is the TICKET TOTAL with all my discount options added to it to give the total amount BEFORE discount, this is for mine below

£[=F(TN('{TICKET TOTAL}')+TN('{ORDER TAG TOTAL:Discount Item Custom Value}')*-1+TN('{ORDER TAG TOTAL:Discount Item Custom Percent}')*-1+TN('{ORDER TAG TOTAL:Price Override}')*-1+TN('{ORDER TAG TOTAL:Promotion}')*-1+TN('{CALCULATION TOTAL:Discount Ticket Total Percent}')*-1+TN('{CALCULATION TOTAL:Staff Discount}')*-1+TN('{CALCULATION TOTAL:Manager Discount}')*-1+TN('{CALCULATION TOTAL:Loyalty Discount}')*-1,'0.00')]

I then list all the different discounts types underneath, so in this case just the promotion discount was used so its lists that using the below

£[=F(TN('{TICKET TOTAL}')+TN('{ORDER TAG TOTAL:Promotion}')*-1,'0.00')]

Then underneath that I have Discount Total that adds up all the different discounts that may be on a ticket, promotion, staff discount, line discount, price override etc. So that looks like the below:

-£[=F(TN('{ORDER TAG TOTAL:Discount Item Custom Value}')*-1+TN('{ORDER TAG TOTAL:Discount Item Custom Percent}')*-1+TN('{ORDER TAG TOTAL:Promotion}')*-1+TN('{ORDER TAG TOTAL:Price Override}')*-1+TN('{CALCULATION TOTAL:Discount Ticket Total Percent}')*-1+TN('{CALCULATION TOTAL:Staff Discount}')*-1+TN('{CALCULATION TOTAL:Manager Discount}')*-1+TN('{CALCULATION TOTAL:Loyalty Discount}')*-1,'0.00')]

Then my TOTAL is just using the {TICKET TOTAL} tag which gives you the ticket total after discounts have been removed

1 Like