diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 4758325..10af7b6 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -264,3 +264,4 @@
 erpnext.patches.v7_0.update_item_projected
 erpnext.patches.v7_0.fix_duplicate_icons
 erpnext.patches.v7_0.remove_features_setup
+erpnext.patches.v7_0.update_home_page
\ No newline at end of file
diff --git a/erpnext/patches/v7_0/remove_features_setup.py b/erpnext/patches/v7_0/remove_features_setup.py
index 2e7f893..60d1926 100644
--- a/erpnext/patches/v7_0/remove_features_setup.py
+++ b/erpnext/patches/v7_0/remove_features_setup.py
@@ -1,11 +1,13 @@
 import frappe
 
 from erpnext.setup.install import create_compact_item_print_custom_field
+from frappe.utils import cint
 
 def execute():
-	if not frappe.db.get_value("Features Setup", None, "fs_item_barcode"):
-		# hide barcode fields
-		frappe.make_property_setter(dict(fieldname='barcode', property='hidden', value=1))
+	frappe.reload_doctype('Stock Settings')
+	stock_settings = frappe.get_doc('Stock Settings', 'Stock Settings')
+	stock_settings.show_barcode_field = cint(frappe.db.get_value("Features Setup", None, "fs_item_barcode"))
+	stock_settings.save()
 
 	create_compact_item_print_custom_field()
 
diff --git a/erpnext/patches/v7_0/update_home_page.py b/erpnext/patches/v7_0/update_home_page.py
new file mode 100644
index 0000000..d13e28a
--- /dev/null
+++ b/erpnext/patches/v7_0/update_home_page.py
@@ -0,0 +1,18 @@
+import frappe
+import erpnext
+
+def execute():
+	website_settings = frappe.get_doc('Website Settings', 'Website Settings')
+	if frappe.db.exists('Web Page', website_settings.home_page):
+		header = frappe.db.get_value('Web Page', website_settings.home_page, 'header')
+		print header
+		if header and header.startswith("<div class='hero text-center'>"):
+			homepage = frappe.get_doc('Homepage', 'Homepage')
+			homepage.company = erpnext.get_default_company()
+			homepage.tagline = header.split('<h1>')[1].split('</h1>')[0]
+			homepage.setup_items()
+			homepage.save()
+
+			website_settings.home_page = 'home'
+			website_settings.save()
+
diff --git a/erpnext/portal/doctype/homepage/homepage.json b/erpnext/portal/doctype/homepage/homepage.json
index c927e31..cbe58c7 100644
--- a/erpnext/portal/doctype/homepage/homepage.json
+++ b/erpnext/portal/doctype/homepage/homepage.json
@@ -135,7 +135,7 @@
    "print_hide_if_no_value": 0, 
    "read_only": 0, 
    "report_hide": 0, 
-   "reqd": 1, 
+   "reqd": 0, 
    "search_index": 0, 
    "set_only_once": 0, 
    "unique": 0, 
@@ -151,7 +151,7 @@
  "issingle": 1, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2016-05-02 18:03:13.165280", 
+ "modified": "2016-05-12 14:19:41.689519", 
  "modified_by": "Administrator", 
  "module": "Portal", 
  "name": "Homepage", 
diff --git a/erpnext/portal/doctype/homepage/homepage.py b/erpnext/portal/doctype/homepage/homepage.py
index 6f55a59..a817230 100644
--- a/erpnext/portal/doctype/homepage/homepage.py
+++ b/erpnext/portal/doctype/homepage/homepage.py
@@ -7,4 +7,19 @@
 from frappe.model.document import Document
 
 class Homepage(Document):
-	pass
+	def validate(self):
+		if not self.products:
+			self.setup_items()
+		if not self.description:
+			self.description = frappe._("This is an example website auto-generated from ERPNext")
+
+	def setup_items(self):
+		for d in frappe.get_all('Item', fields=['name', 'item_name', 'description', 'image'],
+			filters={'show_in_website': 1}, limit=3):
+
+			# set missing routes (?)
+			doc = frappe.get_doc('Item', d.name)
+			doc.save()
+			self.append('products', dict(item_code=d.name,
+				item_name=d.item_name, description=d.description, image=d.image))
+
diff --git a/erpnext/public/css/website.css b/erpnext/public/css/website.css
index de0b02b..6c239c5 100644
--- a/erpnext/public/css/website.css
+++ b/erpnext/public/css/website.css
@@ -23,7 +23,8 @@
   background-size: cover;
   background-repeat: no-repeat;
   background-position: center top;
-  border-radius: 4px;
+  border-radius-top: 4px;
+  border-radius-right: 4px;
 }
 .product-image.missing-image {
   width: 100%;
@@ -32,7 +33,8 @@
   background-size: cover;
   background-repeat: no-repeat;
   background-position: center top;
-  border-radius: 4px;
+  border-radius-top: 4px;
+  border-radius-right: 4px;
   position: relative;
   background-color: #EBEFF2;
 }
@@ -124,6 +126,12 @@
   border-top: 1px solid #d1d8dd;
   padding-top: 15px;
 }
+.order-container .tax-grand-total {
+  display: inline-block;
+  font-size: 16px;
+  font-weight: bold;
+  margin-top: 5px;
+}
 .cart-container {
   margin: 50px 0px;
 }
@@ -228,7 +236,7 @@
   height: 75px;
 }
 .product-image-wrapper {
-  padding-bottom: 30px;
+  padding-bottom: 40px;
 }
 .featured-product-heading,
 .all-products {
diff --git a/erpnext/public/less/website.less b/erpnext/public/less/website.less
index 357bb8a..37e3616 100644
--- a/erpnext/public/less/website.less
+++ b/erpnext/public/less/website.less
@@ -32,7 +32,8 @@
 	background-size: cover;
 	background-repeat: no-repeat;
 	background-position: center top;
-	border-radius: 4px;
+	border-radius-top: 4px;
+	border-radius-right: 4px;
 }
 
 .product-image.missing-image {
@@ -157,6 +158,13 @@
 		border-top: 1px solid @border-color;
 		padding-top: 15px;
 	}
+
+	.tax-grand-total {
+		display: inline-block;
+		font-size: 16px;
+		font-weight: bold;
+		margin-top: 5px;
+	}
 }
 
 .cart-container {
@@ -200,7 +208,7 @@
 		border-top: 1px solid @border-color;
 		padding-top: 15px;
 	}
-	
+
 	.cart-addresses {
 		margin-top: 50px;
 	}
@@ -209,43 +217,43 @@
 .cart-items .cart-dropdown,
 .item_name_dropdown {
 	display:none;
-	
+
 }
 .cart-dropdown-container {
 	width: 320px;
 	padding: 15px;
-	
+
 	.item-price {
 		display: block !important;
 		padding-bottom: 10px;
 	}
-	
+
 	.cart-item-header {
 		border-bottom: 1px solid #d1d8dd;
 	}
-	
+
 	.cart-items .cart-dropdown {
 		display:block;
 	   	margin-top:15px;
 	}
-		
+
 	.item_name_dropdown {
 		display:block;
 	}
-	
+
 	.item-description,
 	.cart-items .checkout,
 	.item_name_and_description {
 		display: none;
 	}
-	
+
 	.checkout-btn {
 		padding-top:25px;
 	}
 	.col-name-description {
 		margin-bottom:8px;
 	}
-	
+
 }
 
 .product-list-link {
@@ -281,20 +289,20 @@
 	margin-top: 30px;
 }
 
-.product-image-img {	
+.product-image-img {
 	border: 1px solid @light-border-color;
 	border-radius: 3px;
 }
 
-.product-text {	
+.product-text {
 	border-top: 1px solid @light-border-color;
 	padding: 15px;
 	word-wrap: break-word;
 	height: 75px;
 }
 
-.product-image-wrapper {	
-	padding-bottom: 30px;
+.product-image-wrapper {
+	padding-bottom: 40px;
 }
 
 
@@ -302,11 +310,11 @@
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-size: 12px;
- font-weight: 500;	
+ font-weight: 500;
 }
 
 .all-products {
- font-weight: 300;	
+ font-weight: 300;
  padding-left: 25px;
  padding-right: 25px;
  padding-top: 10px;
diff --git a/erpnext/setup/doctype/item_group/item_group.py b/erpnext/setup/doctype/item_group/item_group.py
index d7dae68..dc30de1 100644
--- a/erpnext/setup/doctype/item_group/item_group.py
+++ b/erpnext/setup/doctype/item_group/item_group.py
@@ -74,7 +74,7 @@
 	child_groups = ", ".join(['"' + i[0] + '"' for i in get_child_groups(product_group)])
 
 	# base query
-	query = """select name, item_name, item_code, page_name, website_image, thumbnail, item_group,
+	query = """select name, item_name, item_code, page_name, image, website_image, thumbnail, item_group,
 			description, web_long_description as website_description,
 			concat(parent_website_route, "/", page_name) as route
 		from `tabItem`
diff --git a/erpnext/setup/page/welcome_to_erpnext/welcome_to_erpnext.html b/erpnext/setup/page/welcome_to_erpnext/welcome_to_erpnext.html
index fe8a963..cd4d977 100644
--- a/erpnext/setup/page/welcome_to_erpnext/welcome_to_erpnext.html
+++ b/erpnext/setup/page/welcome_to_erpnext/welcome_to_erpnext.html
@@ -22,7 +22,7 @@
 			<ul class="list-unstyled">
 				<li><a class="text-muted" href="#">{%= __("Go to the Desktop and start using ERPNext") %}</a></li>
 				<li><a class="text-muted" href="#modules/Learn">{%= __("View a list of all the help videos") %}</a></li>
-				<li><a class="text-muted" href="https://manual.erpnext.com" target="_blank">{%= __("Read the ERPNext Manual") %}</a></li>
+				<li><a class="text-muted" href="https://frappe.github.io/erpnext/user" target="_blank">{%= __("Read the ERPNext Manual") %}</a></li>
 				<li><a class="text-muted" href="https://discuss.erpnext.com" target="_blank">{%= __("Community Forum") %}</a></li>
 			</ul>
 
diff --git a/erpnext/setup/setup_wizard/data/sample_home_page.css b/erpnext/setup/setup_wizard/data/sample_home_page.css
deleted file mode 100644
index 723bcb9..0000000
--- a/erpnext/setup/setup_wizard/data/sample_home_page.css
+++ /dev/null
@@ -1,40 +0,0 @@
-.page-header {
-	color: white;
-	background: #263248;
-	text-align: center;
-	padding: 80px 0px;
-}
-
-.page-header .page-header-left {
-	width: 100%;
-}
-
-.page-header h1 {
-	color: white;
-}
-
-.slide h2 {
-	margin-bottom: 30px;
-}
-
-.slides {
-	margin-top: -15px;
-}
-
-.slide {
-	padding: 30px 40px;
-	max-width: 800px;
-	margin: auto;
-}
-
-.container {
-	max-width: 900px;
-}
-
-.img-wrapper {
-	text-align: center;
-	padding: 30px;
-	background-color: #eee;
-	border-radius: 5px;
-	margin-bottom: 15px;
-}
diff --git a/erpnext/setup/setup_wizard/data/sample_home_page.html b/erpnext/setup/setup_wizard/data/sample_home_page.html
deleted file mode 100644
index 990bc1e..0000000
--- a/erpnext/setup/setup_wizard/data/sample_home_page.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<div class="slides">
-	<div class="row slide">
-		<h2 class="text-center">{{ _("Awesome Products") }}</h2>
-		<div class="col-md-6 text-center">
-			<div class="img-wrapper">
-				<i class="icon-wrench text-muted" style="font-size: 100px;"></i>
-			</div>
-		</div>
-		<div class="col-md-6">
-			<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.</p>
-		</div>
-	</div>
-	<div class="row slide alt">
-		<h2 class="text-center">{{ _("Awesome Services") }}</h2>
-		<div class="col-md-6 text-center">
-			<div class="img-wrapper">
-				<i class="icon-phone text-muted" style="font-size: 100px;"></i>
-			</div>
-		</div>
-		<div class="col-md-6">
-			<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.</p>
-		</div>
-	</div>
-</div>
-<p class="text-center" style="margin-bottom: 50px;">
-	<a href="/products" class="btn btn-success">Explore <i class="icon-chevron-right"></i></a>
-</p>
-<!-- no-sidebar -->
diff --git a/erpnext/setup/setup_wizard/default_website.py b/erpnext/setup/setup_wizard/default_website.py
index e8d4eb43..d137676 100644
--- a/erpnext/setup/setup_wizard/default_website.py
+++ b/erpnext/setup/setup_wizard/default_website.py
@@ -8,34 +8,27 @@
 from frappe.utils import nowdate
 
 class website_maker(object):
-	def __init__(self, company, tagline, user):
-		self.company = company
-		self.tagline = tagline
-		self.user = user
+	def __init__(self, args):
+		self.args = args
+		self.company = args.company_name
+		self.tagline = args.company_tagline
+		self.user = args.name
 		self.make_web_page()
 		self.make_website_settings()
 		self.make_blog()
 
 	def make_web_page(self):
 		# home page
-		self.webpage = frappe.get_doc({
-			"doctype": "Web Page",
-			"title": self.company,
-			"published": 1,
-			"header": "<div class='hero text-center'><h1>{0}</h1>".format(self.tagline or "Headline")+\
-				'<p>'+_("This is an example website auto-generated from ERPNext")+"</p>"+\
-				'<p><a class="btn btn-primary" href="/login">Login</a></p></div>',
-			"description": self.company + ":" + (self.tagline or ""),
-			"css": frappe.get_template("setup/setup_wizard/data/sample_home_page.css").render(),
-			"main_section": frappe.get_template("setup/setup_wizard/data/sample_home_page.html").render({
-				"company": self.company, "tagline": (self.tagline or "")
-			})
-		}).insert()
+		homepage = frappe.get_doc('Homepage', 'Homepage')
+		homepage.company = self.company
+		homepage.tag_line = self.tagline
+		homepage.setup_items()
+		homepage.save()
 
 	def make_website_settings(self):
 		# update in home page in settings
 		website_settings = frappe.get_doc("Website Settings", "Website Settings")
-		website_settings.home_page = self.webpage.name
+		website_settings.home_page = 'home'
 		website_settings.brand_html = self.company
 		website_settings.copyright = self.company
 		website_settings.top_bar_items = []
@@ -88,5 +81,5 @@
 	frappe.delete_doc("Blog Post", "welcome")
 	frappe.delete_doc("Blogger", "administrator")
 	frappe.delete_doc("Blog Category", "general")
-	website_maker("Test Company", "Better Tools for Everyone", "Administrator")
+	website_maker({'company':"Test Company", 'company_tagline': "Better Tools for Everyone", 'name': "Administrator"})
 	frappe.db.commit()
diff --git a/erpnext/setup/setup_wizard/domainify.py b/erpnext/setup/setup_wizard/domainify.py
index df4afd4..8adcf85 100644
--- a/erpnext/setup/setup_wizard/domainify.py
+++ b/erpnext/setup/setup_wizard/domainify.py
@@ -22,7 +22,9 @@
 		'remove_roles': ['Manufacturing User', 'Manufacturing Manager', 'Maintenance User'],
 		'properties': [
 			{'doctype': 'Item', 'fieldname': 'is_stock_item', 'property': 'default', 'value': 0},
-			{'fieldname': 'barcode', 'property': 'hidden', 'value': 1}
+		],
+		'set_value': [
+			['Stock Settings', 'show_barcode', 0]
 		]
 	}
 }
diff --git a/erpnext/setup/setup_wizard/setup_wizard.py b/erpnext/setup/setup_wizard/setup_wizard.py
index a360d4f..48766bf 100644
--- a/erpnext/setup/setup_wizard/setup_wizard.py
+++ b/erpnext/setup/setup_wizard/setup_wizard.py
@@ -35,7 +35,7 @@
 	frappe.local.message_log = []
 	setup_domain(args.get('domain'))
 
-	website_maker(args.company_name.strip(), args.company_tagline, args.name)
+	website_maker(args)
 	create_logo(args)
 
 	frappe.db.commit()
diff --git a/erpnext/stock/doctype/item/item.py b/erpnext/stock/doctype/item/item.py
index d403b18..9e48fed 100644
--- a/erpnext/stock/doctype/item/item.py
+++ b/erpnext/stock/doctype/item/item.py
@@ -144,22 +144,22 @@
 			return
 
 		# find if website image url exists as public
-		file = frappe.get_all("File", filters={
+		file_doc = frappe.get_all("File", filters={
 			"file_url": self.website_image
 		}, fields=["name", "is_private"], order_by="is_private asc", limit_page_length=1)
-		
-		
-		if file:
-			file = file[0]
 
-		if not file:
+
+		if file_doc:
+			file_doc = file_doc[0]
+
+		if not file_doc:
 			if not auto_set_website_image:
 				frappe.msgprint(_("Website Image {0} attached to Item {1} cannot be found")
 					.format(self.website_image, self.name))
 
 			self.website_image = None
 
-		elif file.is_private:
+		elif file_doc.is_private:
 			if not auto_set_website_image:
 				frappe.msgprint(_("Website Image should be a public file or website URL"))
 
@@ -508,21 +508,21 @@
 			clear_cache(self.page_name)
 
 		frappe.db.set_value("Item", newdn, "item_code", newdn)
-		
+
 		if merge:
 			self.set_last_purchase_rate(newdn)
 			self.recalculate_bin_qty(newdn)
-			
+
 		for dt in ("Sales Taxes and Charges", "Purchase Taxes and Charges"):
-			for d in frappe.db.sql("""select name, item_wise_tax_detail from `tab{0}` 
+			for d in frappe.db.sql("""select name, item_wise_tax_detail from `tab{0}`
 					where ifnull(item_wise_tax_detail, '') != ''""".format(dt), as_dict=1):
-				
+
 				item_wise_tax_detail = json.loads(d.item_wise_tax_detail)
 				if olddn in item_wise_tax_detail:
 					item_wise_tax_detail[newdn] = item_wise_tax_detail[olddn]
 					item_wise_tax_detail.pop(olddn)
-					
-					frappe.db.set_value(dt, d.name, "item_wise_tax_detail", 
+
+					frappe.db.set_value(dt, d.name, "item_wise_tax_detail",
 						json.dumps(item_wise_tax_detail), update_modified=False)
 
 	def set_last_purchase_rate(self, newdn):
@@ -620,8 +620,8 @@
 			variant = get_variant(self.variant_of, args, self.name)
 			if variant:
 				frappe.throw(_("Item variant {0} exists with same attributes")
-					.format(variant), ItemVariantExistsError)			
-			
+					.format(variant), ItemVariantExistsError)
+
 
 @frappe.whitelist()
 def get_dashboard_data(name):
diff --git a/erpnext/stock/doctype/stock_settings/stock_settings.json b/erpnext/stock/doctype/stock_settings/stock_settings.json
index d56daf5..4a6e6e9 100644
--- a/erpnext/stock/doctype/stock_settings/stock_settings.json
+++ b/erpnext/stock/doctype/stock_settings/stock_settings.json
@@ -2,6 +2,7 @@
  "allow_copy": 0, 
  "allow_import": 0, 
  "allow_rename": 0, 
+ "beta": 0, 
  "creation": "2013-06-24 16:37:54", 
  "custom": 0, 
  "description": "Settings", 
@@ -188,6 +189,32 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
+   "default": "1", 
+   "fieldname": "show_barcode_field", 
+   "fieldtype": "Check", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_list_view": 0, 
+   "label": "Show Barcode Field", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
    "fieldname": "section_break_7", 
    "fieldtype": "Section Break", 
    "hidden": 0, 
@@ -487,7 +514,7 @@
  "issingle": 1, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2016-04-15 06:51:47.497431", 
+ "modified": "2016-05-12 12:28:29.374452", 
  "modified_by": "Administrator", 
  "module": "Stock", 
  "name": "Stock Settings", 
@@ -517,5 +544,6 @@
  "quick_entry": 1, 
  "read_only": 0, 
  "read_only_onload": 0, 
+ "sort_order": "ASC", 
  "track_seen": 0
 }
\ No newline at end of file
diff --git a/erpnext/stock/doctype/stock_settings/stock_settings.py b/erpnext/stock/doctype/stock_settings/stock_settings.py
index bd71d46..7c67a65 100644
--- a/erpnext/stock/doctype/stock_settings/stock_settings.py
+++ b/erpnext/stock/doctype/stock_settings/stock_settings.py
@@ -6,11 +6,9 @@
 from __future__ import unicode_literals
 import frappe
 from frappe import _
-from frappe.utils import cint
 from frappe.model.document import Document
 
 class StockSettings(Document):
-
 	def validate(self):
 		for key in ["item_naming_by", "item_group", "stock_uom", "allow_negative_stock"]:
 			frappe.db.set_default(key, self.get(key, ""))
@@ -25,4 +23,6 @@
 			self.stock_frozen_upto_days = stock_frozen_limit
 			frappe.msgprint (_("`Freeze Stocks Older Than` should be smaller than %d days.") %stock_frozen_limit)
 
-
+		# show/hide barcode field
+		frappe.make_property_setter({'fieldname': 'barcode', 'property': 'hidden',
+			'value': 0 if self.show_barcode_field else 1})
diff --git a/erpnext/templates/generators/item.html b/erpnext/templates/generators/item.html
index e074fa3..cf6f89b 100644
--- a/erpnext/templates/generators/item.html
+++ b/erpnext/templates/generators/item.html
@@ -20,7 +20,7 @@
 			</div>
 			<div class="col-sm-6" style="padding-left:20px;">
 				 <h2 itemprop="name" style="margin-top: 0px;">{{ item_name }}</h2>
-				
+
 				<p class="text-muted">
 					{{ _("Item Code") }}: <span itemprop="productID">{{ variant and variant.name or name }}</span></p>
 				<br>
@@ -55,7 +55,7 @@
 					<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
 						<h4 class="item-price" itemprop="price"></h4>
 						<div class="item-stock" itemprop="availability"></div>
-					</div>	
+					</div>
                     <div class="item-cart hide">
     					<div id="item-add-to-cart">
     						<button class="btn btn-primary btn-sm">
@@ -79,7 +79,7 @@
 		</div>
 		</div>
 		</div>
-		
+
 		{% if website_specifications -%}
 		<div class="row item-website-specification" style="margin-top: 40px">
 			<div class="col-md-12">
diff --git a/erpnext/templates/includes/order/order_macros.html b/erpnext/templates/includes/order/order_macros.html
index 1bb7b2c..3f8affe 100644
--- a/erpnext/templates/includes/order/order_macros.html
+++ b/erpnext/templates/includes/order/order_macros.html
@@ -9,15 +9,15 @@
         </div>
         <div class="col-xs-8 col-sm-10">
             {{ d.item_code }}
-            <p class="text-muted small item-description">{{ d.description }}</p>
+            <div class="text-muted small item-description">{{ d.description }}</div>
         </div>
     </div>
-	
+
     <div class="row item_name_dropdown">
         <div class="col-xs-4 col-sm-4 order-image-col">
             <div class="order-image">
               <span class="cart-count-badge pull-right small"> {{ d.get_formatted('qty') }} </span>{{ product_image_square(d.image) }}
-            </div>		
+            </div>
         </div>
         <div class="col-xs-8 col-sm-8">
             {{ d.item_code }}
diff --git a/erpnext/templates/includes/order/order_taxes.html b/erpnext/templates/includes/order/order_taxes.html
index 564e31e..24ae088 100644
--- a/erpnext/templates/includes/order/order_taxes.html
+++ b/erpnext/templates/includes/order/order_taxes.html
@@ -13,9 +13,9 @@
 </div>
 {% endfor %}
 <div class="row tax-grand-total-row">
-    <div class="col-xs-8 text-right">{{ _("Grand Total") }}</div>
+    <div class="col-xs-8 text-right text-uppercase h6 text-muted">{{ _("Grand Total") }}</div>
     <div class="col-xs-4 text-right">
-        <span class="tax-grand-total">
+        <span class="tax-grand-total bold">
             {{ doc.get_formatted("grand_total") }}
         </span>
     </div>
diff --git a/erpnext/templates/includes/transaction_row.html b/erpnext/templates/includes/transaction_row.html
index 2165a06..17f9b90 100644
--- a/erpnext/templates/includes/transaction_row.html
+++ b/erpnext/templates/includes/transaction_row.html
@@ -3,17 +3,17 @@
 		<div class="row">
 			<div class="col-sm-5">
 				<span class="indicator small {{ doc.indicator_color or "darkgrey" }}">
-				{{ doc.name }}</span>	
+				{{ doc.name }}</span>
 				<div class="small text-muted transaction-time"
 					title="{{ frappe.utils.format_datetime(doc.modified, "medium") }}">
 					{{ frappe.utils.format_datetime(doc.modified, "medium") }}
-				</div>			
+				</div>
 			</div>
 			<div class="col-sm-4 items-preview text-ellipsis">
 				{{ doc.items_preview }}
 			</div>
-			<div class="col-sm-3 text-right">
-				{{ doc.get_formatted("grand_total") }}				
+			<div class="col-sm-3 text-right bold">
+				{{ doc.get_formatted("grand_total") }}
 			</div>
 			<!-- <div class="col-sm-3 text-right">
 
diff --git a/erpnext/templates/pages/home.html b/erpnext/templates/pages/home.html
index 5ec396d..689d94e 100644
--- a/erpnext/templates/pages/home.html
+++ b/erpnext/templates/pages/home.html
@@ -27,7 +27,7 @@
 				</div>
 			</div>
 			<!-- TODO: remove hardcoding of /products -->
-			<div class=" text-center text-uppercase"><a href="/products" class="btn btn-primary all-products">  {{ _("View All Products") }}</a></div>
+			<div class="text-center"><a href="/products" class="btn btn-primary all-products">  {{ _("View All Products") }}</a></div>
 		</div>
 		{% endif %}
 	</div>
@@ -46,7 +46,7 @@
 	.btn-login {
 		width: 80px;
 	}
-	
-	
+
+
 </style>
 {% endblock %}
diff --git a/erpnext/templates/pages/home.py b/erpnext/templates/pages/home.py
index e7ff2ce..4440f7e 100644
--- a/erpnext/templates/pages/home.py
+++ b/erpnext/templates/pages/home.py
@@ -3,19 +3,27 @@
 
 from __future__ import unicode_literals
 import frappe
-from frappe.utils import cstr, nowdate
-from erpnext.setup.doctype.item_group.item_group import get_item_for_list_in_html
 
 no_cache = 1
 no_sitemap = 1
 
 def get_context(context):
 	homepage = frappe.get_doc('Homepage')
-	
+
 	for item in homepage.products:
-		item.route = '/' + '/'.join(frappe.db.get_value('Item', item.item_code, ['parent_website_route', 'page_name']))
-		
-	
+		parent_website_route, page_name = frappe.db.get_value('Item', item.item_code,
+			['parent_website_route', 'page_name'])
+		item.route = '/' + '/'.join(filter(None, [parent_website_route, page_name]))
+
+	# show atleast 3 products
+	if len(homepage.products) < 3:
+		for i in xrange(3 - len(homepage.products)):
+			homepage.append('products', {
+				'item_code': 'product-{0}'.format(i),
+				'item_name': frappe._('Product {0}').format(i),
+				'route': '#'
+			})
+
 	return {
 		'homepage': homepage
 	}
\ No newline at end of file
diff --git a/erpnext/templates/pages/order.html b/erpnext/templates/pages/order.html
index 98f7431..61b4546 100644
--- a/erpnext/templates/pages/order.html
+++ b/erpnext/templates/pages/order.html
@@ -59,7 +59,7 @@
             <div class="col-sm-2 col-xs-3 text-right">
                 {{ d.get_formatted("amount")	 }}
                 <p class="text-muted small">{{
-                    _("Rate: {0}").format(d.get_formatted("rate")) }}</p>
+                    _("@ {0}").format(d.get_formatted("rate")) }}</p>
             </div>
         </div>
         {% endfor %}
