バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > カートページから商品をお気に入り登録できるようにしたい。

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
anonim
投稿日時: 2023/10/3 15:52
対応状況: 開発中
半人前
登録日: 2023/9/5
居住地:
投稿: 23
カートページから商品をお気に入り登録できるようにしたい。
[EC-CUBE]4.1.0

表題の通り、カート画面からお気に入り登録をできるようにしたいと考えています。

お気に入り登録機能を持つProductController.phpを参考に、CartController.phpを以下のように変更しています。

・indexメソッド内にis_favoritを追加して商品ごとに既にお気に入り登録されているのか確認する。
・productController.phpのcheckVisibilityメソッド及びaddFavoriteメソッドを追加して、商品の表示/非表示の判断およびお気に入り登録を可能にする。
・cart/index.twigにお気に入りボタンのテンプレートを追加する。

これらの変更でお気に入りボタンの設置及びお気に入り登録を基本的にできるようになったのですが、カート画面内で一番上に表示されている商品のみ、以下のエラーが出ます。/cartに対してpost送信をしている部分はないと思うのですが…

No route found for "POST /cart": Method Not Allowed (Allow: GET)

なお、一番上以外の商品については問題なく登録で来ています。

何かご存じの方がいらっしゃいましたら、ご教授のほどお願いします。
mcontact
投稿日時: 2023/10/3 16:56
対応状況: −−−
登録日: 2022/1/22
居住地:
投稿: 1364
Re: カートページから商品をお気に入り登録できるようにしたい。
> No route found for "POST /cart": Method Not Allowed (Allow: GET)
エラー内容をよく読みましょう。
許可されているFormメソッドは、GETのみ許可されています。
POSTは許可されていませんと言っています。


----------------
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
EC-CUBEインテグレートパートナー【ゴールド】ランク
M&I Works
URL: https://miworks.biz/
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

h_tanaka
投稿日時: 2023/10/3 17:01
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1693
Re: カートページから商品をお気に入り登録できるようにしたい。
Controller の Route アノテーションにて methods={"GET"} で定義しているURLに POST 送信を行おうとするとそのようなエラーになります。
type="submit" で定義しているボタンを押しているか、ボタンを押したときに javascript で submit() を行っているか、していないでしょうか。


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

anonim
投稿日時: 2023/10/4 10:57
対応状況: −−−
半人前
登録日: 2023/9/5
居住地:
投稿: 23
Re: カートページから商品をお気に入り登録できるようにしたい。
ご回答いただきありがとうございます。

post送信しているため、このようなエラーが発生していることはすでに認識しております。
私の質問の意図としましては
・なぜpostで送信されてしまうのか。
・なぜ一番上に表示される商品のみpostなのか。
の2点でした。言葉足らずで申し訳ございません。

また、/cartへ遷移するのは画面上に表示されるボタンではなく、productController内のaddFavoriteメッソド借りてきた以下のリダイレクトとしています。

return $this->redirectToRoute('cart');


重ねて説明不足をお詫び申し上げます。
よろしくお願いします。
h_tanaka
投稿日時: 2023/10/4 11:00
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1693
Re: カートページから商品をお気に入り登録できるようにしたい。
一番上に表示される商品の場合も productController 内の addFavorite が実行されていることを確認していますか?


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

anonim
投稿日時: 2023/10/4 14:04
対応状況: −−−
半人前
登録日: 2023/9/5
居住地:
投稿: 23
Re: カートページから商品をお気に入り登録できるようにしたい。
確認したところ、addFavoriteが実行できていなかったようです。

app/template/default/Cart/index.twigに以下のようにお気に入りボタンを設置しているのですが、開発者ツールで確認したところ、どうやら一番上の商品についてのみformタグが設定されなくなってしまっているようです。

<li>
{% if BaseInfo.option_favorite_product %}
<form action="{{ url('product_add_favorite', {id:Product.id}) }}" method="post">
<div class="ec-productRole__btn">
{% if Product.id not in is_favorite_products %}
<button type="submit" id="favorite" class="ec-blockBtn--cancel">{{ 'お気に入りに追加'|trans }}</button>
{% else %}
<button type="submit" id="favorite" class="ec-blockBtn--cancel" disabled="disabled">{{ 'お気に入りに追加済です。'|trans }}</button>
{% endif %}
</div>
</form>
{% endif %}
</li>


また、javaScriptを使用できないようにしても全く同様の動作・エラーでしたので、js以外に問題があるかと思います。
h_tanaka
投稿日時: 2023/10/4 14:12
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1693
Re: カートページから商品をお気に入り登録できるようにしたい。
いただいている情報のみでは判断がつきません。
Twig ファイルにて {{ dump(BaseInfo.option_favorite_product) }} のようにすれば値を出力できるので、デバッグしてみてください。


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

anonim
投稿日時: 2023/10/17 11:10
対応状況: 解決済
半人前
登録日: 2023/9/5
居住地:
投稿: 23
Re: カートページから商品をお気に入り登録できるようにしたい。
formがネストになっているために起こった現象だったようです。
ご回答いただいた皆様、誠に有難うございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は90,363名です
総投稿数は110,374件です

投稿数ランキング

1
seasoft
7369
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1693
8
red
1571
9
mcontact
1364
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.