fix: Patch fix for fresh installs

- minor sider fix
- patch fix for fresh installs
diff --git a/erpnext/patches/v13_0/create_website_items.py b/erpnext/patches/v13_0/create_website_items.py
index a3b0751..2e1f305 100644
--- a/erpnext/patches/v13_0/create_website_items.py
+++ b/erpnext/patches/v13_0/create_website_items.py
@@ -7,20 +7,37 @@
 	frappe.reload_doc("e_commerce", "doctype", "website_item")
 	frappe.reload_doc("stock", "doctype", "item")
 
-	web_fields_to_map = ["route", "slideshow", "website_image", "website_image_alt",
+	item_fields = ["item_code", "item_name", "item_group", "stock_uom", "brand", "image",
+		"has_variants", "variant_of", "description", "weightage"]
+	web_fields_to_map = ["route", "slideshow", "website_image_alt",
 		"website_warehouse", "web_long_description", "website_content"]
 
-	items = frappe.db.sql("""
-		Select
-			item_code, item_name, item_group, stock_uom, brand, image,
-			has_variants, variant_of, description, weightage,
-			route, slideshow, website_image_alt,
-			website_warehouse, web_long_description, website_content
-		from
-			`tabItem`
-		where
-			show_in_website = 1
-			or show_variant_in_website = 1""", as_dict=1)
+	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
+	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)
+
+	# check if the filter fields exist in Item master
+	or_filters = {}
+	for field in ["show_in_website", "show_variant_in_website"]:
+		if field in item_table_fields:
+			or_filters[field] = 1
+
+	if not web_query_fields or not or_filters:
+		# web fields to map are not present in Item master schema
+		# most likely a fresh installation that doesnt need this patch
+		return
+
+	items = frappe.db.get_all(
+		"Item",
+		fields=item_fields,
+		or_filters=or_filters
+	)
 
 	for item in items:
 		if frappe.db.exists("Website Item", {"item_code": item.item_code}):
@@ -34,12 +51,15 @@
 			website_item.save()
 
 		# move Website Item Group & Website Specification table to Website Item
-		for doc in ("Website Item Group", "Item Website Specification"):
-			frappe.db.sql("""Update `tab{doctype}`
+		for doctype in ("Website Item Group", "Item Website Specification"):
+			web_item, item = website_item.name, item.item_code
+			frappe.db.sql(f"""
+				Update `tab{doctype}`
 				set
 					parenttype = 'Website Item',
 					parent = '{web_item}'
 				where
 					parenttype = 'Item'
 					and parent = '{item}'
-				""".format(doctype=doc, web_item=website_item.name, item=item.item_code))
\ No newline at end of file
+				"""
+			)
\ No newline at end of file
diff --git a/erpnext/patches/v13_0/make_homepage_products_website_items.py b/erpnext/patches/v13_0/make_homepage_products_website_items.py
index 8b51cad..8be5875 100644
--- a/erpnext/patches/v13_0/make_homepage_products_website_items.py
+++ b/erpnext/patches/v13_0/make_homepage_products_website_items.py
@@ -11,4 +11,5 @@
 
 		row.item_code = web_item
 
+	homepage.flags.ignore_mandatory = True
 	homepage.save()
\ No newline at end of file
diff --git a/erpnext/patches/v13_0/populate_e_commerce_settings.py b/erpnext/patches/v13_0/populate_e_commerce_settings.py
index 19f91ef..5241cae 100644
--- a/erpnext/patches/v13_0/populate_e_commerce_settings.py
+++ b/erpnext/patches/v13_0/populate_e_commerce_settings.py
@@ -4,6 +4,8 @@
 
 def execute():
 	frappe.reload_doc("e_commerce", "doctype", "e_commerce_settings")
+	frappe.reload_doc("portal", "doctype", "website_filter_field")
+	frappe.reload_doc("portal", "doctype", "website_attribute")
 
 	products_settings_fields = [
 		"hide_variants", "home_page_is_products", "products_per_page",