In this document it will be explained how to add new product by scanning an unknown barcode.

 

1. Adding Script

Main Menu > Manage > Automation > Scripts > Here, click on Add Script.

Name: Add Product By Barcode

Handler: addproductbybarcode

In here copy/paste the below script into the Script field;

function addProduct(name, portion, category, price, barcode)
{
var response = gql.Exec('mutation m {addProduct(name: "'+name+'", groupCode: "'+category+'",barcode:"'+barcode+'", portions: [{name: "'+portion+'", price: "'+price+'"}]) { id name groupCode }}');
var result = JSON.parse(response);
if (!result || !result.data || !result.data.addProduct) return ":x: Fout: Product kon niet worden toegevoegd via GraphQL.";
var ProductID = result.data.addProduct.id;
gql.Exec('mutation m{postResetProductCacheMessage {id}}');
var portionID = JSON.parse(gql.Exec('{getProduct(id:'+ProductID+'){portions{id}, tags{name,value} }}')).data.getProduct.portions[0].id;
sql.ExecSql("UPDATE MenuItemPrices SET Price = '"+price+"' WHERE MenuItemPortionId = "+portionID+"")

gql.Exec('mutation m{postResetProductCacheMessage {id}}');

return ":white_check_mark: Product '"+name+"' met portie '"+portion+"' en prijs "+price+" toegevoegd via GraphQL!";
}

 

After completing necessary editings, click on Save button.

 

2. Adding Actions

2.1. Adding APB-Add Order Action

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

Action Name: APB-Add Order

Action Type: Add Order

Parameters:

Menu Item Name: [:Menu Item Name]

Portion Name: [:Portion Name]

Quantity: [:Quantity]

After completing necessary editings, click on Save button.

 

 

2.2. Adding APB-Add Product Execute Script Action

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

Action Name: APB-Add Product Execute Script

Action Type: Execute Script

Parameters:

Function: [:Function]

Parameters: [:Parameters]

Run In Background: True

After completing necessary editings, click on Save button.

 

 

2.3. Adding APB-Show Popup Action

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

Action Name: APB-Show Popup

Action Type: Update Program Setting

Parameters:

Setting Name: [:SettingName]

Setting Value: [:SettingValue]

Is Local: True

After completing necessary editings, click on Save button.

 

 

3. Adding Rule

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

Rule Name: APB-Unknown Barcode Scanned

Event Name: Numberpad Value Entered

Execute Rule If: Matches

Add Custom Constraint:

{ENTITY NAME:Products}|Is Null|

Select Actions:

Action-1: APB-Show Popup

SettingName: PRD_productName

SettingValue: [?Name;;;OCN]

In here click on Select Actions button and move APB-Show Popup to the right side.

Add the same action 4 more times on the Action Adding Screen by right clicking on mouse and select Display All Values.

Action-2: APB-Show Popup

SettingName: PRD_productPortion

SettingValue: Normal

Action-3: APB-Show Popup

SettingName: PRD_productPrice

SettingValue: [?Price;[0-9.]{0,};;OCN;49,50,51|52,53,54|55,56,57|190,48,8]

Action-4: APB-Show Popup

SettingName: PRD_productBarcode

SettingValue: [:NumberpadValue]

Action-5: APB-Show Popup

SettingName: PRD_productCategory

SettingValue: [?Category;;{REPORT MENU ITEM DETAILS:M.GroupCode,T.GroupCode.asc}]

Action-6: APB-Add Product Execute Script

Function: {CALL:addproductbybarcode.addProduct('{:PRD_productName}', '{:PRD_productPortion}', '{:PRD_productCategory}', '{:PRD_productPrice}', '{:PRD_productBarcode}', '{:PRD_productMenu}')}

Action-7: APB-Add Order

Menu Item Name:[='{SETTING:PRD_productName}']

Portion Name: [='{SETTING:PRD_productPortion}']

Quantity: 1

After completing necessary editings, click on Save button.