質問 > フロント機能 > 特定のカテゴリの商品リスト作成について |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
rokuatsu |
投稿日時: 2022/9/14 17:30
対応状況: −−−
|
新米 登録日: 2022/9/14 居住地: 投稿: 5 |
特定のカテゴリの商品リスト作成について ▼テンプレート
[EC-CUBE] EC-CUBE4.1.2 お世話になります。 TOPページやサイドバーに特定のカテゴリの商品リストを作成したいと考えております。 下記コードで商品リストを呼び出すことはできたのですが、並び順の変更方法がわからず困っております、、 ====================== {% set Category = repository("Eccube\\Entity\\Category").find(カテゴリID) %} {% set products = repository("Eccube\\Entity\\Product") .getQueryBuilderBySearchData({'category_id':Category}) .setMaxResults(10) .getQuery() .getResult() %} <ul> {% if products %} {% for p in products %} <li class="product_item"> <a href="{{ url('product_detail', {'id': p.id}) }}"> <p class="ec-newItemRole__listItemTitle">{{ p.name }}</p> </a> </li> {% endfor %} {% endif %} </ul> ====================== 現状は新しく登録した商品が呼び出すリストの1番上に追加されてしまい、登録日の早いもの(商品IDの若いもの)がどんどん下にいってしまう状況なのですが、 扱う商品の性質上、新しく追加した商品がリストの1番下に追加されていくことを理想としております。 (商品登録びの早いもの順、商品IDの若い順に上から並んでいくイメージでございます。) 上記コードにおいて、カテゴリ商品の呼び出し順を指定することはできないでしょうか? ご教示いただけますと幸いでございます、、 どうぞよろしくお願いいたします。 |
tacky14 |
投稿日時: 2022/9/15 12:29
対応状況: −−−
|
半人前 登録日: 2021/4/23 居住地: 投稿: 16 |
Re: 特定のカテゴリの商品リスト作成について src\Eccube\Repository\ProductRepository.php のgetQueryBuilderBySearchData()
// Order By 以下のIf文で並び順が指定できますね。 ただ、ここではP.id DESC で固定されてしまっているので、ソース改修しないと難しいのでは?と思います。 商品の並び順は、mtb_product_list_order_by でマスタ登録されているので 管理画面のマスタデータ管理から、IDと名称を登録 app\Customize\以下に同ファイルをコピーして
このような形でOrderByのIf文に作成日順のパターンを追加。 tenplate側で
このような形で調整すると、作成日順に取得できるのではないかと思います。 |
rokuatsu |
投稿日時: 2022/9/18 14:03
対応状況: 解決済
|
新米 登録日: 2022/9/14 居住地: 投稿: 5 |
Re: 特定のカテゴリの商品リスト作成について ご回答いただきありがとうございます!
まだテスト環境での実装ですが、 おかげさまで理想の形で商品リストを呼び出すことができました…! ご質問した段階でマスタデータ管理での並び順の登録や ProductRepository.phpへの書き足しは行っていたのですが、呼び出したリストには反映されていない状況でした。 呼び出す際のコードで並び順を指定する必要があったのですね! ずっとわからず困っていたので、ご教示いただき大変助かりました、、 ありがとうございました…! |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |