HOLD Button for Table Order

Hi all,

I’m wondering, anyone knows how to make a HOLD button so that the orders from the current table will not be sent to the kitchen when we close the table.
On the other side, when we feel ready to send the order to the kitchen, we can open the ticket again, Release the hold button, and send the order to the kitchen when close the table.

Thanks before for the help!


1 Like

You could create an action to change the ticket state to ON HOLD when presssing the hold button and set a constraint in the rule that sends the order to the kitchen to only work if the ticket state does not match ON HOLD

Then when reopening the ticket press a CANCEL HOLD button that would remove the ON HOLD ticket state so that when the ticket closes the order is then sent to the kitchen

You could make a HOLD button with toggle values of ON HOLD and RELEASE HOLD (or two separate buttons and map them to appear only when the ticket is in the relevant state) then you would need actions to update ticket state to ON HOLD when the on hold button is pressed and another action to remove the ticket state when the RELEASE HOLD button is pressed, and two rules to link the buttons and actions

EDIT - you could also add the close ticket action to the release hold rule so that when you press RELEASE HOLD the ticket state of ON HOLD is removed and the ticket automatically closes prompting the rule that sends the order to the kitchen to kick in, saving you having to close the ticket manually


Hi @RickH,

Thanks for your fast Reply!
Can you help me with the steps by steps instruction? I’m not keen to programming…


I can but im in the UK and its 2.20 in the morning here and im in bed (suppose to be sleeping) as im up for work in 4 hrs lol

Ive got a discount tutorial to write then ill have a look at setting this up, might be a few days though


Okay! Thanks a lot!!



Try this How to close ticket in fast food store


BTW this is not programming. Its configuring and step by step for this sort of thing has already been discussed on the forum many times. It might not be easy to find without some practice using the search function but try searching for some tutorials using search in upper right of forum.

1 Like

Dear @kendash,

I tried to search the forum as well. But i only found the one that emre suggested, to put Hold tags to the ticket.
But in my case, i put print to the kitchen action to ticket closing rule. So when i put Hold tags to the ticket, the kitchen will still print the orders.

Do you have idea how to make a rule that when there’s a HOLD tags, the kitchen will not print the order.

Thanks before!

Within the Rule that contains the Print Action (Ticket Closing), add another Constraint:

{TICKET TAG:Hold} Not Matches Hold

If your Ticket Tag and/or Sub-tag is different than above, adjust the Constraint accordingly. They are also case-sensitive, so keep that in mind as well. The values in the above example come from the Tutorial that is linked on this topic, so if that is what you are currently using for Ticket Tags, it should work.

Hi @QMcKay,

Thanks for your input!
I did add the constraint and it works, the printer didn’t print the order. (Thank you!)

However, i still find some issues here.
After i put the ticket on hold, the order still stated as “New” but the colour of the order changed to maroon (and it has order number)
I can’t cancel the order, even though the state is “New” (i tried to release the hold tag first, but it’s still the same)
I have to release the Hold tag, submit the order, then void the order. Which is counter intuitive for me.

Everything is good, but if i can cancel the item after i put it on Hold. It would be perfect.
Can you help me with this?

Thanks before,

The ticket says new? or just the orders? When you put something on hold and press close… it is closing the ticket. So this invokes anything that you set inside Ticket Closing, Ticket Closed, or Before Ticket Closing rules.

By design you can not cancel orders after a ticket is actually generated this is done when you close a ticket. When a ticket is closed you must use void or another custom method. You can revisit the process so it acts just like cancel order button.

So from what I can gather from the limited information you have given you need to create a custom button to mimic cancel order. This can be done with Update Order Action. It works just like Void button but you will customize the action so it takes the order off puts it back into inventory and does not impact sales.

Hi @kendash,

After i read your reply, I tried to put constrain in few rules that are related to ticket closing, and it’s still didn’t works.
The ticket is new (table still in white colour), and the order says new as well (not submitted, but the color changed to maroon as if submitted).

Just a quick question,
If i put a button that works like a void button, is it gonna be pretty risky? I think it will create a hole that can be exploited by employees. I always put the admin pin on void, but if i create this button with the admin pin… it’s going to be inefficient since the order still not punched to the kitchen yet.
If i create this button without the admin pin, it’s gonna be risky and can override the void button without the pin.

I think you are confused about how this system works. First what are you worried your employees will do if they cancel orders? I am not saying you create a void button. This button is not the same. It uses the same action but its not performing the same.

You can use constraints for when the button can be used as well as when its visible. It should only be used if the order is not submitted. This would be the same as canceling. Void is used if order is submitted.

What hole are you worried about btw?

Can you show a screenshot of the ticket before hold and after hold? Also did you change any behaviors of ticket states?

I am not sure what Risk your referring too. I personally find no risk in voids. However this question is unrelated as the button I referred too would not be a void button.

Oh okay, i thought this button will do the same thing like void button. I have that thought because the void button isn’t available when i put the order on hold (since it is not submitted yet)

Can you help me a bit for the Rule? Is it going to be like this?

Rule name : Cancel Hold Item
Event name : Automation Command Executed

Custom Constraint list
Execute rule if : Matches
Automation Command Name Equals Cancel Hold Item

Actions :
Decrease : False
Calculate Price : False

Status : New

Edit : Okay, I’m going to get the screenshot now

Before Hold

After Hold

The action should look like this:

EDIT: Sshot fixed.

The Rule:

You can set the automation command button mapping to Order Line and you can restrict it to be visible or enabled based on status of New Orders

It will look different than how the cancel order works because it will still show it as a completed ticket with 0 for each order. This is a good thing as you can track its use. But it will not impact any inventory or submitted orders.

Thanks @kendash !!
It works flawlessly for my current need.
Hope the future version of Sambapos can have native hold / delay button since this is common in restaurant service.

Anw, i just need a little bit of help here.
I tried to make a rule so that when there’s a HOLD tag in a ticket, the table would change into certain color (lets say blue)
I managed to do this with Update Entity State, but when i release the HOLD tag in the ticket and submit the order.
The color of the table still blue, can’t change back the regular orange color for submitted. And after i settle the payment, the table is still blue as well :o

This is not the direction it is going. Almost all of the buttons are now just Automation Commands/Actions/Rules. This makes them very customizable. We have the option to create some default buttons that are commonly used (Even these are not hard coded but just automated builds using automation commands, rules, and actions),but most buttons are going away from hard coding.

It may be common in some restaurant environments but its not common for all. Mine does not use it and many fast food do not use it. This is why you do not see many “Native” features. You do however have the tools to create them and this is what makes Samba unique.

All other POS solutions offer standard features… but it stops there. You are stuck using only those standard features because they deamed it as important for most businesses. What if its important for most businesses but not yours? You are still stuck with it. Samba changes that. With samba you can have it how you want it… it doesn’t matter what the industry is doing you can have exactly what you want.

MY point is I would much rather @emre spend his resources making Samba better vs spending resources building many different default setups for people because they feel its important to them. This is where community comes in to play. The community helps fill those gaps by providing tutorials, pre-built examples, and often personalized help.

1 Like

States are very powerful and you will mess up your entire flow if your not sure what your expected outcome is going to be. Can you show exactly what you changed? What rule did you place this Update Entity State?


Wow, if that the case… I think it’s better to skip it then. :smile:
It’s not crucial though…

Anw, Thanks a lot for your help Kendash!!