From 2093546df72b6526b9aee1ba754d27f50f744bf7 Mon Sep 17 00:00:00 2001 From: Jade Date: Mon, 18 May 2026 13:58:06 +0200 Subject: [PATCH 1/2] Listen to default_sort_by from magento --- config/rapidez/magento-defaults.php | 3 ++- src/Http/Controllers/ConfigController.php | 21 +++++++++++++++++---- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/config/rapidez/magento-defaults.php b/config/rapidez/magento-defaults.php index a04a6935e..ffd8e8650 100644 --- a/config/rapidez/magento-defaults.php +++ b/config/rapidez/magento-defaults.php @@ -1,9 +1,10 @@ 'position', 'catalog/frontend/flat_catalog_category' => '0', - 'catalog/frontend/grid_per_page_values' => '12,24,36', 'catalog/frontend/flat_catalog_product' => '0', + 'catalog/frontend/grid_per_page_values' => '12,24,36', 'catalog/frontend/grid_per_page' => '12', 'catalog/frontend/show_swatches_in_product_list' => '1', 'catalog/recently_products/viewed_count' => '5', diff --git a/src/Http/Controllers/ConfigController.php b/src/Http/Controllers/ConfigController.php index 4c1576541..32e6c516c 100644 --- a/src/Http/Controllers/ConfigController.php +++ b/src/Http/Controllers/ConfigController.php @@ -250,21 +250,34 @@ public function getSearchkitSorting(): array "rapidez::frontend.sorting.{$attribute['code']}.{$direction}", trans_fallback("rapidez::frontend.{$attribute['code']}", ucfirst($attribute['code'])) . ' ' . trans_fallback("rapidez::frontend.{$direction}", $direction), ), + 'code' => $attribute['code'], 'field' => $attribute['code'] . (Attribute::hasKeyword($attribute['code']) ? '.keyword' : ''), 'order' => $direction, 'value' => "{$index}_{$attribute['code']}_{$direction}", 'key' => "_{$attribute['code']}_{$direction}", ])); - // Add default relevance sort + // Add relevance sort $sortableAttributes->prepend([ 'label' => __('Relevance'), + 'code' => 'position', 'field' => '_score', 'order' => 'desc', - 'value' => $index, - 'key' => 'default', + 'value' => "{$index}_score_desc", + 'key' => '_score_desc', ]); - return $sortableAttributes->keyBy('key')->toArray(); + // Set default sort by + $defaultSortBy = Rapidez::config('catalog/frontend/default_sort_by'); + $sortableAttributes = $sortableAttributes + ->sortBy(fn($attribute) => $attribute['code'] == $defaultSortBy ? 0 : 1) + ->values() + ->toArray(); + + // Change value and key of default sort + $sortableAttributes[0]['value'] = $index; + $sortableAttributes[0]['key'] = 'default'; + + return Arr::keyBy($sortableAttributes, 'key'); } } From d10ae15ea842e66140a24b67bddfd88cdface4d1 Mon Sep 17 00:00:00 2001 From: Jade-GG Date: Mon, 18 May 2026 11:58:40 +0000 Subject: [PATCH 2/2] Apply fixes from Duster --- src/Http/Controllers/ConfigController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Http/Controllers/ConfigController.php b/src/Http/Controllers/ConfigController.php index 32e6c516c..a2eeffb09 100644 --- a/src/Http/Controllers/ConfigController.php +++ b/src/Http/Controllers/ConfigController.php @@ -270,7 +270,7 @@ public function getSearchkitSorting(): array // Set default sort by $defaultSortBy = Rapidez::config('catalog/frontend/default_sort_by'); $sortableAttributes = $sortableAttributes - ->sortBy(fn($attribute) => $attribute['code'] == $defaultSortBy ? 0 : 1) + ->sortBy(fn ($attribute) => $attribute['code'] == $defaultSortBy ? 0 : 1) ->values() ->toArray();