質問 > フロント機能 > 購入必須商品の設定について |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
K9K9 |
投稿日時: 2017/4/9 16:35
対応状況: 確認中
|
半人前 登録日: 2016/6/2 居住地: 投稿: 12 |
購入必須商品の設定について Versionは3.0.14です。
ショッピングカート内に特定のカテゴリの商品が1以上含まれているかどうかを判断する方法を教えてください。 カテゴリーID=1の商品が入っていないとレジに進むボタンが表示されないようにして、カテゴリーID=1の商品を選んでくださいという表記をする実装を考えています。 |
468 |
投稿日時: 2017/4/9 19:59
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 購入必須商品の設定について カートの中身をループして商品のカテゴリーを判定する方法があるかと思います。
もっと効率的な記述方法はあると思いますが・・・。
|
umebius |
投稿日時: 2017/4/9 20:41
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: 購入必須商品の設定について $Product->getProductCategories()のループの部分、CategoryじゃなくてProductCategoryなのでおそらくこうです。
私もProductCategoryやProductTagでよくやってしまうんですが。 breakはまぁ付けておいて良いかなと思います。
|
468 |
投稿日時: 2017/4/10 9:16
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 購入必須商品の設定について >umebiusさん
1つ処理を飛ばして書いていましたね。 訂正ありがとうございます。
|
K9K9 |
投稿日時: 2017/4/10 21:53
対応状況: 確認中
|
半人前 登録日: 2016/6/2 居住地: 投稿: 12 |
Re: 購入必須商品の設定について ありがとうございます。 あまりよくわかっていないのですが、頂いたコードをどこに書いたらいいのかも分かっておらずご教授頂けると幸いです。引用:
|
Yuya.u |
投稿日時: 2017/4/10 22:26
対応状況: −−−
|
半人前 登録日: 2017/3/6 居住地: 投稿: 24 |
Re: 購入必須商品の設定について カートページで利用したいのであれば
src/Eccube/Controller/CartController.phpのindexメソッド内です。 |
K9K9 |
投稿日時: 2017/4/11 21:49
対応状況: −−−
|
半人前 登録日: 2016/6/2 居住地: 投稿: 12 |
Re: 購入必須商品の設定について ありがとうございます。
flgが trueだったら カテゴリ1商品選択済み Falseだったら カテゴリ1商品未選択 としたら良いのでしょうが、記述がわからず困っています。 |
umebius |
投稿日時: 2017/4/12 1:32
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: 購入必須商品の設定について index内のreturnしている箇所で$flgを渡してください。
twigでcategory_ok_flgを使用してボタンを消せば良いかと思います。
|
K9K9 |
投稿日時: 2017/4/12 22:33
対応状況: 解決済
|
半人前 登録日: 2016/6/2 居住地: 投稿: 12 |
Re: 購入必須商品の設定について 大変助かりました。ありがとうございます。やりたいことは実装できました。 後学の為、修正箇所をまとめます。
Ver3.0.14 インストールディレクトリ/src/Eccube/Controller内にある CartController.php public function 内(88行目付近)に下記追加 //カテゴリの商品がカートにあるか確認する $flg = false; $Cart = $app['eccube.service.cart']->getCart(); foreach ($Cart->getCartItems() as $CartItem) { $ProductClass = $CartItem->getObject(); $Product = $ProductClass ->getProduct(); foreach ($Product->getProductCategories() as $ProductCategory) { if ($ProductCategory->getCategoryId() == 1) { $flg = true; break 2; } } } //ここまで return $app->render( 'Cart/index.twig', array( 'Cart' => $Cart, 'least' => $least, 'quantity' => $quantity, 'is_delivery_free' => $isDeliveryFree, //category_ok_flgを渡すために追加↓ 'category_ok_flg' => $flg, ) ); app/template/テンプレートディレクトリ/Cart/index.twig のレジに進むの箇所を下記に変更 {% if category_ok_flg %} <p id="total_box__next_button" > <a href="{{ path('cart_buystep') }}" class="btn btn-success btn-block">レジに進む</a> </p> <p id="total_box__top_button"> <a href="{{ url('top') }}" class="btn btn-info btn-block">商品を追加する</a> </p> {% else %} <p id="total_box__top_button"> <a href="{{ url('product_list') }}?category_id=1" class="btn btn-info btn-block">カテゴリ1の商品を選んでください</a> </p> {% endif %} これで想定していた通りの動作ができました。 ありがとうございました。 |
umebius |
投稿日時: 2017/4/13 12:56
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: 購入必須商品の設定について 動いたようで良かったです!
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |