質問 > フロント機能 > 規格あり商品の価格順ソートについて |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
nakamori |
投稿日時: 2018/4/25 12:14
対応状況: −−−
|
常連 登録日: 2018/4/25 居住地: 投稿: 33 |
規格あり商品の価格順ソートについて [EC-CUBE] 3.0.16、新規インストール
[レンタルサーバ] カゴヤ マネージド専用サーバー [OS] CentOS6 [PHP] 7.0.28 [データベース] MySQL 5.6.36 [WEBサーバ] Apache/2.4.33 [ブラウザ] Chrome最新版 [導入プラグインの有無] 有 ・商品情報追加プラグイン ・商品おすすめ順プラグイン [カスタマイズの有無] 有 Twigテンプレート(app/template/foobar/Product/list.twig)をカスタマイズし、 商品一覧画面で規格登録してある商品を並べて表示しています。 商品登録条件 ・規格1のみ使用 ・規格ごとに異なる金額を設定 ・規格未設定の商品もある 一覧画面のカスタマイズ内容 ・表示する商品情報に規格内容を追加 ・規格登録があったら、設定数分を並べて表示 ・表示件数も規格ごとにカウントして表示 例えば[商品A]にサイズ別の金額が設定してあったら ・商品A Lサイズ 5,000円 ・商品A Mサイズ 3,000円 というように、2件分として表示しています。 [現象] 上記カスタマイズを加えた状態で、価格順ソートを自然に見せるには どのようにすればいいでしょうか? 現状は(当たり前ですが) 価格の高い順 → price02_maxの値でソート しているため、4,000円の[商品B]があると ・商品A Lサイズ 5,000円 ・商品A Mサイズ 3,000円 ・商品B 4,000円 のような順番で表示されてしまいます。 Twigテンプレートの書き換えでなんとかなるか、それとも src/Eccube/Repository/ProductRepository.php あたりのカスタマイズが必要になるでしょうか? 他に影響が出そうな部分など(pagenationも必要そうですが)もありましたら、 ご教授ください。 |
468 |
投稿日時: 2018/4/25 18:56
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 規格あり商品の価格順ソートについて Twigの変更だけでは対応できないと思います。
規格単位で並び替えを行う事になるかと思いますので、 pagenationの対象がProductではなく、ProductClassとなるかと思いますので、 ProductRepositoryにも手を加える必要があると思います。 もし、私が実装するのであれば、影響を最小限に抑えるために ProductClassRepository.phpに、新しくProductRepository.getQueryBuilderBySearchDataをコピーしたメソッドを追加して、、 内容を $qb = $this->createQueryBuilder('pc') ->innerJoin('pc.Product', 'p') ->andWhere('p.Status = 1'); のようにProductClassを取得するDQLに変更して、 そのメソッドをProductController.phpから呼び出すように変更します。 ProductRepository.getQueryBuilderBySearchData()は、 デフォルトでは商品一覧以外から呼び出している箇所は無いようですが 追加したプラグイン等で利用される可能性もありますので、 そのままとしておいたほうが良いと思います。
|
nakamori |
投稿日時: 2018/4/26 13:41
対応状況: −−−
|
常連 登録日: 2018/4/25 居住地: 投稿: 33 |
Re: 規格あり商品の価格順ソートについて 早速、ありがとうございます!
やはりProductRepositoryに手を加える必要があるのですね。 丁寧にヒントも記載いただき、大変助かります。 この件について進捗がありましたら、またご報告させていただきます。 取り急ぎ御礼まで。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |