EC-CUBE3系管理画面の会員マスターをカスタマイズしてみたいと思います。
今回は簡単にできる会員マスターの並び順変更方法をご紹介します。
デフォルトでは会員マスターの並び順はEccube/Repository/CustomerRepository.phpのメソッド、getQueryBuilderBySearchDataによって決まっています。
EC-CUBE3ではSQLを直接書くのではなく、クエリビルダ($qbというオブジエクト)に様々な条件を指定していきます。
CustomerRepositoryというのはEC-CUBEで会員情報に関するデータ取得やデータ更新を担うクラスです。
// Order By $qb->addOrderBy('c.update_date', 'DESC'); // ①
EC-CUBE3.0.14では、上記のように①更新日順で会員マスターの並び順を設定しています。
ただ、更新日で会員一覧を見たいときというのはそれほどないと思いますので、並び順を変更したい場合はこの部分のコードを一部変更してやれば並び替えができます。
並び替え方法
それでは、具体的に今までの購入総額や会員登録日での並び順に変更する方法です。
下記のように記述してください。
・購入総額が多い順で並び替えたい場合
$qb->orderBy('c.buy_total', 'DESC'); // 購入総額
・購入回数が多い順で並び替えたい場合
$qb->orderBy('c.buy_times', 'DESC'); // 購入回数
・最終購入日で並び替えたい場合
$qb->orderBy('c.last_buy_date', 'DESC'); // 最終購入日
・登録日が古い順で並び替えたい場合
$qb->orderBy('c.create_date', 'ASC'); // 登録日
いかがでしょうか。これで会員マスターの並び順が変更されたと思います。
これだけで会員マスターのカスタマイズを行うことができますのでEC-CUBE3をご利用の方はぜひお試しください。
EC-CUBEに関するお問い合わせ
[重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。