diff --git a/erpnext/e_commerce/api.py b/erpnext/e_commerce/api.py index 9d24d36f3bd4..43cb36ca2e23 100644 --- a/erpnext/e_commerce/api.py +++ b/erpnext/e_commerce/api.py @@ -29,6 +29,7 @@ def get_product_filter_data(query_args=None): if isinstance(query_args, str): query_args = json.loads(query_args) + query_args = frappe._dict(query_args) if query_args: search = query_args.get("search") field_filters = query_args.get("field_filters", {}) diff --git a/erpnext/e_commerce/product_data_engine/query.py b/erpnext/e_commerce/product_data_engine/query.py index 6fc7bf045415..ddd9987bb925 100644 --- a/erpnext/e_commerce/product_data_engine/query.py +++ b/erpnext/e_commerce/product_data_engine/query.py @@ -289,7 +289,7 @@ def combine_web_item_group_results(self, item_group, result, website_item_groups def filter_results_by_discount(self, fields, result): if fields and fields.get("discount"): discount_percent = frappe.utils.flt(fields["discount"][0]) - result = [row for row in result if row.get("discount_percent") and row.discount_percent >= discount_percent] + result = [row for row in result if row.get("discount_percent") and row.discount_percent <= discount_percent] if self.filter_with_discount: # no limit was added to results while querying diff --git a/erpnext/e_commerce/product_data_engine/test_product_data_engine.py b/erpnext/e_commerce/product_data_engine/test_product_data_engine.py index 066adcce21b8..925e6e7be3cd 100644 --- a/erpnext/e_commerce/product_data_engine/test_product_data_engine.py +++ b/erpnext/e_commerce/product_data_engine/test_product_data_engine.py @@ -274,10 +274,9 @@ def test_product_list_with_discount_filters(self): ) items = result.get("items") - # check if only product with 10% and below discount are fetched in the right order - self.assertEqual(len(items), 2) - self.assertEqual(items[0].get("item_code"), "Test 13I Laptop") - self.assertEqual(items[1].get("item_code"), "Test 12I Laptop") + # check if only product with 10% and below discount are fetched + self.assertEqual(len(items), 1) + self.assertEqual(items[0].get("item_code"), "Test 12I Laptop") def test_product_list_with_api(self): "Test products listing using API."