diff --git a/erpnext/shopping_cart/product_query.py b/erpnext/shopping_cart/product_query.py
index 0f3eabb..0cd8088 100644
--- a/erpnext/shopping_cart/product_query.py
+++ b/erpnext/shopping_cart/product_query.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
+# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and Contributors
 # License: GNU General Public License v3. See license.txt
 
 from __future__ import unicode_literals
@@ -10,13 +10,17 @@
 	Attributes:
 	    cart_settings (Document): Settings for Cart
 	    fields (list): Fields to fetch in query
-	    filters (list)
-	    or_filters (list)
+	    filters (TYPE): Description
+	    or_filters (list): Description
 	    page_length (Int): Length of page for the query
 	    settings (Document): Products Settings DocType
+	    filters (list)
+	    or_filters (list)
 	"""
 
 	def __init__(self):
+		"""Summary
+		"""
 		self.settings = frappe.get_doc("Products Settings")
 		self.cart_settings = frappe.get_doc("Shopping Cart Settings")
 		self.page_length = self.settings.products_per_page or 20
@@ -25,6 +29,17 @@
 		self.or_filters = []
 
 	def query(self, attributes=None, fields=None, search_term=None, start=0):
+		"""Summary
+		
+		Args:
+		    attributes (dict, optional): Item Attribute filters
+		    fields (dict, optional): Field level filters
+		    search_term (str, optional): Search term to lookup
+		    start (int, optional): Page start
+		
+		Returns:
+		    list: List of results with set fields
+		"""
 		if fields: self.build_fields_filters(fields)
 		if search_term: self.build_search_filters(search_term)
 		
@@ -49,6 +64,7 @@
 				)
 
 				items_dict = {item.name: item for item in items}
+				# TODO: Replace Variants by their parent templates
 
 				all_items.append(set(items.keys()))
 
@@ -59,16 +75,28 @@
 		return result
 
 	def build_fields_filters(self, filters):
+		"""Build filters for field values
+		
+		Args:
+		    filters (dict): Filters
+		"""
 		for field, values in filters.items():
 			if not values:
 				continue
 			
 			if isinstance(values, list):
+				# If value is a list use `IN` query
 				self.filters.append([field, 'IN', values])
 			else:
+				# `=` will be faster than `IN` for most cases
 				self.filters.append([field, '=', values])
 
 	def build_search_filters(self, search_term):
+		"""Query search term in specified fields
+		
+		Args:
+		    search_term (str): Search candidate
+		"""
 		# Default fields to search from
 		default_fields = {'name', 'item_name', 'description', 'item_group'}
 
