From 2ff8ed6c2909166fd9a0e8cc21c2af3162065b35 Mon Sep 17 00:00:00 2001 From: Amanmyrat Date: Sat, 23 Sep 2023 18:31:55 +0500 Subject: [PATCH] Add search sorting --- .../src/Repositories/ProductRepository.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/packages/Sarga/Shop/src/Repositories/ProductRepository.php b/packages/Sarga/Shop/src/Repositories/ProductRepository.php index 158451d..f22d0db 100644 --- a/packages/Sarga/Shop/src/Repositories/ProductRepository.php +++ b/packages/Sarga/Shop/src/Repositories/ProductRepository.php @@ -123,6 +123,24 @@ class ProductRepository extends WProductRepository ->leftJoin('marketplace_sellers', 'marketplace_sellers.id', '=', 'marketplace_products.marketplace_seller_id') ->addSelect('marketplace_sellers.shop_title'); + # sort direction + $orderDirection = 'asc'; + if (isset($params['order']) && in_array($params['order'], ['desc', 'asc'])) { + $orderDirection = $params['order']; + } else { + $sortOptions = $this->getDefaultSortByOption(); + $orderDirection = ! empty($sortOptions) ? $sortOptions[1] : 'asc'; + } + + if (isset($params['sort'])) { + $this->checkSortAttributeAndGenerateQuery($query, $params['sort'], $orderDirection); + } else { + $sortOptions = $this->getDefaultSortByOption(); + if (! empty($sortOptions)) { + $this->checkSortAttributeAndGenerateQuery($query, $sortOptions[0], $orderDirection); + } + } + if (! core()->getConfigData('catalog.products.homepage.out_of_stock_items')) { $query = $this->checkOutOfStockItem($query); }