Introduction
This knowledge-based article provides developers with the information necessary to develop Add-ons for creating custom menus on the Management Console and the Point of Sale (POS).
Overview
With iVend versions 6.5 and above, the Extensibility framework provides developers the ability to create custom menus in the Management Console and the POS. These can also handle click events available for menu customization.
In order to create custom menu, the developer needs to write custom code using the iVend Add-on framework.
Steps for creating a Menu and a Menu Category in the Management Console:
“ConsoleMenuCategoryCommandBase” class
1. For Menu Category, create a class let us say “MANAGEMENT CONSOLEMenuCategory.cs” and extend it with
using CXS.Retail.Extensibility.Menu;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
1. Define the base class properties as shown in the below code:
namespace SampleAddOn2
{
//For adding Menu category
public class MANAGEMENT CONSOLEMenuCategory : ConsoleMenuCategoryCommandBase
{
public MANAGEMENT CONSOLEMenuCategory()
: base()
{
base.Id = "SampleCatgeory";
base.Caption = "Sample Configuration";
base.Position = 1;
base.IsVisible = true;
base.Group = CXS.Retail.Extensibility.ConsoleMenuGroup.Administration;
base.ToolTip = "Sample Configuration ";
}
}
}
“ConsoleMenuItemCommandBase” class
3. For Menu Item, create class - let us say “MANAGEMENT CONSOLEMenuItems” and extend it with:
4. Define the base class properties as shown in the below code and add business logic on the overridden execute method of “ConsoleMenuItemCommandBase” class.
class MANAGEMENT CONSOLEMenuItems : ConsoleMenuItemCommandBase
{
public MANAGEMENT CONSOLEMenuItems():base()
{
base.Category = CXS.Retail.Extensibility.ConsoleMenuCategory.CustomGroup;
base.CategoryId = "SampleCatgeory";
base.Id = "Custom Menu";
base.Caption = "Custom Menu";
base.Position = 1;
base.IsVisible = true;
base.IsEnabled = true;
base.ToolTip = "Custom Menu";
}
public override void Execute()
{
MessageBox.Show("Custom Menu clicked !!");
}
}
5. Add Menu category and Menu item on Add-on Start method.
public override void Start()
{
base.Start();
// add menu category and menu item.
AppExtensibilityContext.AddConsoleMenuCategory(new MANAGEMENT CONSOLEMenuCategory());
AppExtensibilityContext.AddConsoleMenuItem(new MANAGEMENT CONSOLEMenuItems());
}
Follow the steps mentioned below for creating a custom menu in the POS:
1. Create a project (class library) for adding Add-on logic and define the basic details of the Add-on
1. For a POS custom menu, create a class let us say “POSMenu.cs” and extend it with:
“POSMenuItemCommand” class.
1. Define the base class properties as shown in the below code:
class POSMenu : POSMenuItemCommand
{
public POSMenu() : base()
{
base.Position = 1;
//we need to specify category where we are adding the menu item.
base.Category = POSMenuCategory.CustomerOperations;
base.Caption = "Custom Menu 1";
base.Id = "CustomMenu1";
base.ToolTip = "Custom Menu 1";
}
}
The custom menu can be added in any of the existing POS Menu categories (i.e. CustomerOperations, POSOperations, StoreOperations, TransactionOperations)
1. Add business logic on the overridden execute method of POSMenuItemCommand for the menu click event.
1. Add Menu category and Menu item on Add-on Start method.
AppExtensibilityContext.AddPOSMenuItem(new POSMenuForCustom());
Custom menu on Point of Sale (POS)
Reference
Refer to the CitiXsys Knowledge Portal for more information.