バージョン選択

フォーラム

メニュー

オンライン状況

27 人のユーザが現在オンラインです。 (20 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 26
PRIA もっと...

サイト内検索

質問 > フロント機能 > 商品一覧ページでデフォルトの並び順を設定したい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
cro233
投稿日時: 2020/10/5 13:52
対応状況: −−−
常連
登録日: 2020/1/9
居住地:
投稿: 69
商品一覧ページでデフォルトの並び順を設定したい
[EC-CUBE] 4.0.3
[レンタルサーバ] エックスサーバー
[OS] Mac OS
[PHP] 7.2.27
[データベース] MySQL 5.7.27
[WEBサーバ] Apache
[ブラウザ] Google Chrome、Safari

▼やりたいこと
商品一覧ページでデフォルトは「価格が低い順」ですが、「在庫あり」を新しく追加してデフォルトで選ばれるようにしたいです。

デフォルトのセレクトボックス
・価格が低い順
・価格が高い順
・新着順

追加したいもの
・在庫あり

「在庫あり」を選んだ場合、在庫がある商品が上に来るようになって、下に在庫なしの売り切れ商品がでるようにしたいです。

近い質問で「更新順」はありました。
https://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=flat&topic_id=21013&forum=11
https://www.spreadworks.co.jp/product-list-sort-order-change-for-ec-cube4/

ご存知の方、いらっしゃいましたらご教示くださいませ。
umebius
投稿日時: 2020/10/6 21:17
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: 商品一覧ページでデフォルトの並び順を設定したい
システム設定>マスタデータ管理からmtb_product_list_order_byに「在庫あり」を追加します。
この時、「在庫あり」が一番上に来るようにしてください。

IDは空いてる数字で、ここでは10としておきます。

ProductRepositoryの並び替え部分で下記のようにかけば在庫で並び替えられるのではないでしょうか。
https://github.com/EC-CUBE/ec-cube/blob/4.0.5/src/Eccube/Repository/ProductRepository.php#L205


        if (!empty($searchData['orderby']) && $searchData['orderby']->getId() == 10) {
            //@see http://doctrine-orm.readthedocs.org/en/latest/reference/dql-doctrine-query-language.html
            $qb->addSelect('MAX(pc.stock_unlimited) as HIDDEN stock_unlimited_max, MAX(pc.stock) as HIDDEN stock_max');
            $qb->innerJoin('p.ProductClasses', 'pc');
            $qb->andWhere('pc.visible = true');
            $qb->groupBy('p.id');
            $qb->orderBy('stock_unlimited_max', 'DESC');
            $qb->addOrderBy('stock_max', 'DESC');
            $qb->addOrderBy('p.id', 'DESC');

        }


規格を使っている場合はちゃんとやろうと思うともっと複雑だと思いますが・・・


----------------
EC-CUBEカスタマイズ・高速化・脆弱性対策・SEO ご相談ください。

2系・3系から4系へのバージョンアップ実績豊富

cro233
投稿日時: 2020/10/7 13:50
対応状況: 解決済
常連
登録日: 2020/1/9
居住地:
投稿: 69
Re: 商品一覧ページでデフォルトの並び順を設定したい
umebius 様
こちらでもご回答ありがとうございます。

ご教示いただいてる手順で問題なく表示することができました。
的確な助言、誠にありがとうございます。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,668名です
総投稿数は109,922件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2311
5
umebius
2085
6
yuh
1819
7
h_tanaka
1637
8
red
1569
9
mcontact
1275
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.