Skip to main content
Notice removed Draw attention by CommunityBot
Bounty Ended with no winning answer by CommunityBot
deleted 11 characters in body
Source Link
Shoaib Munir
  • 9.6k
  • 10
  • 53
  • 108

I need "Price Low to High" and "Price High to Low" sorting.

For this I have followed some guides which are referring to override Magento\Catalog\Block\Product\ProductList\Toolbar

These solutions are only applicable for older version of Magento 2 (Which doesn't use elasticsearch)

For 2.4+ versions where elastic search is mandatory, this guide wont work.

I have also tried this solution: https://devhooks.in/blog/how-to-add-custom-sorting-in-category-of-magento24-and-laterhttps://devhooks.in/blog/how-to-add-custom-sorting-in-category-of-magento2

After applying above solution, I have checked query log, and query is like this:

SELECT `e`.*, `price_index`.`price`, `price_index`.`tax_class_id`, `price_index`.`final_price`, IF(price_index.tier_price IS NOT NULL, LEAST(price_index.min_price, price_index.tier_price), price_index.min_price) AS `minimal_price`, `price_index`.`min_price`, `price_index`.`max_price`, `price_index`.`tier_price`, IFNULL(review_summary.reviews_count, 0) AS `reviews_count`, IFNULL(review_summary.rating_summary, 0) AS `rating_summary`, `stock_status_index`.`stock_status` AS `is_salable` FROM `catalog_product_entity` AS `e`
 INNER JOIN `catalog_product_index_price` AS `price_index` ON price_index.entity_id = e.entity_id AND price_index.customer_group_id = 0 AND price_index.website_id = '1'
 LEFT JOIN `review_entity_summary` AS `review_summary` ON e.entity_id = review_summary.entity_pk_value AND review_summary.store_id = 1 AND review_summary.entity_type = (SELECT `review_entity`.`entity_id` FROM `review_entity` WHERE (entity_code = 'product'))
 INNER JOIN `cataloginventory_stock_status` AS `stock_status_index` ON e.entity_id = stock_status_index.product_id 
 WHERE (e.entity_id IN (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)) 
 AND (stock_status_index.stock_status = 1) 
 ORDER BY FIELD(e.entity_id,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32),
 `minimal_price` asc

Which is clearly showing that Elastic search is applying sorting before toolbar and before collection.

I just need to sort by minimal_price with asc and desc order, for low to high and high to low

I need "Price Low to High" and "Price High to Low" sorting.

For this I have followed some guides which are referring to override Magento\Catalog\Block\Product\ProductList\Toolbar

These solutions are only applicable for older version of Magento 2 (Which doesn't use elasticsearch)

For 2.4+ versions where elastic search is mandatory, this guide wont work.

I have also tried this solution: https://devhooks.in/blog/how-to-add-custom-sorting-in-category-of-magento24-and-later

After applying above solution, I have checked query log, and query is like this:

SELECT `e`.*, `price_index`.`price`, `price_index`.`tax_class_id`, `price_index`.`final_price`, IF(price_index.tier_price IS NOT NULL, LEAST(price_index.min_price, price_index.tier_price), price_index.min_price) AS `minimal_price`, `price_index`.`min_price`, `price_index`.`max_price`, `price_index`.`tier_price`, IFNULL(review_summary.reviews_count, 0) AS `reviews_count`, IFNULL(review_summary.rating_summary, 0) AS `rating_summary`, `stock_status_index`.`stock_status` AS `is_salable` FROM `catalog_product_entity` AS `e`
 INNER JOIN `catalog_product_index_price` AS `price_index` ON price_index.entity_id = e.entity_id AND price_index.customer_group_id = 0 AND price_index.website_id = '1'
 LEFT JOIN `review_entity_summary` AS `review_summary` ON e.entity_id = review_summary.entity_pk_value AND review_summary.store_id = 1 AND review_summary.entity_type = (SELECT `review_entity`.`entity_id` FROM `review_entity` WHERE (entity_code = 'product'))
 INNER JOIN `cataloginventory_stock_status` AS `stock_status_index` ON e.entity_id = stock_status_index.product_id 
 WHERE (e.entity_id IN (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)) 
 AND (stock_status_index.stock_status = 1) 
 ORDER BY FIELD(e.entity_id,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32),
 `minimal_price` asc

Which is clearly showing that Elastic search is applying sorting before toolbar and before collection.

I just need to sort by minimal_price with asc and desc order, for low to high and high to low

I need "Price Low to High" and "Price High to Low" sorting.

For this I have followed some guides which are referring to override Magento\Catalog\Block\Product\ProductList\Toolbar

These solutions are only applicable for older version of Magento 2 (Which doesn't use elasticsearch)

For 2.4+ versions where elastic search is mandatory, this guide wont work.

I have also tried this solution: https://devhooks.in/blog/how-to-add-custom-sorting-in-category-of-magento2

After applying above solution, I have checked query log, and query is like this:

SELECT `e`.*, `price_index`.`price`, `price_index`.`tax_class_id`, `price_index`.`final_price`, IF(price_index.tier_price IS NOT NULL, LEAST(price_index.min_price, price_index.tier_price), price_index.min_price) AS `minimal_price`, `price_index`.`min_price`, `price_index`.`max_price`, `price_index`.`tier_price`, IFNULL(review_summary.reviews_count, 0) AS `reviews_count`, IFNULL(review_summary.rating_summary, 0) AS `rating_summary`, `stock_status_index`.`stock_status` AS `is_salable` FROM `catalog_product_entity` AS `e`
 INNER JOIN `catalog_product_index_price` AS `price_index` ON price_index.entity_id = e.entity_id AND price_index.customer_group_id = 0 AND price_index.website_id = '1'
 LEFT JOIN `review_entity_summary` AS `review_summary` ON e.entity_id = review_summary.entity_pk_value AND review_summary.store_id = 1 AND review_summary.entity_type = (SELECT `review_entity`.`entity_id` FROM `review_entity` WHERE (entity_code = 'product'))
 INNER JOIN `cataloginventory_stock_status` AS `stock_status_index` ON e.entity_id = stock_status_index.product_id 
 WHERE (e.entity_id IN (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)) 
 AND (stock_status_index.stock_status = 1) 
 ORDER BY FIELD(e.entity_id,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32),
 `minimal_price` asc

Which is clearly showing that Elastic search is applying sorting before toolbar and before collection.

I just need to sort by minimal_price with asc and desc order, for low to high and high to low

Tweeted twitter.com/StackMagento/status/1617447059325390849
Notice added Draw attention by Shoaib Munir
Bounty Started worth 100 reputation by Shoaib Munir
added 1596 characters in body
Source Link
Shoaib Munir
  • 9.6k
  • 10
  • 53
  • 108

I need "Price Low to High" and "Price High to Low" sorting.

For this I have followed some guides which are referring to override Magento\Catalog\Block\Product\ProductList\Toolbar

These solutions are only applicable for older version of Magento 2 (Which doesn't use elasticsearch)

For 2.4+ versions where elastic search is mandatory, this guide wont work.

I have also tried this solution: https://devhooks.in/blog/how-to-add-custom-sorting-in-category-of-magento24-and-later

But it sorts by out of stockAfter applying above solution, I have checked query log, and query is like this:

SELECT `e`.*, `price_index`.`price`, `price_index`.`tax_class_id`, `price_index`.`final_price`, IF(price_index.tier_price IS NOT NULL, LEAST(price_index.min_price, price_index.tier_price), price_index.min_price) AS `minimal_price`, `price_index`.`min_price`, `price_index`.`max_price`, `price_index`.`tier_price`, IFNULL(review_summary.reviews_count, 0) AS `reviews_count`, IFNULL(review_summary.rating_summary, 0) AS `rating_summary`, `stock_status_index`.`stock_status` AS `is_salable` FROM `catalog_product_entity` AS `e`
 INNER JOIN `catalog_product_index_price` AS `price_index` ON price_index.entity_id = e.entity_id AND price_index.customer_group_id = 0 AND price_index.website_id = '1'
 LEFT JOIN `review_entity_summary` AS `review_summary` ON e.entity_id = review_summary.entity_pk_value AND review_summary.store_id = 1 AND review_summary.entity_type = (SELECT `review_entity`.`entity_id` FROM `review_entity` WHERE (entity_code = 'product'))
 INNER JOIN `cataloginventory_stock_status` AS `stock_status_index` ON e.entity_id = stock_status_index.product_id 
 WHERE (e.entity_id IN (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)) 
 AND (stock_status_index.stock_status = 1) 
 ORDER BY FIELD(e.entity_id,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32),
 `minimal_price` asc

Which is clearly showing that Elastic search is applying sorting before toolbar and before collection.

I just need to sort by minimal_price with asc and desc order, for low to high and high to low

I need "Price Low to High" and "Price High to Low" sorting.

For this I have followed some guides which are referring to override Magento\Catalog\Block\Product\ProductList\Toolbar

These solutions are only applicable for older version of Magento 2 (Which doesn't use elasticsearch)

For 2.4+ versions where elastic search is mandatory, this guide wont work.

I have also tried this solution: https://devhooks.in/blog/how-to-add-custom-sorting-in-category-of-magento24-and-later

But it sorts by out of stock.

I just need to sort by minimal_price with asc and desc order, for low to high and high to low

I need "Price Low to High" and "Price High to Low" sorting.

For this I have followed some guides which are referring to override Magento\Catalog\Block\Product\ProductList\Toolbar

These solutions are only applicable for older version of Magento 2 (Which doesn't use elasticsearch)

For 2.4+ versions where elastic search is mandatory, this guide wont work.

I have also tried this solution: https://devhooks.in/blog/how-to-add-custom-sorting-in-category-of-magento24-and-later

After applying above solution, I have checked query log, and query is like this:

SELECT `e`.*, `price_index`.`price`, `price_index`.`tax_class_id`, `price_index`.`final_price`, IF(price_index.tier_price IS NOT NULL, LEAST(price_index.min_price, price_index.tier_price), price_index.min_price) AS `minimal_price`, `price_index`.`min_price`, `price_index`.`max_price`, `price_index`.`tier_price`, IFNULL(review_summary.reviews_count, 0) AS `reviews_count`, IFNULL(review_summary.rating_summary, 0) AS `rating_summary`, `stock_status_index`.`stock_status` AS `is_salable` FROM `catalog_product_entity` AS `e`
 INNER JOIN `catalog_product_index_price` AS `price_index` ON price_index.entity_id = e.entity_id AND price_index.customer_group_id = 0 AND price_index.website_id = '1'
 LEFT JOIN `review_entity_summary` AS `review_summary` ON e.entity_id = review_summary.entity_pk_value AND review_summary.store_id = 1 AND review_summary.entity_type = (SELECT `review_entity`.`entity_id` FROM `review_entity` WHERE (entity_code = 'product'))
 INNER JOIN `cataloginventory_stock_status` AS `stock_status_index` ON e.entity_id = stock_status_index.product_id 
 WHERE (e.entity_id IN (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)) 
 AND (stock_status_index.stock_status = 1) 
 ORDER BY FIELD(e.entity_id,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32),
 `minimal_price` asc

Which is clearly showing that Elastic search is applying sorting before toolbar and before collection.

I just need to sort by minimal_price with asc and desc order, for low to high and high to low

edited title
Source Link
Shoaib Munir
  • 9.6k
  • 10
  • 53
  • 108

Magenot 2.4.5 - Custom sorting not working with elasticsearch

I need "Price Low to High" and "Price High to Low" sorting.

For this I have followed some guides which are referring to override Magento\Catalog\Block\Product\ProductList\Toolbar

These solutions are only applicable for older version of Magento 2 (Which doesn't use elasticsearch)

For 2.4+2.4+ versions where elastic search is mandatory, this guide wont work.

I have also tried this solution: https://devhooks.in/blog/how-to-add-custom-sorting-in-category-of-magento24-and-later

But it sorts by out of stock.

I just need to sort by minimal_price with asc and desc order, for low to high and high to low

Magenot 2 - Custom sorting not working with elasticsearch

I need "Price Low to High" and "Price High to Low" sorting.

For this I have followed some guides which are referring to override Magento\Catalog\Block\Product\ProductList\Toolbar

These solutions are only applicable for older version of Magento 2 (Which doesn't use elasticsearch)

For 2.4+ versions where elastic search is mandatory, this guide wont work.

I have also tried this solution: https://devhooks.in/blog/how-to-add-custom-sorting-in-category-of-magento24-and-later

But it sorts by out of stock.

I just need to sort by minimal_price with asc and desc order, for low to high and high to low

Magenot 2.4.5 - Custom sorting not working with elasticsearch

I need "Price Low to High" and "Price High to Low" sorting.

For this I have followed some guides which are referring to override Magento\Catalog\Block\Product\ProductList\Toolbar

These solutions are only applicable for older version of Magento 2 (Which doesn't use elasticsearch)

For 2.4+ versions where elastic search is mandatory, this guide wont work.

I have also tried this solution: https://devhooks.in/blog/how-to-add-custom-sorting-in-category-of-magento24-and-later

But it sorts by out of stock.

I just need to sort by minimal_price with asc and desc order, for low to high and high to low

Source Link
Shoaib Munir
  • 9.6k
  • 10
  • 53
  • 108
Loading