diff --git a/erpnext/accounts/doctype/tax_rule/tax_rule.js b/erpnext/accounts/doctype/tax_rule/tax_rule.js
index d4a10aa..4b059dc 100644
--- a/erpnext/accounts/doctype/tax_rule/tax_rule.js
+++ b/erpnext/accounts/doctype/tax_rule/tax_rule.js
@@ -7,6 +7,24 @@
 cur_frm.toggle_reqd("sales_tax_template", cur_frm.doc.tax_type=="Sales");
 cur_frm.toggle_reqd("purchase_tax_template", cur_frm.doc.tax_type=="Purchase");
 
+
+frappe.ui.form.on("Tax Rule", "onload", function(frm) {
+	if(frm.doc.__islocal){
+		frm.set_value("use_for_shopping_cart", 1);
+	}
+})
+
+frappe.ui.form.on("Tax Rule", "use_for_shopping_cart", function(frm) {
+	if(!frm.doc.use_for_shopping_cart && (frappe.get_list("Tax Rule", {"use_for_shopping_cart":1}).length == 0)){
+		frappe.model.get_value("Shopping Cart Settings", "Shopping Cart Settings", "enabled", function(docfield) {
+			if(docfield.enabled){
+				frm.set_value("use_for_shopping_cart", 1);
+				frappe.throw(__("Shopping Cart is enabled"));
+			}
+		});
+	}
+})
+
 frappe.ui.form.on("Tax Rule", "customer", function(frm) {
 	frappe.call({
 		method:"erpnext.accounts.doctype.tax_rule.tax_rule.get_party_details",
diff --git a/erpnext/accounts/doctype/tax_rule/tax_rule.json b/erpnext/accounts/doctype/tax_rule/tax_rule.json
index 1974440..61d4d1d 100644
--- a/erpnext/accounts/doctype/tax_rule/tax_rule.json
+++ b/erpnext/accounts/doctype/tax_rule/tax_rule.json
@@ -37,6 +37,28 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
+   "fieldname": "use_for_shopping_cart", 
+   "fieldtype": "Check", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "in_filter": 0, 
+   "in_list_view": 0, 
+   "label": "Use for Shopping Cart", 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 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": "column_break_1", 
    "fieldtype": "Column Break", 
    "hidden": 0, 
@@ -514,7 +536,7 @@
  "is_submittable": 0, 
  "issingle": 0, 
  "istable": 0, 
- "modified": "2015-08-28 02:56:51.283291", 
+ "modified": "2015-09-10 19:27:47.969867", 
  "modified_by": "Administrator", 
  "module": "Accounts", 
  "name": "Tax Rule", 
diff --git a/erpnext/accounts/party.py b/erpnext/accounts/party.py
index a6b5c78..d830a20 100644
--- a/erpnext/accounts/party.py
+++ b/erpnext/accounts/party.py
@@ -278,7 +278,7 @@
 				frappe.throw(_("Due / Reference Date cannot be after {0}").format(formatdate(default_due_date)))
 				
 @frappe.whitelist()
-def set_taxes(party, party_type, posting_date, company, customer_group=None, supplier_type=None, billing_address=None, shipping_address=None):
+def set_taxes(party, party_type, posting_date, company, customer_group=None, supplier_type=None, billing_address=None, shipping_address=None, for_shopping_cart=None):
 	from erpnext.accounts.doctype.tax_rule.tax_rule import get_tax_template, get_party_details
 	args = {
 		party_type: 		party,
@@ -296,4 +296,8 @@
 		args.update({"tax_type": "Sales"})
 	else:
 		args.update({"tax_type": "Purchase"})
+		
+	if for_shopping_cart:
+		args.update({"use_for_shopping_cart": for_shopping_cart})
+		
 	return get_tax_template(posting_date, args)
\ No newline at end of file
diff --git a/erpnext/shopping_cart/cart.py b/erpnext/shopping_cart/cart.py
index cfba98b..78fd6ba 100644
--- a/erpnext/shopping_cart/cart.py
+++ b/erpnext/shopping_cart/cart.py
@@ -266,12 +266,16 @@
 
 def set_taxes(quotation, cart_settings, billing_territory):
 	"""set taxes based on billing territory"""
-	quotation.taxes_and_charges = cart_settings.get_tax_master(billing_territory)
-
-	# clear table
+	from erpnext.accounts.party import set_taxes
+		
+	quotation.taxes_and_charges = set_taxes(quotation.customer, "Customer", \
+		quotation.transaction_date, quotation.company, None, None, \
+		quotation.customer_address, quotation.shipping_address_name, 1)
+#
+# 	# clear table
 	quotation.set("taxes", [])
-
-	# append taxes
+#
+# 	# append taxes
 	quotation.append_taxes_from_master()
 
 def get_lead_or_customer():
@@ -357,6 +361,7 @@
 	shipping_territory = get_address_territory(quotation.shipping_address_name) or \
 		party.territory
 
+
 	shipping_rules = cart_settings.get_shipping_rules(shipping_territory)
 
 	return shipping_rules
diff --git a/erpnext/shopping_cart/doctype/shopping_cart_settings/shopping_cart_settings.json b/erpnext/shopping_cart/doctype/shopping_cart_settings/shopping_cart_settings.json
index 818550e..873120f 100644
--- a/erpnext/shopping_cart/doctype/shopping_cart_settings/shopping_cart_settings.json
+++ b/erpnext/shopping_cart/doctype/shopping_cart_settings/shopping_cart_settings.json
@@ -221,48 +221,6 @@
    "search_index": 0, 
    "set_only_once": 0, 
    "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "fieldname": "column_break_10", 
-   "fieldtype": "Column Break", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "print_hide": 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": "sales_taxes_and_charges_masters", 
-   "fieldtype": "Table", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "label": "Taxes and Charges", 
-   "no_copy": 0, 
-   "options": "Shopping Cart Taxes and Charges Master", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
   }
  ], 
  "hide_heading": 0, 
@@ -274,7 +232,7 @@
  "is_submittable": 0, 
  "issingle": 1, 
  "istable": 0, 
- "modified": "2015-02-05 05:11:46.714019", 
+ "modified": "2015-09-10 19:05:17.386135", 
  "modified_by": "Administrator", 
  "module": "Shopping Cart", 
  "name": "Shopping Cart Settings", 
diff --git a/erpnext/shopping_cart/doctype/shopping_cart_settings/shopping_cart_settings.py b/erpnext/shopping_cart/doctype/shopping_cart_settings/shopping_cart_settings.py
index 8fbf4a4..425c6d6 100644
--- a/erpnext/shopping_cart/doctype/shopping_cart_settings/shopping_cart_settings.py
+++ b/erpnext/shopping_cart/doctype/shopping_cart_settings/shopping_cart_settings.py
@@ -20,15 +20,15 @@
 	def validate(self):
 		if self.enabled:
 			self.validate_price_lists()
-			self.validate_tax_masters()
 			self.validate_exchange_rates_exist()
-
+			self.validate_tax_rule()
+			
 	def validate_overlapping_territories(self, parentfield, fieldname):
 		# for displaying message
 		doctype = self.meta.get_field(parentfield).options
 
 		# specify atleast one entry in the table
-		self.validate_table_has_rows(parentfield, raise_exception=ShoppingCartSetupError)
+		# self.validate_table_has_rows(parentfield, raise_exception=ShoppingCartSetupError)
 
 		territory_name_map = self.get_territory_name_map(parentfield, fieldname)
 		for territory, names in territory_name_map.items():
@@ -48,20 +48,14 @@
 			msgprint(_("Please specify a Price List which is valid for Territory") +
 				": " + self.default_territory, raise_exception=ShoppingCartSetupError)
 
-	def validate_tax_masters(self):
-		self.validate_overlapping_territories("sales_taxes_and_charges_masters",
-			"sales_taxes_and_charges_master")
-
 	def get_territory_name_map(self, parentfield, fieldname):
 		territory_name_map = {}
 
 		# entries in table
 		names = [doc.get(fieldname) for doc in self.get(parentfield)]
-
 		if names:
 			# for condition in territory check
 			parenttype = frappe.get_meta(self.meta.get_options(parentfield)).get_options(fieldname)
-
 			# to validate territory overlap
 			# make a map of territory: [list of names]
 			# if list against each territory has more than one element, raise exception
@@ -75,7 +69,6 @@
 
 				if len(territory_name_map[territory]) > 1:
 					territory_name_map[territory].sort(key=lambda val: names.index(val))
-
 		return territory_name_map
 
 	def validate_exchange_rates_exist(self):
@@ -131,7 +124,11 @@
 				"price_lists", "selling_price_list")
 
 		return price_list and price_list[0] or None
-
+		
+	def validate_tax_rule(self):
+		if not frappe.db.get_value("Tax Rule", {"use_for_shopping_cart" : 1}, "name", debug=1):
+			frappe.throw(frappe._("Set Tax Rule for shopping cart"), ShoppingCartSetupError)
+			
 	def get_tax_master(self, billing_territory):
 		tax_master = self.get_name_from_territory(billing_territory, "sales_taxes_and_charges_masters",
 			"sales_taxes_and_charges_master")
@@ -170,6 +167,9 @@
 
 def apply_shopping_cart_settings(quotation, method):
 	"""Called via a validate hook on Quotation"""
+	
+	"""no hooks call added yet. same functionality is in cart.py, which will get triggered by cart.js"""
+	
 	from erpnext.shopping_cart import get_party
 	if quotation.order_type != "Shopping Cart":
 		return
