Promotions: like buy 2 pizzas, and get a salad free

Are there any options available in SambaPOS to create promotions ?

I have a pizza delivery setup where we need to make some promotions.

  1. Any two pizza of your choice at 500/-.
  2. Cold cut plate and free pizza bread (any of the 3 kind of pizza bread).
  3. Combo: Pizza + Salad + Appetizer at xxx baht
  4. Every 2 salad 1 pizza bread for free.
  5. Every 2 pizza 1 mix salad for free
  • Many pizzas under the category ‘Pizza’ in the menu.
  • Cold Cuts Plate is a unique product, Pizza Breads is a category
  • Salad & Appetizers are categories.

using the search function build in the forum I found these, that may help you start:

hope this helps


1 Like

Thanks! i have read through most of these topics already, and i think i have a simple solution to apply mine.

I’ve got a strange issue though…

  1. Created an Automation Command named ‘Promotions’ with the list of promos i would like to have as values.
  2. Created a rule for ‘Automation Command Executed’ for Promotions. Save the Command Value as a ticket tag.

Somehow. it doesnt seem to do anything at the POS screen. So i simplified my rule to simply Show Message [:CommandValue]. I still get nothing. Can someone help me figure out where i went wrong?

The Automation Command:

The Rule:


I think i’ve got a big issue now after SambaPOS version update. Currently using 5.1.61 Beta.

Automation Command executed rule on Automation Command Buttons doesn’t seem to work! I had delivery charge setup using the same kind of setup:

  1. Automation Command ‘Delivery Charge’ with values 20,40,60,100,Free
  2. Automation Command Executed rule to set delivery charge.

This was working fine, tested multiple times on v5.1.59. This does not work any more.
Its an urgent situation now as we are launching officially this coming monday. We upgraded the system to be able to work on some web services to integrate with the website.

I checked with v5.1.60 on my test computer and that seems to work fine. Unfortunately, after upgrade to v5.1.61 i have already done some changes, so reverting back to v5.1.60 will make me lose some of my work.

How quickly do you think this issue can be fixed?

To be quite honest you probably shouldn’t use a beta version in a working environment unless you are 100% sure it will work for you… If some hijf isn’t working in 1 version, assuming you have a backup, revert to an older version by uninstalling latest one and installing the one that works. Then use the beta to test till the issue is fixed then upgrade your working environment

What you can try is open your database and change database version to lower number (even lower than 5.1.59) and then reinstall 5.1.59 and see if it work.

Yeah if all else fails, i will have to install the older version.

@sukasem how do i change my DB version number?

And, would it be safe to downgrade from v5.1.61 to 5.1.60? or would i still need to change my DB version. Because on my test computer i have v5.1.60 and that works fine.

Management Studio open Program setting table.

Just chnage database version it is safe. You cant downgrade if database higher (I mean samba won’t start)

Do not change anything else, I don’t know what else is change in 61.
If after downgrade it does not work just reinstall 61 back on so you don’t lose anything.

BTW, I really doubt that 61 break automation button. I think you might change something and break it.

yeah it seems strange to have this functionality broken. However without changing anything, using 61 even on my test machine failed using the old functional setup that works at 60. So im a bit lost.

Automation Commands that do not submit a CommandValue seem to work fine. But all Commands that have a value to submit fail. Nothing was changed on them at all… Got it to work and moved on to the next thing…

Have sent my DB to emre in a PM, and hoping he can figure out if its a bug in the software or my code. If all else fails, will do the Revert version. Thanks!

Alright. copied the DB to my test machine, changed DB version back to the one corresponding to my install here (Table VersionInfo, deleted all entries that were higher than the version in the version.dat file).

Ran it on v5.1.60 works like a charm. Even the promotion bit is working.
So i think i can confirm this as a bug in 5.1.61

1 Like

so moving on further, i setup promotions as a ticket tag.

Now i want to set an order tag ‘Promotion’ based on a few condition when new order is added to a ticket.
The rule seems to be triggered just right. Used a show message action to confirm that.

However, Tag order action does not seem to do anything.

The Rule:

The Action:

Haven’t seen any replies from anyone yet, so here is my planned process:

  1. At new ticket, select Promotion. This promotion saved in a ticket tag.
  2. On adding new order, based on the promotion selected, check the following:
    • Order Item Group Code
    • Order Item Quantity
    • Number of Order Items already with a particular order tag (tag name promotion)
  3. If all conditions met, add the new order with the promotion tag if valid.
  4. Add ‘promotion price’ to the ticket(will apply the same idea as delivery charge) and make the relative orders Free.

Im currently stuck at step 2 where i need to get all this data, and then set the Order tag using a ‘Order Added to Ticket’ rule. Any pointers?

Your trying to read a ticket tag from order level that probably wont work. You may need to store that in a setting instead.

Also is that order tag defined? Did you allow free tagging? Sounds like you may want to use order state instead of tag.


i would prefer doing everything from the ticket level really.

yes, order tag is defined with free tagging. but order state idea sounds interesting. i’ll give that a try.

I would go with:

there you have all customer information plus, changing the price list would be easy…


Doesn’t work for me. Cant really have promotion prices because i have sets of products under categories and the set has a fixed price. If i have 1 Salad (A category of products. Different products with different prices.) and 2 breads free with it(another category with different products and prices). So i can not exactly apply a second rate table.

Lets say a customer wants 1 salad and 3 breads. Then i need to charge for that particular salad, two breads free, and one bread to be added to the total. So i need to also keep a count on number of items in the ticket. Entity changed event is too late. Need these calculated as soon as order is added to ticket. So it has to be at order added to ticket.

Other promotions have other schemes, but basically i need to be calculating on the fly as soon as an item is added to the ticket. So, my question is what are my possible list of actions on an ‘Order added to ticket’ event ?

Any action you desire. All of them.

Turned the Promotions into products with prices and created a separate menu category.

Added an apply promotion button for the orders.
The action basically sets the Item price to 0 so the promotion product price is applied and the item gets flagged as promotion item.
The only downside is cant let the ticket total be 0 when applying this action, that makes SambaPOS crash.
Error report says attempted divide by 0. So i think as long as we follow some basic procedure we can prevent the crashes.