質問 > フロント機能 > 検索項目に在庫あり商品のみを検索するチェックボックスを追加したい |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
ゲスト |
投稿日時: 2017/12/18 18:57
対応状況: 解決済
|
検索項目に在庫あり商品のみを検索するチェックボックスを追加したい [EC-CUBE] 3.0.15
[PHP] 7.1.2 [データベース] PostgreSQL 9.6.6 はじめまして。初めてEC-CUBE3開発の世界に足を踏み入れたばかりの初心者です。umebius様の投稿を参考に商品項目を追加し、その項目で検索できるようにまではカスタマイズできました。ありがとうございます。 現在、フロント画面の検索項目にチェックボックスを加え、チェックを入れて検索した場合は検索結果に在庫あり商品のみを表示させたくトライしていますが、うまく行きません。どなたかご教示いただけませんでしょうか。 やったこととしては、 1. src/Eccube/Form/Type/SearchProductBlockType.php とsrc/Eccube/Form/Type/SearchProductType.php のfunction buildForm(FormBuilderInterfaceに↓を追加
2. src/Eccube/Resource/template/default/Block/search_product.twig のbuttonの前に
を追加 までで、 3. src/Eccube/Repository/ProductRepository.php の、getQueryBuilderBySearchData($searchData)の部分だと思いますが、最も大事な検索ロジックをどのように書くべきかわからず、つまずいています。 該当商品の規格別の在庫を調べて、1つでも在庫がある場合は在庫あり商品として表示させたいのですが、2日くらいトライしていますが、解決できず・・・どなたかヘルプいただけませんでしょうか。 |
|
umebius |
投稿日時: 2017/12/19 19:59
対応状況: −−−
|
神 ![]() ![]() 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: 検索項目に在庫あり商品のみを検索するチェックボックスを追加したい Admin/AdminControllerのcountNonStockProductsで
在庫なし商品の数をカウントしていますが、参考になるのではないでしょうか。
|
ゲスト |
投稿日時: 2017/12/23 12:19
対応状況: −−−
|
Re: 検索項目に在庫あり商品のみを検索するチェックボックスを追加したい umebius様
ご返信ありがとうございます!umebius様の記事やこちらへの投稿をいつも参考にさせてもらっています。 その後まだ解決できずにおります。そもそも SearchProductBlockType.phpとSearchProductType.phpに記載していた内容がおかしかったのか、そもそもフォームが正常に表示されなかったので下記のように直しました。
また、ProductRepository.phpの方はQureyBuilderに使う条件は後で考えるとして、試しに
このように適当に設定してみたのですが、product_idが3や4の商品も検索結果に表示されてしまうので、そもそもうまく動作していないようです...。 ご教示いただきました在庫なし商品数のカウントの件、ありがとうございます! stock_statusが既に定義されているようですので、$qbの条件にはこちらを使えないか試してみたいと思います。 |
|
ゲスト |
投稿日時: 2017/12/25 16:05
対応状況: −−−
|
Re: 検索項目に在庫あり商品のみを検索するチェックボックスを追加したい 自己解決できましたので報告させていただきます。
最初の投稿や2件目の投稿で誤っている事を記載してしまっていましたのでお恥ずかしい限りです。 1. src/Eccube/Form/Type/SearchProductBlockType.phpのfunction buildForm(FormBuilderInterfaceに↓を追加
2. src/Eccube/Form/Type/SearchProductType.phpのfunction buildForm(FormBuilderInterfaceに↓を追加
1.との違いは'expanded' => true,をコメントアウトしている点です。こちらをコメントアウトしないと、検索後に並び替えや表示件数の変更を行うと検索条件が維持されず、在庫のない商品も表示されてしまいます。 3. src/Eccube/Resource/template/default/Block/search_product.twig のbuttonの前に↓を追加
これでフォームが表示されるようになりました。 4. src/Eccube/Repository/ProductRepository.php の、public function getQueryBuilderBySearchData($searchData) の中に↓を追加
です。 できてみるとなんでこんなことに何日も頭を悩ませたんだろうかと思います。umebius様、コメントありがとうございました。おかげ様でEC-CUBEの理解が更に深まりました。今後ともよろしくお願いいたします。 |
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |