新着商品自動表示プラグインの表示順について、同様のカスタマイズご相談を沢山頂きますので、ブログにて解説したいと思います。
※カスタマイズ箇所に誤りがありましたので、修正いたします。(修正:2022/1/31)
プラグインをインストールすると、各ファイルが展開されますが、
/app/plugin/Shiro8NewProductBlock3/Controller/Block/Shiro8NewProductController.php
の、
46行目付近
(デフォルト)
$searchData = $searchForm->getData();
$qb =
$app[‘eccube.repository.product’]->getQueryBuilderBySearchData($searchData);
というコードがあるかと思います。
EC-CUBE3のデフォルトでは以下の並び順を商品一覧ページなどで表示する為に予め用意されていますので、単純にそのように並び替えたい場合は、上記のコードを下記のように変更します。
(カスタマイズ後)
$searchData = $searchForm->getData();
$searchData[“orderby”] =
$app[‘eccube.repository.master.product_list_order_by’]->find(2); //←ここの数値で並び順が変わる
$qb =
$app[‘eccube.repository.product’]->getQueryBuilderBySearchData($searchData);
find(2)の「2」の数値を下記に照らして変更すれば並び順は変わります。
1=価格が低い順
2=新着順
3=価格が高い順
(商品一覧ページと共通の処理となります)
尚、この3つの並び順以外の何らか別の条件での並び順に変更されたい場合は、
ProductRepository.php::getQueryBuilderBySearchData()
で、QueryBuilderに関する記述がありますので、そのソースを任意の条件へ変更していただければ並び順の変更カスタマイズが可能だと思います。
良くあるご相談では、DBを触られて、並び順を入れ替えようとされてうまくいかない方も結構おられるようですが、DBを触っても恐らく並び順の変更は解決しないと思います。
因みに・・・
並び順を、管理者の登録操作で、商品毎に任意に並び替えたい場合、ドラッグドロップ、または上へ、下への操作などで入れ替えられるようにプラグインの管理画面側を追加するようなカスタマイズが必要になります。こちらは有償にて特注カスタマイズを承っておりますので、ご要望の方はお気軽にお問い合わせください。
その他「新着商品自動表示プラグイン」についての表示件数の変更カスタマイズは下記記事を参考ください。