diff --git a/Client-Side Components/UI Pages/Add Multiple Items to Order Guide/README.md b/Client-Side Components/UI Pages/Add Multiple Items to Order Guide/README.md
new file mode 100644
index 0000000000..abae7b1e1c
--- /dev/null
+++ b/Client-Side Components/UI Pages/Add Multiple Items to Order Guide/README.md
@@ -0,0 +1,16 @@
+**Details**
+1. This code will add multiple items in an order guide in single click
+2. Order guide rule base creation will be automatic
+3. This code will also add variable set to selected catalog items automatically.
+
+**How to use**
+1. Go to "sc_cat_item" table and select the items to be added in list view.
+2. Look for "Add to order guide" in list actions.
+3. The list action will give you an option to select order guide and variable set to be added to catalog items
+
+**Components**
+1. UI Action
+2. UI Page
+3. Script Include
+
+
diff --git a/Client-Side Components/UI Pages/Add Multiple Items to Order Guide/Script Include.js b/Client-Side Components/UI Pages/Add Multiple Items to Order Guide/Script Include.js
new file mode 100644
index 0000000000..e4b73f56cf
--- /dev/null
+++ b/Client-Side Components/UI Pages/Add Multiple Items to Order Guide/Script Include.js
@@ -0,0 +1,58 @@
+
+var AddtoOG = Class.create();
+AddtoOG.prototype = Object.extendsObject(AbstractAjaxProcessor, {
+ addToOrderGuide: function() {
+ var msgArrNotAdded = []; // array to store not added catalog items.
+ var msgArrAdded = []; // array to store added catalog items.
+ var msg = '';
+ var item = this.getParameter('sysparm_itemList').toString().split(',');
+ var order_guide = this.getParameter('sysparm_og');
+ var var_set = this.getParameter('sysparm_set');
+ for (var i = 0; i < item.length; i++) {
+ var itemName = new GlideRecord('sc_cat_item');
+ itemName.get(item[i]); // get item name
+ var itemBckName = itemName.name.toString().replace(/[^a-zA-Z0-9]/g, "_");
+ // check if item is present in order guide
+ var checkStatus = new GlideRecord('sc_cat_item_guide_items');
+ checkStatus.addQuery('guide', order_guide);
+ checkStatus.addQuery('item', item[i]);
+ checkStatus.query();
+ if (checkStatus.next()) {
+ msgArrNotAdded.push(itemName.name);
+ } else {
+ // Add variable set to all catalog items selected
+ var set = new GlideRecord('io_set_item');
+ var orderVar = new GlideRecord('item_option_new');
+ set.initialize();
+ set.variable_set = var_set;
+ set.sc_cat_item = item[i];
+ set.order = '200'; // set order as per your requirement
+ set.insert();
+
+ // Add checkbox variable in order guide for each catalog item
+ orderVar.initialize();
+ orderVar.setValue('type', 7);
+ orderVar.setValue('cat_item', order_guide);
+ orderVar.setValue('question_text', itemName.name);
+ orderVar.setValue('name', itemBckName);
+ orderVar.setValue('order', 1200); // set order as per your requirement
+ orderVar.insert();
+ }
+
+ // Add rule base to order guide
+ var ruleBase = new GlideRecord('sc_cat_item_guide_items');
+ ruleBase.initialize();
+ ruleBase.setValue('item', item[i]);
+ ruleBase.setValue('guide', order_guide);
+ ruleBase.setValue('condition', 'IO:' + orderVar.sys_id + '=true^EQ');
+ ruleBase.insert();
+ msgArrAdded.push(itemName.name);
+ }
+ if (msgArrNotAdded.length > 0) {
+ msg = "Not added item are " + msgArrNotAdded + ' Added Items are ' + msgArrAdded; // array of items which are not added
+ } else
+ msg = 'Added Items are ' + msgArrAdded; // array of added items
+ return msg;
+ },
+ type: 'AddtoOG'
+});
diff --git a/Client-Side Components/UI Pages/Add Multiple Items to Order Guide/UI Action.js b/Client-Side Components/UI Pages/Add Multiple Items to Order Guide/UI Action.js
new file mode 100644
index 0000000000..199133250c
--- /dev/null
+++ b/Client-Side Components/UI Pages/Add Multiple Items to Order Guide/UI Action.js
@@ -0,0 +1,12 @@
+
+/*
+onClick function name : addToOrderGuide
+The UI action will prompt UI page to select order guide and variable set.
+*/
+function addToOrderGuide() {
+ var items = g_list.getChecked();
+ var dialog = new GlideDialogWindow("add_to_og"); // UI page name
+ dialog.setTitle("Select Order Guide and Variable Set"); // Prompt title.
+ dialog.setPreference("items", items);
+ dialog.render();
+}
diff --git a/Client-Side Components/UI Pages/Add Multiple Items to Order Guide/UI Page.js b/Client-Side Components/UI Pages/Add Multiple Items to Order Guide/UI Page.js
new file mode 100644
index 0000000000..dd9cf1fe67
--- /dev/null
+++ b/Client-Side Components/UI Pages/Add Multiple Items to Order Guide/UI Page.js
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+//Client Script of UI page
+
+function addItems(catItems) {
+ var og = document.getElementById("order_guide").value;
+ var varSet = document.getElementById("var_set").value;
+
+ var orderG = new GlideAjax('AddtoOG');
+ orderG.addParam('sysparm_name', 'addToOrderGuide');
+ orderG.addParam('sysparm_itemList', catItems);
+ orderG.addParam('sysparm_og', og);
+ orderG.addParam('sysparm_set', varSet);
+ orderG.getXML(addOrderGuide);
+}
+
+function addOrderGuide(response) {
+ var answer = response.responseXML.documentElement.getAttribute("answer");
+ alert(answer);
+ GlideDialogWindow.get().destroy();
+}