Complex Full Serviced Restaurant Scenario

Hi guys,

Not sure whether to start two separate topics, so hopefully @emre can separate the two if needs be.

I’m totally amazed on the versatility of SambaPOS as it is. But there are a few complex features which I understand that a full fledged restaurant (especially with seated service) would require. The most important features are the COURSES and SET MENU functions.

1) COURSES:

Currently, I know that there is already a possibility to send tickets to the kitchen and group different courses by their product groups. But what I can’t figure out is how to alert kitchen once the next course should be sent/prepared.

For example:

Starter 1:
1 x Salad
1 x Parma ham
Starter 2:
2 x Soups
Main Course 1:
1 x Lasagne
1 x Spaghetti
Desserts:
1 x Ice Cream

Would it be possible for there to be hard coded buttons which can send a ticket note to the kitchen alerting that the next course is ready to be sent out. It doesn’t need to be intelligent, just a simple button which will send a ticket to the kitchen to alert them of the message.

For example:

Furthermore, would it be possible to move selected dishes to move to a different course on the fly (at point of ordering).

For example:

On first waiter input:

Starter 1:
1 x Salad
1 x Parma ham
Starter 2:
2 x Soups
Main Course 1:
1 x Lasagne
1 x Spaghetti
Desserts:
1 x Ice Cream

Waiter can then re-arrange the items to this:

Starter 1:
1 x Salad
2 x Soups
Starter 2:
1 x Parma ham
Main Course 1:
1 x Lasagne
1 x Spaghetti
1 x Ice Cream

Moving the 2 soups to come as first course (Starter 1). Moving Parma Ham to second course (Starter 2) and finally sending out the Ice Cream together with the main course (Main Course 1) and thereby deleting the final Dessert course.

Maybe having two arrow buttons beside which will enable dishes to be moved up and down:

2) SET MENU

Will it be possible to program “SET MENU” buttons to automatically populate the ticket with the items as shown on the restaurant’s paper menu and still maintain the courses? Also, it might require on the fly editing by the waiter if the customer is allowed to change/swap a selection (maybe at extra charge).

For example:

Set Menu A (as advertised on the menu is):

Starter 1:
1 x Soup of the Day
Main Course:
1 x Roast Chicken
1 x Salad
Drink:
1 x House Wine (glass)

Customer has requested to change Roast Chicken to Roast Beef (at £3.00 extra charge) and moving the Salad to come with the Soup:

Starter 1:
1 x Soup of the Day
1 x Salad
Main Course:
1 x Roast Beef +£3.00
Drink:
1 x House Wine (glass)

The complexity of this blows my mind, I have no idea how to even start to make this happen. How would this be achieved?

Thanks thanks thanks!!!

1 Like

Hi, in my case I do not have menus, but I have some promotions, when on a weekday yu order a pizza you get a free 1 litre coca cola… so I implemented this with a question and some automation commands…

  1. execute a rule depending on the weekday and on the product added to the order

  2. ask for the soda…

  3. set up the automation comand soa rule can be executed

  4. Now depending on the answer of the question in point 2 add the desidered product



  5. in my case this will be a gift, so has to have GIFT status…

Hope this helps!!!

G.

To get you started, have a look at these, or search for “courses” in the Forum (that’s what I did)…

Thanks @gerlandog, but that doesn’t really work for my scenario.

Thanks @QMcKay, I’ve looked through those previously but they don’t really work in my setting. I won’t be using the kitchen displays and so I would need the kitchen to be alerted via tickets sent by the waiter. The closest option is the manually separating courses, but that would mean my whole product list will have to be merged as one and the solution is not very efficient.

Could there by any other way around this?

Hello @joegwell. Since your scenario is slightly unique none of these solutions will perfectly fit to your issue. However all current implementations already contains answers you need. I know that works a little different on SambaPOS but to be able to handle complex scenarios I’ll strongly recommend you to learn how SambaPOS automation features works.

I’ve prepared a sample SDF file to demonstrate you how you can solve your first question. Please check how I’ve configured default courses for products, how I can change course by clicking order line, how Serve button works and how Courses screen displays tickets.

data32.zip (122.2 KB) (installing V4.1.41 required)

It is a little time consuming to prepare a step by step documentation for all cases so sorry for just sending you a database file but I hope it will help. Thank you very much for detailing your questions with diagrams and feel free to ask anything you don’t understand there.

I hope more people sends us their implementations so we’ll have more samples here.

Thanks.

1 Like

Thanks @emre!

I’ve just tried it and it works very well, more or less does exactly as I require. I will look into making some modifications. Namely:

  1. Getting it to print a complete list of all the items ordered straight to kitchen first (in order for them to prepare the other courses while the starters are being eaten)

  2. Adding more courses, (for possibly Starters 1,2,3, Mains 1,2,3 etc)

Is there any easy way to import my old menu and restaurant table layout into this version (i.e. copying over some files)?

THANKS AGAIN!!!

If you own Database Tools module I’ve prepared an import file to import my configuration into your database. Please create a backup, import that file and configure default courses for products. Regarding (1) it will also send kitchen print when you first close ticket. If needed you can also change Kitchen Orders Template to group items by course. Thanks.

Courses2.zip (2.3 KB)

Thanks for the quick reply @emre.

I managed to add extra courses functionality now. But I still can’t get it to print the whole order to the kitchen on first close ticket. Do I need to edit the template? I have named the Default courses to Starter1, Starter2, Starter3, Main1, Main2, Main 3,Desert1, Desert2, and Drinks.

[LAYOUT]
Ticket
Date:{TICKET DATE}
Time:{TIME}
Table:{ENTITY NAME:Table}
Ticket No:{TICKET NO}
-
{ORDERS}

[ORDERS]
- {QUANTITY} {NAME}
{ORDER TAGS}

[ORDERS:Void]
- {QUANTITY} {NAME}|Void
{ORDER TAGS}

[ORDER TAGS]
– Format for order tags
* {ORDER TAG NAME}

I’ve added:

[LAYOUT]
Ticket
Date:{TICKET DATE}
Time:{TIME}
Table:{ENTITY NAME:Table}
Ticket No:{TICKET NO}
-
{ORDERS}

[ORDERS]

[ORDERS:Starter1]
- {QUANTITY} {NAME}
{ORDER TAGS}

[ORDERS:Starter2]
- {QUANTITY} {NAME}
{ORDER TAGS}

[ORDERS:Starter3]
- {QUANTITY} {NAME}
{ORDER TAGS}

[ORDERS:Main1]
- {QUANTITY} {NAME}
{ORDER TAGS}

[ORDERS:Main2]
- {QUANTITY} {NAME}
{ORDER TAGS}

[ORDERS:Main3]
- {QUANTITY} {NAME}
{ORDER TAGS}

[ORDERS:Desert1]
- {QUANTITY} {NAME}
{ORDER TAGS}

[ORDERS:Desert2]
- {QUANTITY} {NAME}
{ORDER TAGS}

[ORDERS:Drinks]
- {QUANTITY} {NAME}
{ORDER TAGS}

[ORDERS:Void]
- {QUANTITY} {NAME}|Void
{ORDER TAGS}

[ORDER TAGS]
– Format for order tags
* {ORDER TAG NAME}

But it still doesn’t print a complete list to the kitchen. What could be wrong?

Try including Execute Kitchen Orders Print Job action in Ticket Closing Rule. It should work first on selected actions list.

Cool!! Thanks @emre. That works perfectly now. I’ve managed to split the ticket print out to separate the items by groups, but can’t figure out how to order them in the course order it should be. How do I add an additional course tag in order to make the template categorize it according to my numbering?

I was thinking to add a number in front of the courses (e.g. 1Starter1, 2Starter2,3Main1,4Main2 etc…), but it will look very confusing for the waiter.

Thanks again!!

On Update Order Course action State Order setting defines sort order. For example it should be 1 for Starter, 2 for Main and 3 for Deserts. Since we read default course from product tag you can create an additional product tag to set a number for order. You should also update Update Order Course action to read product tag for sort order like we read course from product page.

Great stuff @emre. The ordering is sorted out now.

But:

  1. I am facing a problem where I have different categories for the menu.

I have some beef, chicken and seafood dishes, all of which are supposed to be served as mains. But when order is sent. Instead of the category group showing as “Main Course 1”, I am getting ‘Beef’ with all the dishes selected under it (even all the chicken and sides). It is using the first dish selected as the group name.

  1. the switching of the default courses doesn’t seem to be doing anything (i.e. I change a main course to be served as a starter, but it still prints out under mains).

Thanks again!

Sorry guys, can anyone offer any help/advice? Been working at this through the weekend, but still can’t get it to work. :frowning:

@joegwell probably something misconfigured or there might be syntax error but it is too hard to guess what might be wrong. Adding some screenshots or additional information that might help us to understand the issue will help a lot.

@emre How to print all course on 1 ticket with section header.

For Example:

              - Starter -
  • 1 starter 1

  • 1 starter 2

               - Main -
    
  • 1 main 1

  • 1 main 2

If I use template

[ORDERS]

[ORDERS:Starter1]

  • {QUANTITY} {NAME}
    {ORDER TAGS}

[ORDERS:Starter2]

  • {QUANTITY} {NAME}
    {ORDER TAGS}

[ORDERS:Starter3]

  • {QUANTITY} {NAME}
    {ORDER TAGS}

I will just print:

  • 1 starter 1
  • 1 starter 2
  • 1 main 1
  • 1 main 2

Thank you,
Sukasem

I beleive something like:

[ORDERS]
[ORDERS:Starter1]
<C00>**Starter**
- {QUANTITY} {NAME}
{ORDER TAGS}

[ORDERS:Main1]
<C00>**Main**
- {QUANTITY} {NAME}
{ORDER TAGS}

[ORDERS:Dessert1]
<C00>**Dessert**
- {QUANTITY} {NAME}
{ORDER TAGS}

Basically try inserting <C00>Section Header Name after your [ORDERS:x] tag

Hi @kendash,
Thank you for fast response,
What that template it will produce

                         **Starter**
- 1 Starter Item 1
                         **Starter**
- 1 Starter Item 2

and so on....

So it did not work I take it?

This topic will give some useful idea about the solution.

Hi Emre,

What tag I have to use to refer to group by Custom Tags.
I try:

[ORDERS GROUP|PRODUCT TAG]
{GROUP KEY}
I doesn’t work. PRODUCT TAG refer to Tag, not Custom tags.

[ORDERS GROUP|PRODUCT GROUP]
{GROUP KEY}
It groups by Group Code and does have section name (Group code) as well.

Thank you,
Sukasem