Skip to content

Commit

Permalink
fix: Shop by category fixes (backport frappe#34688) (frappe#34751)
Browse files Browse the repository at this point in the history
fix: Shop by category fixes (frappe#34688)

* fix: Shop by category fixes

* chore: Update tests

(cherry picked from commit 56f5078)

Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
  • Loading branch information
mergify[bot] and deepeshgarg007 authored Apr 5, 2023
1 parent e76df6f commit af828e4
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 4 deletions.
8 changes: 7 additions & 1 deletion erpnext/e_commerce/doctype/website_item/test_website_item.py
Original file line number Diff line number Diff line change
Expand Up @@ -198,8 +198,14 @@ def test_website_item_breadcrumbs(self):

breadcrumbs = get_parent_item_groups(item.item_group)

settings = frappe.get_cached_doc("E Commerce Settings")
if settings.enable_field_filters:
base_breadcrumb = "Shop by Category"
else:
base_breadcrumb = "All Products"

self.assertEqual(breadcrumbs[0]["name"], "Home")
self.assertEqual(breadcrumbs[1]["name"], "All Products")
self.assertEqual(breadcrumbs[1]["name"], base_breadcrumb)
self.assertEqual(breadcrumbs[2]["name"], "_Test Item Group B") # parent item group
self.assertEqual(breadcrumbs[3]["name"], "_Test Item Group B - 1")

Expand Down
9 changes: 7 additions & 2 deletions erpnext/setup/doctype/item_group/item_group.py
Original file line number Diff line number Diff line change
Expand Up @@ -149,12 +149,17 @@ def get_item_for_list_in_html(context):


def get_parent_item_groups(item_group_name, from_item=False):
base_nav_page = {"name": _("All Products"), "route": "/all-products"}
settings = frappe.get_cached_doc("E Commerce Settings")

if settings.enable_field_filters:
base_nav_page = {"name": _("Shop by Category"), "route": "/shop-by-category"}
else:
base_nav_page = {"name": _("All Products"), "route": "/all-products"}

if from_item and frappe.request.environ.get("HTTP_REFERER"):
# base page after 'Home' will vary on Item page
last_page = frappe.request.environ["HTTP_REFERER"].split("/")[-1].split("?")[0]
if last_page and last_page == "shop-by-category":
if last_page and last_page in ("shop-by-category", "all-products"):
base_nav_page_title = " ".join(last_page.split("-")).title()
base_nav_page = {"name": _(base_nav_page_title), "route": "/" + last_page}

Expand Down
12 changes: 11 additions & 1 deletion erpnext/www/shop-by-category/index.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ def get_tabs(categories):

def get_category_records(categories: list):
categorical_data = {}
website_item_meta = frappe.get_meta("Website Item", cached=True)

for c in categories:
if c == "item_group":
Expand All @@ -64,7 +65,16 @@ def get_category_records(categories: list):

continue

doctype = frappe.unscrub(c)
field_type = website_item_meta.get_field(c).fieldtype

if field_type == "Table MultiSelect":
child_doc = website_item_meta.get_field(c).options
for field in frappe.get_meta(child_doc, cached=True).fields:
if field.fieldtype == "Link" and field.reqd:
doctype = field.options
else:
doctype = website_item_meta.get_field(c).options

fields = ["name"]

try:
Expand Down

0 comments on commit af828e4

Please sign in to comment.