バージョン選択

フォーラム

メニュー

オンライン状況

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

PR

先着1,000社 プラグインダウンロード&お申込で1,000円分Amazonギフト券プレゼント amazon pay
広告掲載について

サイト内検索

質問 > フロント機能 > カートボタンを作成してエラー処理を追加したい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
h_tanaka
投稿日時: 2018/2/5 10:57
対応状況: 解決済
仙人
登録日: 2016/7/22
居住地: 愛媛県
投稿: 519
カートボタンを作成してエラー処理を追加したい
EC-CUBE3.0.15

独自ページにカートボタンを追加したいと思い、次のページを参考に実装しました。
https://www.ec-cube.net/tsubo/2017/08/02/7149

しかし、エラーケースのときの動作まで考慮されていないようで、たとえば商品種別がカート内の商品と異なる場合に実際にはカートへの追加は失敗しているのですが、例外をスローしていないためajaxではdone()の処理に入ってしまいます。

src/Eccube/Controller/CartController.php にて、ログに「カート追加エラー」が吐かれていることは確認しました。

ajaxの呼び元でカート追加エラーを認知するにはどうすればよいでしょうか?


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

468
投稿日時: 2018/2/6 18:55
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 1144
Re: カートボタンを作成してエラー処理を追加したい
実際にエラー時の通信を確認していませんが、レスポンスコードは500で返っていないでしょうか?

}).fail(function (data) {
    alert('カートの追加に失敗しました。');
});

エラー時は、ここの処理に入ってくるのではないでしょうか?


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

h_tanaka
投稿日時: 2018/2/7 8:46
対応状況: −−−
仙人
登録日: 2016/7/22
居住地: 愛媛県
投稿: 519
Re: カートボタンを作成してエラー処理を追加したい
468さん

そうなんですけど、src/Eccube/Controller/CartController.php 側でエラー時は例外を投げることなく正常にレスポンスを返しているみたいなんです。


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

h_tanaka
投稿日時: 2018/2/7 9:06
対応状況: −−−
仙人
登録日: 2016/7/22
居住地: 愛媛県
投稿: 519
Re: カートボタンを作成してエラー処理を追加したい
src/Eccube/Controller/CartController.php が他にどこからも呼ばれていないようでしたので、例外を投げるようカスタマイズすることで解決しました。

src/Eccube/Controller/CartController.php (147行目)
        } catch (CartException $e) {

            log_info('カート追加エラー', array($e->getMessage()));

            // FRONT_CART_ADD_EXCEPTION
            $event = new EventArgs(
                array(
                    'exception' => $e,
                ),
                $request
            );
            $app['eccube.event.dispatcher']->dispatch(EccubeEvents::FRONT_CART_ADD_EXCEPTION, $event);

            throw $e;    // ★ 例外を投げる
            // if ($event->hasResponse()) {
            //     return $event->getResponse();
            // }
            //
            // $app->addRequestError($e->getMessage());
        }


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

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

統計情報

総メンバー数は29,843名です
総投稿数は87,055件です

投稿数ランキング

1
seasoft
7331
2
AMUAMU
2712
3
nanasess
1754
4
yuh
1504
5
red
1171
6
468
1144
7
umebius
1007
8
fukap
907
9
shutta
827
10
tsuji
815
11 ramrun 789
12
tao_s
651
13 karin 650
14 sumida 641
15
homan
633
16 DELIGHT 571
17
h_tanaka
519
18
patapata
502
19
flealog
483
20 tonton 436


ネットショップの壺

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

Copyright© LOCKON CO.,LTD. All Rights Reserved.