今回はEC-CUBE3の管理画面内にある商品マスターの並び順をカスタマイズしてみます。
商品マスターは登録されている商品の一覧を表示・絞り込みするための機能です。

商品マスターの並び順はレポジトリクラス(Eccube/Repository/ProductRepository.php)のメソッド、getQueryBuilderBySearchDataForAdminによって決まっています。

ProductRepositoryというクラスはEC-CUBEで商品に関するデータ取得やデータ更新を担っているクラスです。

        // Order By
        $qb
            ->orderBy('p.update_date', 'DESC'); // ①

EC-CUBE3.0.14では273行目あたりで、上記のように①商品データの更新日の順番で受注マスタの並び順を指定しています。
並び変えたい場合はこのコードを変更してやればOKです。

並び替え方法

それでは、具体的に商品登録日や商品価格で並び変える方法です。
下記のように記述してください。

・商品登録日が新しい順で並び替えたい場合

$qb->orderBy('p.create_date', 'DESC'); // 商品登録日降順

・商品登録日が古い順で並び替えたい場合

$qb->orderBy('p.create_date', 'ASC'); // 商品登録日昇順

・価格が高い順で並び替えたい場合

        $qb->addSelect('MAX(pc.price02) as HIDDEN price02_max');
        $qb->orderBy('price02_max', 'DESC');
        $qb->groupBy('p');

 

 

いかがでしょうか。これで商品マスターの順番が変更されたと思います。
管理画面が便利になりますのでEC-CUBE3をご利用の方はぜひお試しください。