Merge branch 'master' of github.com:webnotes/erpnext
diff --git a/setup/doctype/item_group/item_group.py b/setup/doctype/item_group/item_group.py
index 13112fe..ba4ea77 100644
--- a/setup/doctype/item_group/item_group.py
+++ b/setup/doctype/item_group/item_group.py
@@ -31,9 +31,12 @@
 		
 		self.validate_name_with_item()
 		
+		from website.helpers.product import invalidate_cache_for
+		
+		
 		if self.doc.show_in_website:
-			# webpage updates
 			from website.utils import update_page_name
+			# webpage updates
 			page_name = self.doc.name
 			if webnotes.conn.get_value("Product Settings", None, 
 				"default_product_category")==self.doc.name:
@@ -43,8 +46,17 @@
 				
 			update_page_name(self.doc, page_name)
 			
-			from website.helpers.product import invalidate_cache_for
 			invalidate_cache_for(self.doc.name)
+
+		elif self.doc.page_name:
+			# if unchecked show in website
+			
+			from website.utils import delete_page_cache
+			delete_page_cache(self.doc.page_name)
+			
+			invalidate_cache_for(self.doc.name)
+			
+			webnotes.conn.set(self.doc, "page_name", None)
 		
 	def validate_name_with_item(self):
 		if webnotes.conn.exists("Item", self.doc.name):
diff --git a/stock/doctype/item/item.py b/stock/doctype/item/item.py
index 4c78347..334af298 100644
--- a/stock/doctype/item/item.py
+++ b/stock/doctype/item/item.py
@@ -39,9 +39,8 @@
 	def on_update(self):
 		self.validate_name_with_item_group()
 		
-		if self.doc.show_in_website:
-			# webpage updates
-			self.update_website()
+		# webpage updates
+		self.update_website()
 			
 		bin = sql("select stock_uom from `tabBin` where item_code = '%s' " % self.doc.item_code)
 		if bin and cstr(bin[0][0]) != cstr(self.doc.stock_uom):
@@ -81,19 +80,33 @@
 				self.doc.name, raise_exception=1)
 
 	def update_website(self):
-		from website.utils import update_page_name
-		if self.doc.name==self.doc.item_name:
-			page_name_from = self.doc.name
-		else:
-			page_name_from = self.doc.name + " " + self.doc.item_name
+		def _invalidate_cache():
+			from website.helpers.product import invalidate_cache_for
+			
+			invalidate_cache_for(self.doc.item_group)
 
-		update_page_name(self.doc, page_name_from)
+			[invalidate_cache_for(d.item_group) for d in \
+				self.doclist.get({"doctype":"Website Item Group"})]
 		
-		from website.helpers.product import invalidate_cache_for
-		invalidate_cache_for(self.doc.item_group)
+		if self.doc.show_in_website:
+			from website.utils import update_page_name
+			if self.doc.name==self.doc.item_name:
+				page_name_from = self.doc.name
+			else:
+				page_name_from = self.doc.name + " " + self.doc.item_name
 
-		[invalidate_cache_for(d.item_group) for d in \
-			self.doclist.get({"doctype":"Website Item Group"})]
+			update_page_name(self.doc, page_name_from)
+			
+			_invalidate_cache()
+		
+		elif self.doc.page_name:
+			# if unchecked show in website
+			from website.utils import delete_page_cache
+			delete_page_cache(self.doc.page_name)
+			
+			_invalidate_cache()
+			
+			webnotes.conn.set(self.doc, "page_name", None)
 
 	# On delete 1. Delete BIN (if none of the corrosponding transactions present, it gets deleted. if present, rolled back due to exception)
 	def on_trash(self):