diff --git a/erpnext/accounts/doctype/pricing_rule/pricing_rule.py b/erpnext/accounts/doctype/pricing_rule/pricing_rule.py
index f298bc8..bd18b5c 100644
--- a/erpnext/accounts/doctype/pricing_rule/pricing_rule.py
+++ b/erpnext/accounts/doctype/pricing_rule/pricing_rule.py
@@ -277,7 +277,7 @@
 			pricing_rules = filter(lambda x: x.for_price_list==args.price_list, pricing_rules) \
 				or pricing_rules
 
-	if len(pricing_rules) > 1:
+	if len(pricing_rules) > 1 and not args.for_shopping_cart:
 		frappe.throw(_("Multiple Price Rules exists with same criteria, please resolve conflict by assigning priority. Price Rules: {0}")
 			.format("\n".join([d.name for d in pricing_rules])), MultiplePricingRuleConflict)
 	elif pricing_rules:
diff --git a/erpnext/shopping_cart/product.py b/erpnext/shopping_cart/product.py
index 6a6cb69..24e4d42 100644
--- a/erpnext/shopping_cart/product.py
+++ b/erpnext/shopping_cart/product.py
@@ -4,9 +4,11 @@
 from __future__ import unicode_literals
 
 import frappe
-from frappe.utils import cint, fmt_money
+from frappe.utils import cint, fmt_money, flt
 from erpnext.shopping_cart.cart import _get_cart_quotation
-from erpnext.shopping_cart.doctype.shopping_cart_settings.shopping_cart_settings import is_cart_enabled
+from erpnext.shopping_cart.doctype.shopping_cart_settings.shopping_cart_settings \
+	import is_cart_enabled, get_shopping_cart_settings
+from erpnext.accounts.doctype.pricing_rule.pricing_rule import get_pricing_rule_for_item
 
 @frappe.whitelist(allow_guest=True)
 def get_product_info(item_code):
@@ -51,12 +53,14 @@
 			in_stock = in_stock[0][0] > 0 and 1 or 0
 
 	else:
-		in_stock = -1
+		in_stock = 0
 
 	return in_stock
 
-def get_price(item_code, template_item_code, price_list):
+def get_price(item_code, template_item_code, price_list, qty=1):
 	if price_list:
+		cart_settings = get_shopping_cart_settings()
+
 		price = frappe.get_all("Item Price", fields=["price_list_rate", "currency"],
 			filters={"price_list": price_list, "item_code": item_code})
 
@@ -65,4 +69,22 @@
 				filters={"price_list": price_list, "item_code": template_item_code})
 
 		if price:
+			pricing_rule = get_pricing_rule_for_item(frappe._dict({
+				"item_code": item_code,
+				"qty": qty,
+				"transaction_type": "selling",
+				"price_list": price_list,
+				"customer_group": cart_settings.default_customer_group,
+				"company": cart_settings.company,
+				"conversion_rate": 1,
+				"for_shopping_cart": True
+			}))
+
+			if pricing_rule:
+				if pricing_rule.pricing_rule_for == "Discount Percentage":
+					price[0].price_list_rate = flt(price[0].price_list_rate * (1.0 - (pricing_rule.discount_percentage / 100.0)))
+
+				if pricing_rule.pricing_rule_for == "Price":
+					price[0].price_list_rate = pricing_rule.price_list_rate
+
 			return price[0]
diff --git a/erpnext/templates/includes/product_page.js b/erpnext/templates/includes/product_page.js
index f4d9027..2775222 100644
--- a/erpnext/templates/includes/product_page.js
+++ b/erpnext/templates/includes/product_page.js
@@ -12,13 +12,13 @@
 			item_code: get_item_code()
 		},
 		callback: function(r) {
-			$(".item-cart").toggleClass("hide", !!!r.message.price);
+			$(".item-cart").toggleClass("hide", (!!!r.message.price || !!!r.message.stock));
 			if(r.message && r.message.price) {
 				$(".item-price")
 					.html(r.message.price.formatted_price + " per " + r.message.uom);
 
 				if(r.message.stock==0) {
-					$(".item-stock").html("<div class='help'>Not in stock</div>");
+					$(".item-stock").html("<div style='color: red'>Not in stock</div>");
 				}
 				else if(r.message.stock==1) {
 					$(".item-stock").html("<div style='color: green'>\
