diff --git a/website/templates/pages/order.html b/website/templates/pages/order.html
index b8d9695..9e80694 100644
--- a/website/templates/pages/order.html
+++ b/website/templates/pages/order.html
@@ -1,12 +1,88 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<meta name="viewport" content="width=device-width, initial-scale=1.0">
-	<title>Print Format</title>
-	<meta name="generator" content="wnframework">	
-</head>
-<body>
-	{{ webnotes.form_dict }}
-</body>
-</html>
\ No newline at end of file
+{% extends "html/page.html" %}
+
+{% set title=doc.name %}
+
+{% block content %}
+<div class="span12">
+    <ul class="breadcrumb">
+    	<li><a href="index">Home</a> <span class="divider">/</span></li>
+    	<li><a href="account">My Account</a> <span class="divider">/</span></li>
+    	<li><a href="orders">My Orders</a> <span class="divider">/</span></li>
+    	<li class="active">{{ doc.name }}</li>
+    </ul>
+	<h3><i class="icon-file"></i> {{ doc.name }}</h3>
+	<hr>
+	{%- if doc.status -%}
+	<div style="font-size: 13px;">
+	<div class="row">
+		<div class="span2">
+			<div class="label">{{ doc.status }}</div>
+		</div>
+		<div class="span4">
+			{{ utils.formatdate(doc.transaction_date) }}
+		</div>
+	</div>
+	<br>
+	<div class="row">
+		<div class="span12">
+		<table class="table table-bordered">
+			<tbody>
+				<tr>
+					<th>Sr</th>
+					<th>Item Name</th>
+					<th>Description</th>
+					<th>Qty</th>
+					<th>UoM</th>
+					<th>Basic Rate</th>
+					<th>Amount</th>
+				</tr>
+				{%- for row in doclist.get({"doctype":"Sales Order Item"}) %}
+				<tr>
+					<td style="width: 3%;">{{ row.idx }}</td>
+					<td style="width: 20%;">{{ row.item_name }}</td>
+					<td style="width: 37%;">{{ row.description }}</td>
+					<td style="width: 5%; text-align: right;">{{ row.qty }}</td>
+					<td style="width: 5%;">{{ row.stock_uom }}</td>
+					<td style="width: 15%; text-align: right;">{{ utils.fmt_money(row.export_rate, currency=doc.currency) }}</td>
+					<td style="width: 15%; text-align: right;">{{ utils.fmt_money(row.export_amount, currency=doc.currency) }}</td>
+				</tr>
+				{% endfor -%}
+			</tbody>
+		</table>
+		</div>
+	</div>
+	<div class="row">
+		<div class="span6"></div>
+		<div class="span6">
+		<table cellspacing=0 width=100%>
+		<tbody>
+			<tr>
+				<td>Net Total</td>
+				<td width=40% style="text-align: right;">{{
+					utils.fmt_money(doc.net_total/doc.conversion_rate, currency=doc.currency)
+				}}</td>
+			</tr>
+			{%- for charge in doclist.get({"doctype":"Sales Taxes and Charges"}) -%}
+			{%- if not charge.included_in_print_rate -%}
+			<tr>
+				<td>{{ charge.description }}</td>
+				<td style="text-align: right;">{{ utils.fmt_money(charge.tax_amount / doc.conversion_rate, currency=doc.currency) }}</td>
+			</tr>
+			{%- endif -%}
+			{%- endfor -%}
+			<tr>
+				<td>Grand Total</td>
+				<td style="text-align: right;">{{ utils.fmt_money(doc.grand_total_export, currency=doc.currency) }}</td>
+			</tr>
+			<tr style='font-weight: bold'>
+				<td>Rounded Total</td>
+				<td style="text-align: right;">{{ utils.fmt_money(doc.rounded_total_export, currency=doc.currency) }}</td>
+			</tr>
+		</tbody>
+		</table>	
+		</div>
+	</div>
+	</div>
+	{%- endif -%}
+</div>
+{% endblock %}
\ No newline at end of file
diff --git a/website/templates/pages/orders.html b/website/templates/pages/orders.html
index 1a1cc37..b1a3c7e 100644
--- a/website/templates/pages/orders.html
+++ b/website/templates/pages/orders.html
@@ -3,6 +3,11 @@
 {% set title="My Orders" %}
 
 {% block content %}
+<script>
+global_number_format = "{{ global_number_format }}";
+currency = "{{ currency }}";
+wn.currency_symbols = {{ currency_symbols }};
+</script>
 <div class="span12">
     <ul class="breadcrumb">
     	<li><a href="index">Home</a> <span class="divider">/</span></li>
@@ -39,18 +44,19 @@
 				
 				// parent
 				var $order = $(repl('<div class="row">\
-					<div class="span4"><a href="order?id=%(name)s">%(name)s</a></span3>\
+					<div class="span4"><a href="order?name=%(name)s">%(name)s</a></div>\
+					<div class="span8"></div>\
 				</div>', order)).appendTo($list);
 				
 				// items
 				$.each(order.items || [], function(i, item) {
-					var $item = $(repl('<div class="span8">\
-						<div class="row">\
+					item.export_rate = format_currency(item.export_rate, order.currency);
+					var $item = $(repl('<div class="row">\
 							<div class="span4">%(item_name)s</div>\
-							<div class="span2">%(export_rate)s</div>\
-							<div class="span2">%(status)s</div>\
+							<div class="span2" style="text-align: right;">%(qty)s %(stock_uom)s</div>\
+							<div class="span2" style="text-align: right;">%(export_rate)s</div>\
 						</div>\
-					</div>', item)).appendTo($order);
+					</div>', item)).appendTo($order.find(".span8"));
 				});
 				
 				$("<hr>").appendTo($list);
diff --git a/website/templates/pages/ticket.html b/website/templates/pages/ticket.html
new file mode 100644
index 0000000..fe185f8
--- /dev/null
+++ b/website/templates/pages/ticket.html
@@ -0,0 +1,49 @@
+{% extends "html/page.html" %}
+
+{% set title=doc.name %}
+
+{% block content %}
+<div class="span12">
+    <ul class="breadcrumb">
+    	<li><a href="index">Home</a> <span class="divider">/</span></li>
+    	<li><a href="account">My Account</a> <span class="divider">/</span></li>
+    	<li><a href="tickets">My Tickets</a> <span class="divider">/</span></li>
+    	<li class="active">{{ doc.name }}</li>
+    </ul>
+	<h3><i class="icon-file"></i> {{ doc.name }}</h3>
+	<hr>
+	{%- if doc.status -%}
+	<div class="row">
+		<div class="span2">
+			<div class="label">{{ doc.status }}</div>
+		</div>
+		<div class="span7">
+			{{ doc.subject }}
+		</div>
+		<div class="span3">
+			{{ utils.formatdate(doc.transaction_date) }}
+		</div>
+	</div>
+	<br>
+	<h4>Messages</h4>
+	{%- if doclist.get({"doctype":"Communication"}) -%}
+	<div style="font-size: 13px;">
+		<table class="table table-bordered table-striped">
+			<tbody>
+				{%- for comm in doclist.get({"doctype":"Communication"}) %}
+				<tr>
+					<td>
+					<h5>{{ comm.sender }} on {{ utils.formatdate(doc.modified) }}</h5>
+					<p>{{ comm.content }}</p>
+					</td>
+				</tr>
+				{% endfor -%}
+			</tbody>
+		</table>
+	</div>
+	{%- else -%}
+	<div class="alert">No messages</div>
+	{%- endif -%}
+	{%- endif -%}
+</div>
+{% endblock %}
\ No newline at end of file
diff --git a/website/templates/pages/tickets.html b/website/templates/pages/tickets.html
index 822cd04..11da329 100644
--- a/website/templates/pages/tickets.html
+++ b/website/templates/pages/tickets.html
@@ -1,6 +1,6 @@
 {% extends "html/page.html" %}
 
-{% set title="My Orders" %}
+{% set title="My Tickets" %}
 
 {% block content %}
 <div class="span12">
@@ -40,7 +40,7 @@
 				// parent
 				var $ticket = $(repl('<div class="row">\
 					<div class="span2"><span class="label">%(status)s</span></div>\
-					<div class="span3"><a href="ticket?id=%(name)s">%(name)s</a></div>\
+					<div class="span3"><a href="ticket?name=%(name)s">%(name)s</a></div>\
 					<div class="span7">%(subject)s</div>\
 				</div>', ticket)).appendTo($list);
 				
