【EC-CUBE3】管理画面の商品マスターの並び替え方法【プラグイン不要】

【EC-CUBE3】管理画面の商品マスターの並び替え方法【プラグイン不要】

こんにちは。
ここ最近、ひたすらEC-CUBEネタです。

今日は、管理画面の商品マスターの表示順についてです。
デフォルトでは、更新日時の降順(最近更新した順)に並べ替えされています。
つまり、直近で編集もしくは追加した商品が先頭に表示されます。
商品情報を連続して編集するときなどに、余計に気になるのですが、
編集するたびに商品の表示順が変わるというのが、
混乱するというか、すごく見づらいと感じます。
そこで、この表示順を商品IDの昇順に並べ替えようと思います。

前提条件

プラグインは使いません。
また、画面上の設定等ではなく、ソースコードを直接編集します。
問題が起きても、必ず元に戻せる状態にしておいてください。

編集箇所

対象ファイル:src/Eccube/Repository/ProductRepository.php

まずは、getQueryBuilderBySearchDataForAdmin()というファンクションを探してください。

 

このファンクションの一番最後の方に、以下のような処理が書かれています。

[変更前]

 

今回編集するのは、この「$qb->orderBy(‘p.update_date’, ‘DESC’)」という部分だけです。
これを、商品IDの昇順に並べ替えするには、以下の通りに変更します。

[変更後]

管理画面で並べ替えができているか確認

では、想定通りに並べ替えが出来ているか確認してみましょう。

[変更前]

[変更後]

商品IDの昇順に並んでいることが確認できました。

商品ID以外で並べ替えしたい場合

名前の昇順

名前の降順

商品追加日の昇順

商品追加日の降順

まとめ

そもそも、なぜ管理画面上で並べ替えができないんでしょうかね?
練習がてら、並べ替え機能のプラグインでも作ってみようかと思います。