バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 商品検索の表示順を複数条件で検索したいです

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
nmkbc
投稿日時: 2020/5/19 17:07
対応状況: −−−
新米
登録日: 2020/5/19
居住地:
投稿: 2
商品検索の表示順を複数条件で検索したいです
▼テンプレート
[EC-CUBE]2.13系
[OS]windows8.1
[PHP]7.3.8
[データベース]MySQL
[ブラウザ]GoogleChrome
[カスタマイズの有無]全体的に手を入れている

現在、「メーカーID順且つ価格が安い順」でソートできるような機能を実装したいと思っておりますが、「data/class/pages/products/LC_Page_Products_List.php」の中の表示順序のswitch文のcaseの中に、
$objProduct->setProductsOrder('T2.maker_id, T1.price02', 'dtb_products_class AS T1 JOIN dtb_products', 'ASC');
と追記し、SC_Products.phpのfindProductIdsOrderを動くように整えても「Operand should contain 1 column(s)」が出てきてしまい、うまくいきません。

何とかして「SELECT dtb_products.maker_id, dtb_products_class.price02, dtb_products.name FROM dtb_products INNER JOIN dtb_products_class ON dtb_products.product_id = dtb_products_class.product_id order by maker_id, price02;」で得られるような順番で検索結果を得たいのですが、どうすればよろしいでしょうか。
468
投稿日時: 2020/5/19 18:48
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 2302
Re: 商品検索の表示順を複数条件で検索したいです
表示順序分岐の為のcaseを追加されている感じでしょうか?

利用しようとされている
/data/class/SC_Product.phpのfunction setProductsOrder()は確認されましたでしょうか?
SC_Product.phpの処理を追って、組みあがるSQLを確認すると
第1引数の並び替え基準のフィールドは1つしか処理できないようです。

並び順を変更するのであればdefault:のパターンにあるように
$objQuery->setOrder()
を利用する形になるかと思います。

そこまでソースを読んでいませんが
組みあがるSQLを見る限りでは
maker_idはそのまま指定できそうですが、販売価格についてはサブクエリを使う必要がありそうですので
SC_Product.php function findProductIdsOrder()の中を参考に$objQuery->setOrder()へ渡す値を組み立てみては如何でしょうか?
function findProductIdsOrder()は
$objQuery->setOrder("($sub_sql) $o_order, product_id");
を組み立てていますが、
ご要望のパターンは$objQuery->setOrder("maker_id ASC,($sub_sql) ASC");を組み立てるようにする必要があると思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

nmkbc
投稿日時: 2020/5/20 10:26
対応状況: 解決済
新米
登録日: 2020/5/19
居住地:
投稿: 2
Re: 商品検索の表示順を複数条件で検索したいです
仰る通りdefaultのパターンを参考にしたら、
思った通りの挙動になりました。ありがとうございます!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は62,321名です
総投稿数は96,271件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
468
2302
4
nanasess
2044
5
yuh
1612
6
umebius
1588
7
red
1403
8
h_tanaka
1010
9
fukap
907
10
tsuji
863
11
shutta
835
12
tao_s
792
13 ramrun 789
14 karin 656
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

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

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