chore: Re-organise files,remove T&C modal in cart

- Moved product query and filters engine to `product_data_engine` folder
- Moved product grid, list, search, view to `product_ui` folder
- Renamed `website_item_indexing.py` to `redisearch.py`
- Render Terms and Conditions server side along with the rest of the Shopping cart. Don’t make another db call
- Style changes to terms and conditions
- Deleted unused `cart_terms.html`
- Removed print statements
diff --git a/erpnext/e_commerce/api.py b/erpnext/e_commerce/api.py
index 4f83f08..4c9f4a7 100644
--- a/erpnext/e_commerce/api.py
+++ b/erpnext/e_commerce/api.py
@@ -5,8 +5,8 @@
 import frappe
 from frappe.utils import cint
 
-from erpnext.e_commerce.product_query import ProductQuery
-from erpnext.e_commerce.filters import ProductFiltersBuilder
+from erpnext.e_commerce.product_data_engine.query import ProductQuery
+from erpnext.e_commerce.product_data_engine.filters import ProductFiltersBuilder
 from erpnext.setup.doctype.item_group.item_group import get_child_groups
 
 @frappe.whitelist(allow_guest=True)
diff --git a/erpnext/e_commerce/doctype/e_commerce_settings/e_commerce_settings.py b/erpnext/e_commerce/doctype/e_commerce_settings/e_commerce_settings.py
index ec989a6..1b59873 100644
--- a/erpnext/e_commerce/doctype/e_commerce_settings/e_commerce_settings.py
+++ b/erpnext/e_commerce/doctype/e_commerce_settings/e_commerce_settings.py
@@ -7,7 +7,7 @@
 from frappe import _, msgprint
 from frappe.model.document import Document
 from frappe.utils import unique
-from erpnext.e_commerce.website_item_indexing import create_website_items_index, ALLOWED_INDEXABLE_FIELDS_SET, is_search_module_loaded
+from erpnext.e_commerce.redisearch import create_website_items_index, ALLOWED_INDEXABLE_FIELDS_SET, is_search_module_loaded
 
 class ShoppingCartSetupError(frappe.ValidationError): pass
 
diff --git a/erpnext/e_commerce/doctype/website_item/website_item.py b/erpnext/e_commerce/doctype/website_item/website_item.py
index 99c630b..4216126 100644
--- a/erpnext/e_commerce/doctype/website_item/website_item.py
+++ b/erpnext/e_commerce/doctype/website_item/website_item.py
@@ -17,7 +17,7 @@
 from erpnext.utilities.product import get_price
 
 # SEARCH
-from erpnext.e_commerce.website_item_indexing import (
+from erpnext.e_commerce.redisearch import (
 	insert_item_to_index,
 	update_index_for_item,
 	delete_item_from_index
diff --git a/erpnext/e_commerce/shopping_cart/search.py b/erpnext/e_commerce/legacy_search.py
similarity index 98%
rename from erpnext/e_commerce/shopping_cart/search.py
rename to erpnext/e_commerce/legacy_search.py
index 30656be..752c33e 100644
--- a/erpnext/e_commerce/shopping_cart/search.py
+++ b/erpnext/e_commerce/legacy_search.py
@@ -6,6 +6,7 @@
 from whoosh.qparser import FieldsPlugin, MultifieldParser, WildcardPlugin
 from whoosh.query import Prefix
 
+# TODO: Make obsolete
 INDEX_NAME = "products"
 
 class ProductSearch(FullTextSearch):
diff --git a/erpnext/e_commerce/product_configurator/test_product_configurator.py b/erpnext/e_commerce/product_configurator/test_product_configurator.py
index 960dc97..2f5a24f 100644
--- a/erpnext/e_commerce/product_configurator/test_product_configurator.py
+++ b/erpnext/e_commerce/product_configurator/test_product_configurator.py
@@ -4,7 +4,7 @@
 from bs4 import BeautifulSoup
 import frappe, unittest
 from frappe.utils import get_html_for_route
-from erpnext.e_commerce.product_query import ProductQuery
+from erpnext.e_commerce.product_data_engine.query import ProductQuery
 from erpnext.e_commerce.doctype.website_item.website_item import make_website_item
 
 test_dependencies = ["Item"]
diff --git a/erpnext/e_commerce/filters.py b/erpnext/e_commerce/product_data_engine/filters.py
similarity index 99%
rename from erpnext/e_commerce/filters.py
rename to erpnext/e_commerce/product_data_engine/filters.py
index 0d96a11..75137a7 100644
--- a/erpnext/e_commerce/filters.py
+++ b/erpnext/e_commerce/product_data_engine/filters.py
@@ -1,6 +1,5 @@
 # Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and Contributors
 # License: GNU General Public License v3. See license.txt
-
 import frappe
 from frappe import _dict
 from frappe.utils import floor
diff --git a/erpnext/e_commerce/product_query.py b/erpnext/e_commerce/product_data_engine/query.py
similarity index 98%
rename from erpnext/e_commerce/product_query.py
rename to erpnext/e_commerce/product_data_engine/query.py
index 3db87ab..5c67272 100644
--- a/erpnext/e_commerce/product_query.py
+++ b/erpnext/e_commerce/product_data_engine/query.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and Contributors
+# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and Contributors
 # License: GNU General Public License v3. See license.txt
 
 import frappe
diff --git a/erpnext/e_commerce/product_grid.js b/erpnext/e_commerce/product_ui/grid.js
similarity index 100%
rename from erpnext/e_commerce/product_grid.js
rename to erpnext/e_commerce/product_ui/grid.js
diff --git a/erpnext/e_commerce/product_list.js b/erpnext/e_commerce/product_ui/list.js
similarity index 100%
rename from erpnext/e_commerce/product_list.js
rename to erpnext/e_commerce/product_ui/list.js
diff --git a/erpnext/e_commerce/product_search.js b/erpnext/e_commerce/product_ui/search.js
similarity index 96%
rename from erpnext/e_commerce/product_search.js
rename to erpnext/e_commerce/product_ui/search.js
index ebe0076..b93c975 100644
--- a/erpnext/e_commerce/product_search.js
+++ b/erpnext/e_commerce/product_ui/search.js
@@ -49,7 +49,7 @@
 
 			// Fetch and populate product results
 			frappe.call({
-				method: "erpnext.templates.pages.product_search.search",
+				method: "erpnext.templates.pages.e_commerce.product_search.search",
 				args: {
 					query: query
 				},
@@ -61,7 +61,7 @@
 			// Populate categories
 			if (me.category_container) {
 				frappe.call({
-					method: "erpnext.templates.pages.product_search.get_category_suggestions",
+					method: "erpnext.templates.pages.e_commerce.product_search.get_category_suggestions",
 					args: {
 						query: query
 					},
diff --git a/erpnext/e_commerce/product_view.js b/erpnext/e_commerce/product_ui/views.js
similarity index 100%
rename from erpnext/e_commerce/product_view.js
rename to erpnext/e_commerce/product_ui/views.js
diff --git a/erpnext/e_commerce/website_item_indexing.py b/erpnext/e_commerce/redisearch.py
similarity index 100%
rename from erpnext/e_commerce/website_item_indexing.py
rename to erpnext/e_commerce/redisearch.py
diff --git a/erpnext/public/build.json b/erpnext/public/build.json
index 553082f..569910d 100644
--- a/erpnext/public/build.json
+++ b/erpnext/public/build.json
@@ -68,9 +68,9 @@
 		"public/js/hierarchy_chart/hierarchy_chart_mobile.js"
 	],
 	"js/e-commerce.min.js": [
-		"e_commerce/product_view.js",
-		"e_commerce/product_grid.js",
-		"e_commerce/product_list.js",
-		"e_commerce/product_search.js"
+		"e_commerce/product_ui/views.js",
+		"e_commerce/product_ui/grid.js",
+		"e_commerce/product_ui/list.js",
+		"e_commerce/product_ui/search.js"
 	]
 }
diff --git a/erpnext/public/scss/shopping_cart.scss b/erpnext/public/scss/shopping_cart.scss
index 57ee7ca..4de16ca 100644
--- a/erpnext/public/scss/shopping_cart.scss
+++ b/erpnext/public/scss/shopping_cart.scss
@@ -844,6 +844,14 @@
 			}
 		}
 	}
+
+	.t-and-c-container {
+		padding: 1.5rem;
+	}
+
+	.t-and-c-terms {
+		font-size: 14px;
+	}
 }
 
 .cart-empty.frappe-card {
diff --git a/erpnext/setup/doctype/item_group/item_group.py b/erpnext/setup/doctype/item_group/item_group.py
index a362c6e..f4b667e 100644
--- a/erpnext/setup/doctype/item_group/item_group.py
+++ b/erpnext/setup/doctype/item_group/item_group.py
@@ -10,11 +10,7 @@
 from frappe.website.utils import clear_cache
 from frappe.website.website_generator import WebsiteGenerator
 from six.moves.urllib.parse import quote
-
-from erpnext.e_commerce.filters import ProductFiltersBuilder
-from erpnext.e_commerce.product_query import ProductQuery
-from erpnext.utilities.product import get_qty_in_stock
-
+from erpnext.e_commerce.product_data_engine.filters import ProductFiltersBuilder
 
 class ItemGroup(NestedSet, WebsiteGenerator):
 	nsm_parent_field = 'parent_item_group'
diff --git a/erpnext/templates/pages/cart.html b/erpnext/templates/pages/cart.html
index 05db77a..bb8ba3b 100644
--- a/erpnext/templates/pages/cart.html
+++ b/erpnext/templates/pages/cart.html
@@ -21,8 +21,9 @@
 {% if doc.items %}
 <div class="cart-container">
 	<div class="row m-0">
-		<div class="col-md-8 frappe-card p-5 mb-4">
-			<div>
+		<!-- Left section -->
+		<div class="col-md-8">
+			<div class="frappe-card p-5 mb-4">
 				<div id="cart-error" class="alert alert-danger" style="display: none;"></div>
 				<div class="cart-items-header">
 					{{ _('Items') }}
@@ -56,61 +57,44 @@
 						</tfoot>
 					{% endif %}
 				</table>
-			</div>
 
-			<div class="row mt-2">
-				<div class="col-3">
-					{% if cart_settings.enable_checkout %}
-						<a class="btn btn-primary-light font-md" href="/orders">
-							{{ _('Past Orders') }}
-						</a>
-					{% else %}
-						<a class="btn btn-primary-light font-md" href="/quotations">
-							{{ _('Past Quotes') }}
-						</a>
-					{% endif %}
-				</div>
-				<div class="col-9">
-					{% if doc.items %}
-					<div class="place-order-container">
-						<a class="btn btn-primary-light mr-2 font-md" href="/all-products">
-							{{ _('Continue Shopping') }}
-						</a>
+				<div class="row mt-2">
+					<div class="col-3">
+						{% if cart_settings.enable_checkout %}
+							<a class="btn btn-primary-light font-md" href="/orders">
+								{{ _('Past Orders') }}
+							</a>
+						{% else %}
+							<a class="btn btn-primary-light font-md" href="/quotations">
+								{{ _('Past Quotes') }}
+							</a>
+						{% endif %}
 					</div>
-					{% endif %}
+					<div class="col-9">
+						{% if doc.items %}
+						<div class="place-order-container">
+							<a class="btn btn-primary-light mr-2 font-md" href="/all-products">
+								{{ _('Continue Shopping') }}
+							</a>
+						</div>
+						{% endif %}
+					</div>
 				</div>
 			</div>
 
-
+			<!-- Terms and Conditions -->
 			{% if doc.items %}
-			{% if doc.tc_name %}
-				<div class="terms-and-conditions-link">
-					<a href class="link-terms-and-conditions" data-terms-name="{{ doc.tc_name }}">
-						{{ _("Terms and Conditions") }}
-					</a>
-					<script>
-						frappe.ready(() => {
-							$('.link-terms-and-conditions').click((e) => {
-								e.preventDefault();
-								const $link = $(e.target);
-								const terms_name = $link.attr('data-terms-name');
-								show_terms_and_conditions(terms_name);
-							})
-						});
-						function show_terms_and_conditions(terms_name) {
-							frappe.call('erpnext.e_commerce.shopping_cart.cart.get_terms_and_conditions', { terms_name })
-							.then(r => {
-								frappe.msgprint({
-									title: terms_name,
-									message: r.message
-								});
-							});
-						}
-					</script>
-				</div>
-			{% endif %}
+				{% if doc.terms %}
+					<div class="t-and-c-container mt-4 frappe-card">
+						<h5>{{ _("Terms and Conditions") }}</h5>
+						<div class="t-and-c-terms mt-2">
+							{{ doc.terms }}
+						</div>
+					</div>
+				{% endif %}
 		</div>
 
+		<!-- Right section -->
 		<div class="col-md-4">
 			<div class="cart-payment-addresses">
 				<!-- Apply Coupon Code  -->
diff --git a/erpnext/templates/pages/cart_terms.html b/erpnext/templates/pages/cart_terms.html
deleted file mode 100644
index 6d84fb8..0000000
--- a/erpnext/templates/pages/cart_terms.html
+++ /dev/null
@@ -1,2 +0,0 @@
-
-<div>{{doc.terms}}</div>
diff --git a/erpnext/templates/pages/product_search.py b/erpnext/templates/pages/product_search.py
index b6601a8..00aace4 100644
--- a/erpnext/templates/pages/product_search.py
+++ b/erpnext/templates/pages/product_search.py
@@ -8,7 +8,7 @@
 from erpnext.e_commerce.shopping_cart.product_info import set_product_info_for_website
 
 from redisearch import AutoCompleter, Client, Query
-from erpnext.e_commerce.website_item_indexing import (
+from erpnext.e_commerce.redisearch import (
 	is_search_module_loaded,
 	WEBSITE_ITEM_INDEX,
 	WEBSITE_ITEM_NAME_AUTOCOMPLETE,
@@ -18,7 +18,6 @@
 
 no_cache = 1
 
-
 def get_context(context):
 	context.show_search = True
 
@@ -35,13 +34,13 @@
 	# limit = 12 because we show 12 items in the grid view
 	# base query
 	query = """
-		Select
+		SELECT
 			web_item_name, item_name, item_code, brand, route,
 			website_image, thumbnail, item_group,
 			description, web_long_description as website_description,
 			website_warehouse, ranking
-		from `tabWebsite Item`
-		where published = 1
+		FROM `tabWebsite Item`
+		WHERE published = 1
 		"""
 
 	# search term condition
@@ -53,7 +52,7 @@
 		search = "%" + cstr(search) + "%"
 
 	# order by
-	query += """ order by ranking asc, modified desc limit %s, %s""" % (cint(start), cint(limit))
+	query += """ ORDER BY ranking asc, modified desc limit %s, %s""" % (cint(start), cint(limit))
 
 	return frappe.db.sql(query, {
 		"search": search
@@ -91,14 +90,9 @@
 
 	q = Query(query_string)
 
-	print(f"Executing query: {q.query_string()}")
-
 	results = client.search(q)
 	search_results['results'] = list(map(convert_to_dict, results.docs))
 
-	# FOR DEBUGGING
-	print("SEARCH RESULTS ------------------\n ", search_results)
-
 	return search_results
 
 def clean_up_query(query):
diff --git a/erpnext/www/all-products/index.py b/erpnext/www/all-products/index.py
index a5476e4..c66924e 100644
--- a/erpnext/www/all-products/index.py
+++ b/erpnext/www/all-products/index.py
@@ -1,6 +1,6 @@
 import frappe
 from frappe.utils import cint
-from erpnext.e_commerce.filters import ProductFiltersBuilder
+from erpnext.e_commerce.product_data_engine.filters import ProductFiltersBuilder
 
 sitemap = 1