diff --git a/erpnext/accounts/doctype/pos_settings/pos_settings.json b/erpnext/accounts/doctype/pos_settings/pos_settings.json
index ab3976e..cdd1865 100644
--- a/erpnext/accounts/doctype/pos_settings/pos_settings.json
+++ b/erpnext/accounts/doctype/pos_settings/pos_settings.json
@@ -18,8 +18,9 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
-   "fieldname": "type_of_pos", 
-   "fieldtype": "Select", 
+   "default": "0", 
+   "fieldname": "is_online", 
+   "fieldtype": "Check", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
@@ -27,10 +28,10 @@
    "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
-   "label": "Type of POS", 
+   "label": "Online", 
    "length": 0, 
    "no_copy": 0, 
-   "options": "Online\nOffline", 
+   "options": "", 
    "permlevel": 0, 
    "precision": "", 
    "print_hide": 0, 
@@ -54,7 +55,7 @@
  "issingle": 1, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2017-08-28 16:46:41.732676", 
+ "modified": "2017-08-29 14:34:36.166049", 
  "modified_by": "Administrator", 
  "module": "Accounts", 
  "name": "POS Settings", 
diff --git a/erpnext/accounts/doctype/pos_settings/pos_settings.py b/erpnext/accounts/doctype/pos_settings/pos_settings.py
index 4a71775..c978a4e 100644
--- a/erpnext/accounts/doctype/pos_settings/pos_settings.py
+++ b/erpnext/accounts/doctype/pos_settings/pos_settings.py
@@ -7,10 +7,4 @@
 from frappe.model.document import Document
 
 class POSSettings(Document):
-	def validate(self):
-		link = 'point-of-sale' if self.type_of_pos == 'Online' else 'pos'
-		desktop_icon = frappe.db.get_value('Desktop Icon', {'module_name': 'POS'}, 'name')
-		if desktop_icon:
-			doc = frappe.get_doc('Desktop Icon', desktop_icon)
-			doc.link = link
-			doc.save()
\ No newline at end of file
+	pass
\ No newline at end of file
diff --git a/erpnext/accounts/page/pos/pos.js b/erpnext/accounts/page/pos/pos.js
index 5993724..3d5d5f4 100644
--- a/erpnext/accounts/page/pos/pos.js
+++ b/erpnext/accounts/page/pos/pos.js
@@ -8,8 +8,16 @@
 		single_column: true
 	});
 
-	wrapper.pos = new erpnext.pos.PointOfSale(wrapper);
-	cur_pos = wrapper.pos;
+	frappe.db.get_value('POS Settings', {name: 'POS Settings'}, 'is_online', (r) => {
+		if (r && r.is_online && !cint(r.is_online)) {
+			// offline
+			wrapper.pos = new erpnext.pos.PointOfSale(wrapper);
+			cur_pos = wrapper.pos;
+		} else {
+			// online
+			frappe.set_route('point-of-sale');
+		}
+	});
 }
 
 frappe.pages['pos'].refresh = function (wrapper) {
diff --git a/erpnext/selling/page/point_of_sale/point_of_sale.js b/erpnext/selling/page/point_of_sale/point_of_sale.js
index cc1e3f1..b523a49 100644
--- a/erpnext/selling/page/point_of_sale/point_of_sale.js
+++ b/erpnext/selling/page/point_of_sale/point_of_sale.js
@@ -7,8 +7,16 @@
 		single_column: true
 	});
 
-	wrapper.pos = new PointOfSale(wrapper);
-	window.cur_pos = wrapper.pos;
+	frappe.db.get_value('POS Settings', {name: 'POS Settings'}, 'is_online', (r) => {
+		if (r && r.is_online && cint(r.is_online)) {
+			// online
+			wrapper.pos = new PointOfSale(wrapper);
+			window.cur_pos = wrapper.pos;
+		} else {
+			// offline
+			frappe.set_route('pos');
+		}
+	});
 };
 
 class PointOfSale {
@@ -117,16 +125,12 @@
 			wrapper: this.wrapper.find('.item-container'),
 			pos_profile: this.pos_profile,
 			events: {
-				item_click: (item_code) => {
+				update_cart: (item, field, value) => {
 					if(!this.frm.doc.customer) {
 						frappe.throw(__('Please select a customer'));
 					}
-
-					this.update_item_in_cart(item_code, 'qty', '+1');
+					this.update_item_in_cart(item, field, value);
 					this.cart && this.cart.unselect_all();
-				},
-				update_cart: (item, field, value) => {
-					this.update_item_in_cart(item, field, value)
 				}
 			}
 		});
@@ -146,7 +150,7 @@
 			}
 
 			if(field === 'qty' && (item.serial_no || item.batch_no)) {
-				this.select_batch_and_serial_no(item)
+				this.select_batch_and_serial_no(item);
 			} else {
 				this.update_item_in_frm(item, field, value)
 					.then(() => {
@@ -257,6 +261,13 @@
 			}
 		}).then(r => {
 			this.pos_profile = r.message;
+
+			if (!this.pos_profile) {
+				this.pos_profile = {
+					currency: frappe.defaults.get_default('currency'),
+					selling_price_list: frappe.defaults.get_default('selling_price_list')
+				};
+			}
 		});
 	}
 
@@ -307,9 +318,9 @@
 		this.page.clear_menu();
 
 		// for mobile
-		this.page.add_menu_item(__("Pay"), function () {
-			//
-		}).addClass('visible-xs');
+		// this.page.add_menu_item(__("Pay"), function () {
+		//
+		// }).addClass('visible-xs');
 
 		this.page.add_menu_item(__("Form View"), function () {
 			var doc = frappe.model.sync(me.frm.doc);
@@ -319,6 +330,10 @@
 		this.page.add_menu_item(__("POS Profile"), function () {
 			frappe.set_route('List', 'POS Profile');
 		});
+
+		this.page.add_menu_item(__('POS Settings'), function() {
+			frappe.set_route('Form', 'POS Settings');
+		});
 	}
 
 	set_form_action() {
@@ -740,8 +755,7 @@
 		this.pos_profile = pos_profile;
 		this.items = {};
 		this.events = events;
-		this.currency = this.pos_profile.currency ||
-			frappe.defaults.get_default('currency');
+		this.currency = this.pos_profile.currency;
 
 		this.make_dom();
 		this.make_fields();
@@ -751,10 +765,11 @@
 
 		// bootstrap with 20 items
 		this.get_items()
-			.then((items, serial_no) => {
+			.then(({ items }) => {
+				this.all_items = items;
 				this.items = items;
-			})
-			.then(() => this.render_items());
+				this.render_items(items);
+			});
 	}
 
 	make_dom() {
@@ -795,8 +810,11 @@
 		});
 
 		this.search_field.$input.on('input', (e) => {
-			const search_term = e.target.value;
-			this.filter_items({ search_term });
+			clearTimeout(this.last_search);
+			this.last_search = setTimeout(() => {
+				const search_term = e.target.value;
+				this.filter_items({ search_term });
+			}, 300);
 		});
 
 		this.item_group_field = frappe.ui.form.make_control({
@@ -861,18 +879,26 @@
 				this.render_items(items);
 				return;
 			}
+		} else {
+			return this.render_items(this.all_items);
 		}
 
 		this.get_items({search_value: search_term, item_group })
-			.then((items) => {
+			.then(({ items, serial_no, batch_no }) => {
 				if (search_term) {
 					this.search_index[search_term] = items;
 				}
 
 				this.render_items(items);
-				if(this.serial_no) {
+				if(serial_no) {
 					this.events.update_cart(items[0].item_code,
-						'serial_no', this.serial_no);
+						'serial_no', serial_no);
+					this.search_field.set_value('');
+				}
+				if(batch_no) {
+					this.events.update_cart(items[0].item_code,
+						'batch_no', serial_no);
+					this.search_field.set_value('');
 				}
 			});
 	}
@@ -882,7 +908,7 @@
 		this.wrapper.on('click', '.pos-item-wrapper', function(e) {
 			const $item = $(this);
 			const item_code = $item.attr('data-item-code');
-			me.events.item_click.apply(null, [item_code]);
+			me.events.update_cart(item_code, 'qty', '+1');
 		});
 	}
 
@@ -944,10 +970,10 @@
 					search_value
 				}
 			}).then(r => {
-				const { items, serial_no } = r.message;
+				// const { items, serial_no, batch_no } = r.message;
 
-				this.serial_no = serial_no || "";
-				res(items);
+				// this.serial_no = serial_no || "";
+				res(r.message);
 			});
 		});
 	}
diff --git a/erpnext/selling/page/point_of_sale/point_of_sale.py b/erpnext/selling/page/point_of_sale/point_of_sale.py
index d34fc54..4e2b1b1 100644
--- a/erpnext/selling/page/point_of_sale/point_of_sale.py
+++ b/erpnext/selling/page/point_of_sale/point_of_sale.py
@@ -15,6 +15,7 @@
 def get_items(start, page_length, price_list, item_group, search_value=""):
 	condition = ""
 	serial_no = ""
+	batch_no = ""
 	item_code = search_value
 
 	if search_value:
@@ -23,6 +24,11 @@
 		if serial_no_data:
 			serial_no, item_code = serial_no_data
 
+		if not serial_no:
+			batch_no_data = frappe.db.get_value('Batch', search_value, ['name', 'item'])
+			if batch_no_data:
+				batch_no, item_code = batch_no_data
+
 	lft, rgt = frappe.db.get_value('Item Group', item_group, ['lft', 'rgt'])
 	# locate function is used to sort by closest match from the beginning of the value
 	res = frappe.db.sql("""select i.name as item_code, i.item_name, i.image as item_image,
@@ -52,6 +58,11 @@
 			'serial_no': serial_no
 		})
 
+	if batch_no:
+		res.update({
+			'batch_no': batch_no
+		})
+
 	return res
 
 @frappe.whitelist()
