fix(ecommerce): throw invalid doctype error in shop by category (#33901)
Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
diff --git a/erpnext/www/shop-by-category/index.py b/erpnext/www/shop-by-category/index.py
index 8a92418..219747c 100644
--- a/erpnext/www/shop-by-category/index.py
+++ b/erpnext/www/shop-by-category/index.py
@@ -51,21 +51,31 @@
return tab_values
-def get_category_records(categories):
+def get_category_records(categories: list):
categorical_data = {}
- for category in categories:
- if category == "item_group":
+
+ for c in categories:
+ if c == "item_group":
categorical_data["item_group"] = frappe.db.get_all(
"Item Group",
filters={"parent_item_group": "All Item Groups", "show_in_website": 1},
fields=["name", "parent_item_group", "is_group", "image", "route"],
)
- else:
- doctype = frappe.unscrub(category)
- fields = ["name"]
- if frappe.get_meta(doctype, cached=True).get_field("image"):
+
+ continue
+
+ doctype = frappe.unscrub(c)
+ fields = ["name"]
+
+ try:
+ meta = frappe.get_meta(doctype, cached=True)
+ if meta.get_field("image"):
fields += ["image"]
- categorical_data[category] = frappe.db.get_all(doctype, fields=fields)
+ data = frappe.db.get_all(doctype, fields=fields)
+ categorical_data[c] = data
+ except BaseException:
+ frappe.throw(_("DocType {} not found").format(doctype))
+ continue
return categorical_data