質問 > フロント機能 > 商品購入画面の支払方法と配送方法の連動 |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
yukkie |
投稿日時: 2020/4/27 11:19
対応状況: 開発中
|
半人前 登録日: 2017/11/14 居住地: 投稿: 24 |
商品購入画面の支払方法と配送方法の連動 ▼テンプレート
[EC-CUBE]3.0.16 商品種別Aに対し 支払方法に支払A,支払Bを設定 配送方法に配送A,配送Bを設定 配送Aは支払Aにチェック、配送Bは支払Bにチェックを入れています。 商品は全て商品種別Aになります。 この状態で購入画面に進むと 配送方法は配送Aが選択されたセレクトボックス 支払方法は支払Aのみが表示されたチェックボックスになります。 そして配送方法のセレクトボックスで配送Bを選択すると、支払方法は支払Aのままで「入力されていません」とエラーが表示されます。 その後支払方法の支払Aが表示されたチェックボックスをONにすると、表示が支払Bに変更されます。 できれば配送方法を配送Bにした段階で支払方法も支払Bに連動して動かしたい(逆も同じ)のですが、どこをカスタマイズしたらよいのかよく分かりませんでした・・・。 こういったカスタマイズは可能でしょうか。 何かヒントだけでもいただけると助かります。 宜しくお願い致します。 |
468 |
投稿日時: 2020/4/27 11:51
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 商品購入画面の支払方法と配送方法の連動 私はそのパターンは解決する事が出来ませんでした。
入力エラーが発生する理由は投稿いただいた通り、 配送方法変更時にページをリロードする為の通信時に 支払方法が入力チェックに引っかかってしまうからという事になります。 /src/Eccube/Controller/ShoppingController.phpのfunction delivery()が 該当処理の記述なのですが リロードのリクエストを受け取った後、 $builder = $app['eccube.service.shopping']->getShippingFormBuilder($Order); で入力フォームの支払方法(選択した配送Bに基づいて)を組み立てた後に 以下の箇所で入力チェックを行っており、 if ($form->isSubmitted() && $form->isValid()) { 支払方法の選択肢に存在しない値(支払A)がリクエストのPOSTにセットされている為、 入力値エラーという判定になっています。 ここの入力値エラーを外せば問題は起きなくなりますが、 予期せぬ値を受け取るようになっても怖いと思い、結局、そのままとしました。 画面全体をリロードせずにjavascriptで支払方法だけ部分更新させるようなカスタマイズは可能かと思いますが その時は予算的にその対応は不要という結論になりました。 何か良い方法があれば、私も知りたいところです。
|
yukkie |
投稿日時: 2020/4/27 13:10
対応状況: −−−
|
半人前 登録日: 2017/11/14 居住地: 投稿: 24 |
Re: 商品購入画面の支払方法と配送方法の連動 ご返信ありがとうございます!
そうでしたか・・・。 そうするとこの動き(配送方法と支払方法の連動)はEC-CUBE3の仕様になるということなのでしょうか。 javascriptで支払方法だけ部分更新させるようなカスタマイズをやるかは、確かに悩ましいですね、 |
468 |
投稿日時: 2020/4/27 14:23
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 商品購入画面の支払方法と配送方法の連動 もしかしたら
$form->handleRequest($request); より前にリクエストで渡された値から配送方法を判定して リクエストの支払方法を支払A→支払Bに置き換える方法でも対応できるかもしれません。 リクエストの値を書き換えるという事が function delivery()内で出来るかどうかは分かりませんが...
|
yukkie |
投稿日時: 2020/4/27 16:13
対応状況: −−−
|
半人前 登録日: 2017/11/14 居住地: 投稿: 24 |
Re: 商品購入画面の支払方法と配送方法の連動 ご返信ありがとうございます!
なるほど・・・。なかなか厳しそうですね。 でももう少し調査、検証してみます。 情報ありがとうございます。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |