Buy A Drink, Get A Voucher For Same Amount

Hi everyone, I’ve seen the tutorials about buying vouchers but is there any way in a drinks order to buy an item (any item on the menu) and make the customer pay but assign 1 or more drinks on the order to print a gift certificate with the item name (and ideally show that item on the receipt as ‘Not Poured, Given As Voucher’). A typical scenario is someone buying a round but 1 person opting out so he/she gets a voucher and returns another day to redeem the gifted drink. I know this can be achieved with a gift certificate but ideally I’d like it to be against an actual item from the menu (e.g. ‘Double Gin and Tonic’) - this way the purchasers receipt shows the drink bought rather than ‘Gift Voucher’ it also avoids the bar person having to know or manually check the value of the gifted drink to issue the voucher. I will extend this so that the voucher has a scannable unique barcode, a bit like gift certs. Thanks in advance :-).

Here we have a free coffee coupon sample built for V3.

V4 implementation might have slight differences but I think you’ll get the idea. You may not receive a full implementation tutorial / sample that works exactly as you need but if you start your own implementation you can get better help for your more specific questions.

1 Like

Hi @emre, Thanks for the response - I don’t think this would work for me though as to use this method I’d have to create a coupon for every product (literally 100’s!). What I’d prefer is to select and charge for a product off the normal menu but press a button to have that product print a unique redeemable voucher instead of being poured. I have searched but can’t really find anything like this, which I’m surprised about as I guess this would be very commonly used with punters buying bar staff drinks (though for my implementation I want to open it up to punters too).

Employ staff with better memories lol :slightly_smiling:
Only playing.
It would depend on how you want to manage it, it you want to literally create a voucher for each drink in it would be allot more complex.
At the hotel I admin tills for if someone buys a drink in for someone we have pre printed cards.
To translate that to on the fly printed vouchers it would be easy but that would just be a receipt/print showing a drink in with no back end admin/logging.
Something like that would be much more simple with the origional purchased processed as normal but just printing a ‘I’ve got one in voucher’ which when poured is not rang in as already pet of the origional ticket. If that makes sence.
Would need to look deeper into it but depending on your demand for this feature might be a more justifiable (time vs value) setup that having full blown vouchers.

@JTRTech Thanks for replying. Better memories would be ideal but high turnover of staff, hotel bar with infinite drink combinations and ingredients etc - hence new POS and staff not knowing all drinks prices. Voucher for each drink definitely not workable! The idea is to encourage punters/staff to accept drinks even if they can’t have there and then - and for the drink offered to be reflected on the customers receipt.

Currently for staff drinks the drink is rung through as normal, a receipt printed and the staff member circles the gifted drink on the receipt. This is then used as a token. It’s been abused in the past and if it works at all it only really works for staff, not punters. It also makes cashing up a nightmare, as the ‘tokens’ are rung through as normal as used as payment in the cash drawer, so have to be added up at the end of the night and deducted from the till float (existing POS is not Samba).

In a really perfect world on SambaPOS it would work exactly like the gift voucher system, except you could select a product on the order and click ‘Make Gift’ to print a voucher for the equivalent amount to give to the recipient - the customers purchase would go through as normal except the item line ‘Gifted’ would be amended to show ‘Drink Gifted, Not Poured’ as a note on the item. That way you’d have to be really cheeky to try and ‘convert’ a customers drink to a freebie as they will likely query the receipt text. Then when the customer returns the staff member just scans the barcode of the ticket to discount their next drinks order by the equivalent amount. Because its a unique gift voucher the ticket then cant be reused.

I guess it just needs some sort of macro to add a note to the selected item line and generate a £x.xx barcoded gift voucher (the price of the gifted drink), at zero cost, to be printed.

Why not create a miscellaneous product called “Staff Drink” , when the customer buys the member of staff a drink you key in the price and press staff drink product button. This would then add the product staff drink to the order at the price entered, customer gets a receipt showing this and that amount is paid for ready for when the staff want to buy their drink

Now to get a barcode print out for the staff to use to discount their drink purchase you could create a new print job and action and add that to an order added to ticket rule

Constrain that rule with order equals Staff Drink and ticket total equals zero, so the voucher/coupon will only print when the whole ticket has been settled and only when the Staff Drink product has been added to that ticket

The issue now is creating a barcode on the staff coupon print out that will match the value of the staff drink order that was added to the ticket, since this could be any price.

If you had a set value for what a customer would give if they offered to buy the staff a drink that would be simple, you could set the barcode to be that value and create actions and rules for what to do when that barcode is scanned (ie, discount the ticket by that much). I have a tutorial for that, search Ricks tutorials in the forum and there is one for scanning a voucher barcode to add discount to a ticket.

To create a barcode based on the order price added, which could be any price at all we would need a tag, I’m not at PC so can’t remember if there is a tag such as Order Price:X so we could then use in the printer template for the voucher something like:

< bar > { ORDER PRICE:Staff Drink }

This would then print the barcode for the price entered for staff drink, I’m not sure if there is a tag available to do that, or whether someone else can suggest an alternative way to get that order price

This would seem a nice flow to me:

  1. Customer offers to buy staff a drink
  2. Enter price of drink in keypad and press the Staff Drink product button
  3. Staff Drink product with price added to ticket
  4. Customer pays their transaction (ticket)
  5. Customer receipt prints showing Staff Drink order he paid for
  6. Staff coupon prints straight after customer receipt with a barcode for the price of the drink paid for
  7. Staff purchase a drink, scans the coupon barcode and the that value is deducted as a Staff Drink discount

That’s just my first thought of a way to do this, hope that gives you some ideas, or helps others to share their thoughts :slight_smile:

Look at this tutorial at step 7, creating a named miscellaneous item button. This will show you how to create a button called Staff Drink, that you enter the price on the keypad, then press the Staff Drink Button to add it to the ticket

@RickH Thanks Rick. Ideally I wanted to avoid manual entry of price as it relied on the staff member knowing the exact price of the drink they wanted - or in the case of a customer wanting to buy a ‘mate’ a drink for later redemption then the staff would have to look up the price- not an issue for pints but when you start getting to spirit doubles etc it becomes a problem (11 different whiskies on the bar, probably about 45 spirits in total, not to mention wines, all with different mixers and various measures!).

You raise an interesting point RE barcode though, my assumption was that the barcode used the number generator to create a unique number which was then cross referenced in the DB to give a discount amount, once redeemed it was marked as ‘used’ and voided - however your post indicates that the barcode is actually the discount amount, am I right and is that also how gift vouchers work, so in effect the barcode could be copied and reused?
How would your method differ from using an ‘open value’ ‘staff drink’ gift voucher, or can a gift voucher only be a set amount if my preferred method was not possible?
Maybe I’m asking for too much within my experience - I just hoped there was a tutorial or something that would help me create a button/action that added a note to the selected product and generated a zero cost gift voucher for the value of the selected line.
Thanks again,

The BAR tag just creates a barcode of whatever is on that line of the template… nor even specifically numbers.

The only way I can I can see you having the ‘security’ side would be to log each barcode generated.
Gift vouchers with a ‘credit’ account are easier as they are in essence one per transaction rather than potential for multiple per ticket.

I have a potential idea for you but is not straight forward and and cant offer huge amounts of guidence as flat out at the minute.

OK, my thought…

Ring in the gift item as normal.
Have a ‘Put In’ button which starts an execute automation command with command name, DrinkIn and command value of a RANDOM generator. I would set this to only work on new orders.
That command adds an order state of DinkIn=[:CommandValue] then create a program setting of DrinkIn_[:CommandValue] = {PRODUCT NAME}
You might need to set an additional order state of DrinkInVoucher=Print (for the voucher print to pick up on)
They create a ‘Order by Order’ (each order seperatly) template.

Then set a ticket closing print job similar to the kitchen print job which only prints DrinkInVoucher=Print orders into the voucher template.
But differently from the kitchen print which uses the default New->Submitted state update set a new state update of DrinkInVoucher=Print -> DrinkInVoucher=Printed so that they only print once of ticket closing.

You could if worried about that order being voided before payment you could use the orders DinkIn state to clear the value from the program setting as part of the void rule.

You would then setup the numberpad entered event to trigger an order adding rule through a flow of execute command of DrinkInOrder with value of {SETTING:DrinkIn_[:Numberpad]} which should call the product name from the program setting.
Use the command value to add the ‘In’ product and set it to update that order to default ‘GIFT’ state followed by another program setting action to remove the product name from the program setting so that scanning it a second time would not do anything.

This flow is all ‘theory’ and have not tried myself but would avoid the need for extencive account generation and workflow while giving the ability log what drinks in have and havent been used and prevent ring in more than once.

@JTRTech Thanks that sounds really useful and I think I get what you are saying and it sounds ideal. So basically if I understood correctly its a secure way of zeroing the price of a specific item on the order when the user redeems their voucher? So actually the barcode is a credit on a specific drink, rather than having monetary value?

If it helps I don’t mind all vouchers going onto a single credit account ‘Gifts’ - since the receiver is responsible for keeping the ticket (barcode) safe so providing it is secure and pre-paid then I have no need to track who is purchasing or receiving what voucher.

Gift vouchers with a ‘credit’ account are easier as they are in essence one per transaction rather than potential for multiple per ticket.

Interesting - so even if all else fails and as a fallback scenario I just told staff to use gift vouchers (manual price input) then could I still use Gift Vouchers tutorial (do you mean it doesn’t support multiple vouchers in a single transaction?), or do you mean that your own solution would only allow 1 gift or redemption per order?

You problem with that is you said you were worried about scanning the ticket more than once.
If you use a gingle credit account you would still need to track individual orders somehow ans you would do 10 drinks in seperatly but one voucher could be used 10 times if that makes sense.
This is why gift vouchers are done with a voucher account per voucher so when credit runs out it doesn’t work anymore.

The way I was going was to try and remove the need for ‘credit accounts’ as you would end up with many many more for each drink voucher (also in V5 you can delete program settings also in place of just clearing the value which with a simple SQL script could generate a report of all current drinks in)
This would work better for a less account style vouchers as actual accounts cannot be deleted where as a program setting can be cleared/deleted in V5.

If this was at my hotel (we just use drink in tokens for locals - custom printed poker chip type things) I would set it to clear all drinks in on a single function which would be run on stocktake day as all locals are told that any drinks in are lost if not claimed before the following stocktake.

Revenue wise what y ou could/should maybe try and do is make it so the buying transaction updated the decrease inventory to false so that the stock/item sale isnt logged as served and then the automatically added ‘gift’ order added from barcode would be decrease inventory = true which then logs that order line as served if that makes sense.

It would depend on your chosen setup. Gift voucher system I last did worked as only one per transaction as wasnt done via ticket it was a pure automation flow using ask questions to apply a credit to a gift voucher account.

My idea above could in theory allow a whole ticket/round to be set as drinks in and then print a ticket/voucher per order line.

Yes thanks a valid point, I didn’t realise that there was an account generated for each gift certificate, I assumed the number of the gift certificate was related to the certificate rather than the account it was attached to. I guess that would impact performance if I had a few hundred accounts running after the ‘ins’ build up? Unfortunately I need to keep them live after cashup as some staff only drink at the hotel once a month. I like your method and really appreciate the feedback, I need to try and put it into practice to see if I can make it work with my limited experience. I can’t see any downsides either, other than the redeemer is restricted to that very drink, but maybe thats a good thing? So am I correct that;

User buys drink, that item is ‘put in’
Voucher prints with receipt
When redeemed the voucher finds an identical drink on the order and zeros the cost, if no matching drink then no action taken
Voucher is voided after use

You could run with a value… I only said PRODUCT NAME as drink is would be for a type of drink, however with some minor adjustment you could run on value.
Rather than product name use product price as the setting value.
Then instead of scanning the code to add the product you add the product select then scan the barcode and set the command flow to change price and do PRICE minus SETTING VALUE.
You would need to work in some evaluation to check the voucher doesnt have a larger value than the order if mixing drink in product and drink claimed product.

A better name for this might be coupon rather than gift voucher as its a single use one product use rather than an account/reusable redusing value each time used.

Perfect thanks! Yes and I guess I could get clever with the order flow to print off a ‘change’ voucher if the order value was less than the voucher amount! So pretty much exactly what I was hoping to achieve. Will this work for multiple drinks creating seperate vouchers in a single order? Any other downsides you can think of? Really appreciate your help on this, can’t wait to give it a try!

It can become quite complex… depends on your goals and aims.
I personally would set it so they can only claim back the same drink that was purchased to remove the issue of different values/change/underpayment. At least for the locals/customers side.
Staff wise I have known places have a specific staff tip product say £2 or something rather than a whole drink however for staff as you have a finite amount of staff you could do a separate system for them more like a gift voucher where they can accumulate credit…