fix: Failing search util import and patch

- Use simple function import instead of global variable to check if field is valid to index
- Commit after every 20 items in patch to  create web items from items
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 ece60d4..1ff3152 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.redisearch import create_website_items_index, ALLOWED_INDEXABLE_FIELDS_SET, is_search_module_loaded
+from erpnext.e_commerce.redisearch import create_website_items_index, get_indexable_web_fields, is_search_module_loaded
 
 class ShoppingCartSetupError(frappe.ValidationError): pass
 
@@ -57,8 +57,10 @@
 		fields = unique(fields.strip(',').split(',')) # Remove extra ',' and remove duplicates
 
 		# All fields should be indexable
-		if not (set(fields).issubset(ALLOWED_INDEXABLE_FIELDS_SET)):
-			invalid_fields = list(set(fields).difference(ALLOWED_INDEXABLE_FIELDS_SET))
+		allowed_indexable_fields = get_indexable_web_fields()
+
+		if not (set(fields).issubset(allowed_indexable_fields)):
+			invalid_fields = list(set(fields).difference(allowed_indexable_fields))
 			num_invalid_fields = len(invalid_fields)
 			invalid_fields = comma_and(invalid_fields)
 
diff --git a/erpnext/e_commerce/redisearch.py b/erpnext/e_commerce/redisearch.py
index 9dac40f..d0626a3 100644
--- a/erpnext/e_commerce/redisearch.py
+++ b/erpnext/e_commerce/redisearch.py
@@ -19,9 +19,6 @@
 
 	return [df.fieldname for df in valid_fields]
 
-ALLOWED_INDEXABLE_FIELDS_SET = get_indexable_web_fields()
-
-
 def is_search_module_loaded():
 	cache = frappe.cache()
 	out = cache.execute_command('MODULE LIST')
diff --git a/erpnext/patches/v13_0/create_website_items.py b/erpnext/patches/v13_0/create_website_items.py
index a8bdc5c..fa03962 100644
--- a/erpnext/patches/v13_0/create_website_items.py
+++ b/erpnext/patches/v13_0/create_website_items.py
@@ -13,12 +13,12 @@
 	item_table_fields = frappe.db.sql("desc `tabItem`", as_dict=1)
 	item_table_fields = [d.get('Field') for d in item_table_fields]
 
-	# prepare fields to query from Item, check if the field exists in Item master
+	# prepare fields to query from Item, check if the web field exists in Item master
 	web_query_fields = []
-	for field in web_fields_to_map:
-		if field in item_table_fields:
-			web_query_fields.append(field)
-			item_fields.append(field)
+	for web_field in web_fields_to_map:
+		if web_field in item_table_fields:
+			web_query_fields.append(web_field)
+			item_fields.append(web_field)
 
 	# check if the filter fields exist in Item master
 	or_filters = {}
@@ -37,6 +37,7 @@
 		or_filters=or_filters
 	)
 
+	count = 0
 	for item in items:
 		if frappe.db.exists("Website Item", {"item_code": item.item_code}):
 			continue
@@ -59,5 +60,9 @@
 					parent = '{web_item}'
 				where
 					parenttype = 'Item'
-					and parent = '{item}'
-				""")
\ No newline at end of file
+					and parent = '{item_code}'
+				""")
+
+		count += 1
+		if count % 20 == 0: # commit after every 20 items
+			frappe.db.commit()