質問 > フロント機能 > 会員グループ管理、アドオン管理プラグイン導入後の価格検索について |
フロント機能
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
ksan1002 |
投稿日時: 2022/11/29 16:48
対応状況: −−−
|
新米 登録日: 2022/11/29 居住地: 投稿: 2 |
会員グループ管理、アドオン管理プラグイン導入後の価格検索について ▼テンプレート
[EC-CUBE] 新規インストール 4.0.6 [OS] Windows 10 [PHP] 7.4.32 [データベース] PostgreSQL 11.17 [WEBサーバ] Apache2.4.54 [導入プラグインの有無] 会員グループ管理プラグイン(あずみ.net様) 会員グループ管理::会員グループ価格管理アドオン(あずみ.net様) 他 [現象] 現在、お客様のご要望で以下の機能を実装しようとしております。 1.会員グループにより掛け率を変更したい。 2.特定の商品に関しては会員グループ毎に価格を変更したい。 3.フロントの商品検索にて価格を入力し、商品の絞り込みをしたい 1、2に関しては、上記のプラグインにて対応できました。 3つ目の価格を用いた検索につまづいております。 当コミュニティ、他のサイトを参考にさせていただき、検索のカスタマイズを行い、検索のクエリビルダーの部分にProductClasses.price02 に対して 価格の範囲にてSQLを実行するロジックを実装しました。 該当部分は、 ProductRepositoryのgetQueryBuilderBySearchDataで呼び出されるカスタマイズクラスです。 $builder->join('p.ProductClasses','c_pc'); //price_minのパラメータが設定してあれば、whereを追加 if(isset($params['price_min']) && !empty($params['price_min']) ){ $builder->andWhere("c_pc.price02 >= ".$params['price_min']; } //price_maxのパラメータが設定してあれば、whereを追加 if(isset($params['price_max']) && !empty($params['price_max']) ){ $builder->andWhere("c_pc.price02 <= ".$params['price_max']; } ここで問題が発生しております。 ここでいうprice02が元々の税抜き価格が出力されており、こちらが想定したプラグインで設定した掛け率や、会員別に設定した価格での検索絞り込みができない状況です。 そのため、検索結果の表示上は、プラグインで指定した価格で表示されますが、絞り込みで使用した価格の範囲外のものが表示(または非表示)になっております。 Ec-cubeのログを確認したところ、 ProductControllerの $pagination = $paginator->paginate() にて商品検索が終わった後に、 $ProductsAndClassCategories = $this->productRepository->findProductsWithSortedClassCategories($ids, 'p.id'); の処理内にて、プラグインでの表示価格が決定されているように見えております。 この商品検索を行う段階(SQLによる)で、プラグインが導き出す価格で検索を行う手段はございますでしょうか? 長文になり申し訳ございません。 ご教示いただければ幸いです。 よろしくお願い致します。 |
フラット表示 | 前のトピック | 次のトピック |
題名 | 投稿者 | 日時 |
---|---|---|
» 会員グループ管理、アドオン管理プラグイン導入後の価格検索について | ksan1002 | 2022/11/29 16:48 |
Re: 会員グループ管理、アドオン管理プラグイン導入後の価格検索について | mcontact | 2022/11/29 20:08 |
Re: 会員グループ管理、アドオン管理プラグイン導入後の価格検索について | ksan1002 | 2022/11/30 9:47 |