Blue Light Card - Discount help needed


I don’t think any of you are aware, but during my time away I went through a long process of applying to be a FireFighter and… yes I got the job and have almost finished my training…

Its made me want to give a great discount to anyone in the services, so we offer 50% off a max of 2 drinks a day. A card has a 6 digit code on it.

I want to be able to add, for example, 3, 4 or 5 drinks etc then press a button where it asks me for their Blue Light Card number, I enter it, then applies a discount to just 2 drinks.

If they come in again the same day, we add the discount, it says that it cant be applied…

I think I could do it if it wasn’t limited to 2 drinks, but as its a maximum of 2 im having trouble in my head working it out…

Id make an entity for the card number and have it as last visit and discounts applied? and work a constraint on that?

Any ideas or suggestions?



think I got it… its all above init! Using entity, todays date and the number of orders for that day…

use rules that increase a number on a setting to a max (this case 2) so in increases live, 1 by 1, then a rule that applies the discount using constraints which relate to that setting…

Here goes :smiley:

EDIT: Almost got it! It only gives discount if my {SETTING:BLC{TICKET TAG:BLC}Points} is less than 3, but the first product doesn’t seem to give a point… ill work that out :smiley:


Lol, setting tastic, tag or state might have been better :wink:

So to wind you up is that going to be first two then? Or cheapest two?

Our discount setup uses ticket state and then have a discounts update flow which triggers the update for all discounts on needed events like total changed etc.
Using a discount type state allows only one discount to be used at a time since the state can only have one value and all discount ypes use sale state.

That method will probably work but to me is a little messy.

You could use a report expression to lookup tickets with a tag of the card number to ch ck if already used and maybe update the state value to count up drinks applied.


We have the Fire Service Collage just down the road in Moreton l-in-Marsh here, sounds like a good idea… Is that a national thing your joining or just your own deal?



I’ve thought of another way now, using entities.


That have been asked a lot. How it works?


Same as bit store offer like buy one get one free etc.
Typical shop offer at lease here in UK.
Even multi buy offers also.

At Tesco you get allot like these, typically on a buy x get n free it’s available on a selection of products and it’s the cheapest one(s) you get free.
These are usually shown on receipts in a calculation/discount equivilant.
It’s quite tricky if as all possible to achive this type of offer clean and smoothly in samba in a fully automatic way, at least that I can see or have seen on forum


I’m wondering real life use cases. If additional features needed to achieve this we can create a topic and discuss that.


It’s come up a few times.
I’m not sure how the logic goes, guess it would need ability to ‘list’ applicable orders by price and get sum of the first x number to calculate discount.


same issue we had with things like buy on get one free, its hard to automate, and then if you remove one item you could end up with the free one being left on the ticket as samba doesnt know to calculate how many order there are and how many are free, so that if 1 is removed a free one should be removed also

same sort of thing with buy 2 get 1 free etc you could add 2 of a product to the ticket and automate adding a 3rd free, but taking the free one off if a paid one is removed can be tricky especially if you have multiples like 6 on a ticket with 3 free (buy 2 get 1 free) then start removing 1 or 2, i dont think so far its been possible to automate that and the ticket to auto calculate what on it and if anything should be added free or taken off if ticket no longer qualifies


Think this would be a great idea :slight_smile:


I agree also, it would be good to discuss ways to easily implement these types of promotions. Yes a lot are retail based but it happens in hospitality, could have 3 beers for £10 in a bar and not all are the same price, if someone bought 4, you would want to make sure you discount the cheapest 3 for the promo.

I’ve had to do quite complex methods (not perfect also) to do this before for a bar, and also had someone using in retail wanted to do buy one get one free, buy 3 for x amount and cheapest free, etc. These are very complex to setup in SambaPOS and very complex for the end user to change themselves later. I think if we could have a method or module to handle discounts would be good, maybe just having a feature with some preset or customisable discount rules that we could apply across a ticket somehow, and make it easy to apply them. I can show some examples of what is difficult in SambaPOS, like what @JTRTech was mentioning, these are common in the UK and I am sure in other countries too.

One issue that always concerns me is this is something we can’t really do well in SambaPOS currently, and a lot of other POS solutions have this sort of feature built in, especially those aimed at retail.


Here is a good example…

Any 2 for £6.00, you can see the product individual prices range from £3.30 to £3.70

If I add 3 to my cart, 2x £3.30 and 1x £3.70, you see it has applied the discount against the 2 cheapest items (£3.30) and the total is £9.70 = £6.00 + £3.70.

I am using a retail example as it is easier to find, but this same type of offer is common in restaurants and bars as well.


How it should work on Ticket? I mean how we should apply that while waiter entering / updating orders? We can create a discount and calculate it’s value from a script maybe. Would it work?


Anytime I have implemented any discounts, it’s always been to recalculate after any changes of orders on the ticket.


I think this is a good idea, other POS ive seen have a Multi Discount setup with rules built in so you can select to create a new off, add a list of products that are applicable to that offer, have a setting you just select to set cheapest item free.

So maybe samba could do something similar so its easy for the end user to select options and add products maybe a section in “Manage” under Products called Multi Discounts

It would probably need some back end " hard coding" so the end user has a simple interface to select and create offers, and i guess the only way it would work on the ticket would be to check any available discounts from the “multi discount” menu setup.

As products are added to the ticket they are checked to see if they match the criteria of a multi discount setup, and if so would be automatically applied to ticket.

Likewise if products are removed from the ticket the remaining orders on the the ticket are checked against any active multi discounts and the “Saving” removed if needed

There’s probably no easy way to do this where it can be a simply user interface to create and turn on and off multi discounts without a lot of back end work i imagine??


The easiest way to manage I can think of is to have a new tab for multi buy offers or merge with discounts/calculations section where you setup the options like qty for x price or buy n get n free. Name it which shows on calculation line. Presumeably order etc. Option to enable/disable rather than remove products.
Then for assigning products to offers either something in that tab like menu item selection popup OR a new drop-down on product pages to set an offer group like group tag execpt foxt to available offers. If that route would be nice if this was either a column on tag editor table or a table like it of its own for easier bulk management. Expect the menu item style method would be simpler to create.
I think going down this route puts in a methodology for expansion on offers and perhaps future extending to incorporate.a built in combo method.

A big complication would be overlaps of applicable products between offers.
Limiting to included in one offer at least on the two types above makes life allot easier.
My head hurts if I try and think about how to handle crossover of multiple offers where pesumeably on the basis of cheapest free if two offers could be applied given the orders entered but not enough items for both to be done in full that the one with the lower amount of discount is applied.
Perhaps limiting to allow only one offer inclusion per product at least at first might be a plan :wink:

As mentioned on other topic I think the calculations update etc need smoothing out. Know you did some tweeks on beta but not had chance to test yet. But expansion on offers and calculations for discounts would be a good improvement.
Most so being easier to have fluid automatically updating calculation type discounts and offers not requiring interaction other than adding orders if that makes sence. And not through a final calculate at the end but live as you go.


Does someone with the power want to move these posts to the topic mark created?


With complex use of product tags and order states it if there was report expressions to assist in the calculations it might be possible to achive but would be pretty complex to manage and couldn’t see a solution you would be happy to leave end user to update and manage themselves. And also expect there would be allot of hard to catch loopholes/gaps for potential losses/abuse and a fresh approach would be good.
Definitely think there is lots of room for ideas and improvements in the general offers/discounts etc area.


FYI this could actually be a add-on module @emre, if it were at a reasonable price I would expect a big take up even for the odd offer if it made it easier to manage. Maybe even a teired price like free for up to 5 offer types, so much for up to 10, 20 and unlimited?
Free, 10 maybe $20, 20 for $30 unlimited for $50.
Not sure if that is the model samba is going for but a valuable adodon and if price is small large uptake would help revenue without breaking the bank.
The lots of add-ons is obviously popular way to get more but unlike many others the one off purchase of samba/modules does put samba in a different position.
I’d happily shell out 20-30 for a more manageable offers system for all out properties and expect so too would many others.
And it’s not something that you need for a good system and can do simpler offers/discounts etc the old way. It’s just add-on for the improved expanded option. Comparing back to the WordPress model of basic free and small one off purchase for a pro version.