In this document, it will be explained how to apply auto combo implementation.

How It Works;

1. Adding Product Tag Captions

Main Menu > Manage > Settings > Program Settings > Product Tag Captions > here, write Combo,ComboPrice

After completing necessary editings, click on Save button.

2. Editing Product Tag Editor

Main Menu > Manage > Products > Product Tag Editor > here, to make Combo, select desired products as Main, Side, Drink from Combo Column. Into the ComboPrice column, write the new prices that will be taken once those products included into combo menu.

After completing necessary editings, click on Save button.

3. Adding Promotion Order Tag

Main Menu > Manage > Tickets > Order Tags > here, click on Add Order Tag Group.

General Settings Section;

Name: Promotion

Order Tag List Section;

Leave this section blank.

Mappings Section;

Here, add a row for each category that was marked as Main.

After completing necessary editings, click on Save button.

4. Adding Printer Template

Main Menu > Manage > Printing > Printer Templates > here, click on Add Printer Template.

Template Name: Combo Template

Merge Lines: Don’t Merge

Template:

Copy below code group and paste it into Template field;

[LAYOUT]
-- General layout
{ENTITIES}

<div style="font-size:20px;font-weight:bold;text-align:center;font-family:'Calibri'"></div>
<div style="font-size:20px;font-weight:bold;text-align:center;font-family:'Calibri'"></div>
<F>-
<div style="font-size:25px;font-weight:bold;text-align:center;font-family:'Calibri'">KITCHEN ORDER #{TICKET NO}</div>
<F>=
<div style="font-size:13px;font-weight:bold;text-align:left;font-family:'Calibri'">
<table>
<tr>
<td width="25">Qty</td>
<td width="196">Item Desription</td>
</tr>
</table>
</div>
{ORDERS}
<F>
<F>
<F>=
<div style=font-size:15px;font-weight:bold;text-align:center;font-family:'Calibri'">
<table>
<tr>
<td width=80 align=center>{TICKET DATE}</td>
<td width=170 align=right>{TIME}</td>
</tr>
</table>
</div>
<div style=font-size:15px;font-weight:bold;text-align:left;font-family:'Calibri'">
</div>
<F>=

[DISCOUNTS]

[ORDERS GROUP:]

[ORDERS GROUP|GROUP TAG]
<div style="font-size:20px;font-weight:bold;text-align:left;font-family:'Calibri'">
<table>
<tr>
<td width="25">{QUANTITY}x</td>
<td width="196">{GROUP KEY}</td>
</tr>
</table>
</div>

[ORDERS FOOTER]
<F>-

[ORDERS:GROUP TAG=*]
<div style="font-size:18px;text-align:left;font-family:'Calibri'">
[='{PORTION}' == '' ? '<table><tr><td width="196">       {PRODUCT NAME}</td></tr></table>':'<table><tr><td width="196">        {PORTION} {PRODUCT NAME}</td></tr></table>']
</div>

{SORTED ORDER TAGS}

[ORDERS]
-- Default format for orders
<div style="font-size:19px;text-align:left;font-family:'Calibri'">
[='{PORTION}' == '' ? '<table><tr><td width="196">{QUANTITY}x    {PRODUCT NAME}</td></tr></table>':'<table><tr><td width="196">{QUANTITY}x    {PORTION} {PRODUCT NAME}</td></tr></table>']
</div>

{SORTED ORDER TAGS}

[ORDERS:Gift]
-- Format for gifted orders
<J00>{QUANTITY} {NAME}|**FREE ITEM**

[ORDERS:Void]
<div style="font-size:19px;text-align:left;font-family:'Calibri'">
[='{PORTION}' == '' ? '<table><tr><td width="196">{QUANTITY}x    {PRODUCT NAME} **VOID**</td></tr></table>':'<table><tr><td width="196">{QUANTITY}x    {PORTION} {PRODUCT NAME} **VOID**</td></tr></table>']
</div>

{SORTED ORDER TAGS}

[SORTED ORDER TAGS]
-- Format for order tags
<div style="font-size:17px;text-align:left;font-family:'Calibri'">
<table>
<tr>
[='{ORDER TAG NAME}' == 'Extra fee' ? '' : '<td width=272><b>            {ORDER TAG GROUP}</b>: {ORDER TAG NAME}</td>']
</tr>
</table>
</div>

[SORTED ORDER TAGS:Toppings]
<div style="font-size:17px;text-align:left;font-family:'Calibri'">
<table>
<tr>
<td width=272><b>            {ORDER TAG GROUP}</b>: {ORDER TAG NAME}</td>
</tr>
</table>
</div>

[SORTED ORDER TAGS:Condiments]
<div style="font-size:17px;text-align:left;font-family:'Calibri'">
<table>
<tr>
<td width=272><b>            {ORDER TAG GROUP}</b>: {ORDER TAG NAME}</td>
</tr>
</table>
</div>

[SORTED ORDER TAGS:Promotion]
-- Format for order tags

[SORTED ORDER TAGS:Instructions]
-- Format for order tags
<F>-
<div style="font-size:14px;text-align:left;font-family:'Calibri'">
<table>
<tr>
<td width="196">INSTRUCTIONS: {ORDER TAG NOTE}</td>
</tr>
</table>
</div>
<F>=

[ENTITIES:Customer]
-- Customer entity format
<div style="font-size:20px;font-weight:bold;text-align:center;font-family:'Calibri'">Customer: {ENTITY DATA:FirstName}</div>
<div style="font-size:20px;font-weight:bold;text-align:center;font-family:'Calibri'">Phone: [=F(TN('{ENTITY DATA:Phone}'),'# (###) ###-####')]</div>
<F>-

After completing necessary editings, click on Save button.

5. Adding Actions

5.1. Adding Adjust Combo Price Action

Main Menu > Manage > Automation > Actions > here, click on Add Action.

Action Name: CO-Adjust Combo Price

Action Type: Adjust Order Prices

Parameters:

Description: Combo Promo

Function Type: X for Y$

X: 3

Y: [:functionY]

Order Tag Name: Promotion

Price Selector: [:priceSelector]

Distribute Discounts: True

Use Order Price: False

After completing necessary editings, click on Save button.

5.2. Adding Combo Refresh Ticket Action

Main Menu > Manage > Automation > Actions > here, click on Add Action.

Action Name: CO-Combo Refresh Ticket

Action Type: Display Ticket

Parameters:

Ticket ID: Blank

After completing necessary editings, click on Save button.

5.3. Adding Execute Find Combo Action

Main Menu > Manage > Automation > Actions > here, click on Add Action.

Action Name: CO-Execute Find Combo

Action Type: Execute Automation Command

Parameters:

Automation Command Name: Find Combo

Background: False

After completing necessary editings, click on Save button.

5.4. Adding Regenerate Ticket Action

Main Menu > Manage > Automation > Actions > here, click on Add Action.

Action Name: CO-Regenerate Ticket

Action Type: Execute Ticket Command

Parameters:

Ticket Command Name: Regenerate Ticket

After completing necessary editings, click on Save button.

5.5. Adding Find Combo Orders Action

Main Menu > Manage > Automation > Actions > here, click on Add Action.

Action Name: CO-Find Combo Orders

Action Type: Select Orders

Parameters:

Order State: Combo=No Combo

Expression: "(MT.Combo=Main)","(MT.Combo=Side)","(MT.Combo=Drink)"

After completing necessary editings, click on Save button.

5.6. Adding Select Combo Orders Action

Main Menu > Manage > Automation > Actions > here, click on Add Action.

Action Name: CO-Select Combo Orders

Action Type: Select Orders

Parameters:

Expression: Order.GroupTagName == "[:Group Tag]"

After completing necessary editings, click on Save button.

5.7. Adding Remove Promotion Action

Main Menu > Manage > Automation > Actions > here, click on Add Action.

Action Name: CO-Remove Promotion

Action Type: Untag Order

Parameters:

Order Tag Name: [:orderTagName]

Order Tag Value: [:tagValue]

After completing necessary editings, click on Save button.

5.8. Adding Update Combo Action

Main Menu > Manage > Automation > Actions > here, click on Add Action.

Action Name: CO-Update Combo

Action Type: Update Order Group

Parameters:

Group Tag: [:groupTag]

Key: [:Combo Key]

Format: [:format]

Background Color: Green

Require Selection: True

After completing necessary editings, click on Save button.

5.9. Adding Remove Combo Group Action

Main Menu > Manage > Automation > Actions > here, click on Add Action.

Action Name: CO-Remove Combo Group

Action Type: Update Order Group

Parameters:

Group Tag: [:groupTag]

Key: [:key]

Format: [:format]

Background Color: [:backgroundColor]

After completing necessary editings, click on Save button.

5.10. Adding Update Order Combo State Action

Main Menu > Manage > Automation > Actions > here, click on Add Action.

Action Name: CO-Update Order Combo State

Action Type: Update Order State

Parameters:

State Name: Combo

State: [:Combo State]

Require Selection: [:Require Selection]

After completing necessary editings, click on Save button.

6. Adding Rules

6.1. Adding Find Combo Handler Rule

Main Menu > Manage > Automation > Rules > here, click on Add Rule.

Rule Name: CO-Find Combo Handler

Event Name: Automation Command Executed

Execute Rule If: Matches

Add Custom Constraint:

Automation Command Name|Equals|Find Combo

Select Action:

Action-1: CO-Find Combo Orders

Action-2: CO-Update Order Combo State

Combo State: In Combo

Require Selection: True

Action-3: CO-Adjust Combo Price

functionY: {ORDER DETAILS:MT.ComboPrice.sum:Order.IsSelected}

Action-4: CO-Update Combo

groupTag: {ORDER DETAILS:O.MenuItemName:Order.IsSelected AND (MT.Combo=Main)} Combo

Combo Key: {RANDOM:8}

format: {0}Customer Saved $[=F(TN('{ORDER DETAILS:O.Price.sum:Order.IsSelected}')-TN('{ORDER DETAILS:MT.ComboPrice.sum:Order.IsSelected}'),'0.00')]:{0}

Action-5: CO-Regenerate Ticket

Action-6: CO-Combo Refresh Ticket

After completing necessary editings, click on Save button.

6.2. Adding Clear Combo States Rule

Main Menu > Manage > Automation > Rules > here, click on Add Rule.

Rule Name: CO-Clear Combo States

Event Name: Before Ticket Closing

Execute Rule If: Matches

Select Action:

Action: CO-Update Order Combo State

After completing necessary editings, click on Save button.

6.3. Adding Update Combo State Rule

Main Menu > Manage > Automation > Rules > here, click on Add Rule.

Rule Name: CO-Update Combo State

Event Name: Order Added to Ticket

Execute Rule If: Matches

Add Custom Constraint:

{ITEM TAG:Combo}|Is Not Null|

Ticket Type Name|Not Equals|Online Ticket

Select Action:

Action: CO-Update Order Combo State

Combo State: No Combo

Action-2: CO-Combo Refresh Ticket

After completing necessary editings, click on Save button.

6.4. Adding Execute Find Combo Rule

Main Menu > Manage > Automation > Rules > here, click on Add Rule.

Rule Name: CO-Execute Find Combo

Event Name: Order Added to Ticket

Execute Rule If: Matches

Add Custom Constraint:

Ticket Type Name|Not Equals|Online Ticket

Select Action:

Action-1: CO-Execute Find Combo

Action-2: CO-Combo Refresh Ticket

After completing necessary editings, click on Save button.

6.5. Adding Cancel Combo Rule

Main Menu > Manage > Automation > Rules > here, click on Add Rule.

Rule Name: CO-Cancel Combo

Event Name: Order Cancelled

Execute Rule If: Matches

Add Custom Constraint:

{GROUP TAG}|Is Not Null|

Select Action:

Action-1: CO-Select Combo Orders

Group Tag: {GROUP TAG}

Action-2: CO-Adjust Combo Price

Action-3: CO-Remove Combo Group

Action-4: CO-Update Order Combo State

Combo State: No Combo

Require Selection: True

Action-5: CO-Remove Promotion

orderTagName: Promotion

tagValue: Combo Promo

Action-6: CO-Regenerate Ticket

After completing necessary editings, click on Save button.