> フロント機能 > お支払方法のラジオボックスを金額に応じて表示させたい |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
ammori |
投稿日時: 2015/11/5 12:06
対応状況: −−−
|
新米 登録日: 2015/11/5 居住地: 投稿: 2 |
お支払方法のラジオボックスを金額に応じて表示させたい お世話になります。
この度バージョン2からバージョン3に変更しようと導入を目指しております。 【サーバー】さくらインターネット スタンダード 【データベース】MySQL 5.5 【PHP】PHP 5.4 【EC-CUBE】3.0.5 「ご注文内容のご確認」-「お支払方法」で代金引換の手数料を購入額に応じて変更したいです。 バージョン2では管理画面の「基本情報管理」-「支払方法設定」で 利用条件を「0円-9999円」手数料を「324円」 利用条件を「10000円-無制限」手数料を「0円」 とすると購入額に応じてどちらかのラジオボックスが表示されていました。 バージョン3.0.5を新規にインストールし、同様に 利用条件を「0円-9999円」」手数料を「324円」 利用条件を「10000円-無制限」手数料を「0円」 とし、「配送方法設定」-「支払方法設定」のチェックボックスにチェックを入れました。 すると「ご注文内容のご確認」-「お支払方法」に小計10,000円以上の場合でも、小計10,000円未満の場合でも2つのラジオボックスが表示されてしまいます。 「利用条件」の金額に連動していません。 小計10,000円以上の場合でも手数料324円が加算されます。 どこか設定を見落としているのでしょうか? ご助言をお願いいたします。 |
karin |
投稿日時: 2015/11/6 11:25
対応状況: −−−
|
仙人 登録日: 2008/9/15 居住地: 東京都 投稿: 689 |
Re: お支払方法のラジオボックスを金額に応じて表示させたい 現象確認しました。
現状: ショップマスター > 送料設定 > 複数配送を有効にするが有効 かつ カート内に複数の商品種別の商品が入っている 場合にのみ、支払い方法設定の利用条件が考慮される。 上記以外の場合、利用条件で設定した金額(上限/下限)は無視されてしまいますね...。 複数配送先が無い場合も src/Eccube/Service/ShopingService.php のgetFormPaymentsで 利用条件に合致する支払い方法のみ表示させるべきだと思うのですがいかがでしょうか?
|
tacky |
投稿日時: 2015/11/6 11:55
対応状況: −−−
|
長老 登録日: 2015/10/3 居住地: Tokyo 投稿: 277 |
Re: お支払方法のラジオボックスを金額に応じて表示させたい src/Eccube/Service/ShopingService.php のgetFormPaymentsの974行目で$paymentsを取得した後に、
$payments = $this->getPayments($payments, $Order->getSubTotal()); でお支払い方法を取得すればひとまず表題の件は解決しますが、他にどのような影響があるか不明です。。。 |
ammori |
投稿日時: 2015/11/7 13:09
対応状況: 解決済
|
新米 登録日: 2015/11/5 居住地: 投稿: 2 |
Re: お支払方法のラジオボックスを金額に応じて表示させたい karin様、tacky様
ご助言くださりありがとうございます。 ショップマスター > 送料設定 > 複数配送を有効にするが有効 かつ カート内に複数の商品種別の商品が入っている こちらの再現ができました。 希望通りラジオボックスは1つだけ表示されます。 // 複数配送時の支払方法 $payments = $this->app['eccube.repository.payment']->findAllowedPayments($deliveries); $payments = $this->getPayments($payments, $Order->getSubTotal()); この部分の $payments = $this->getPayments($payments, $Order->getSubTotal()); を削除すると「複数配送を有効」かつ「カート内に複数の商品種別の商品が入っている」場合でも ラジオボックスが複数表示されることが分かりました。 tacky様のご助言通り $payments = $this->getPayments($payments, $Order->getSubTotal()); を「// 配送業者をセット」の箇所に追加することでラジオボックスは1つだけの表示になりました。 // 配送業者をセット $shippings = $Order->getShippings(); $Shipping = $shippings[0]; $payments = $this->app['eccube.repository.payment']->findPayments($Shipping->getDelivery()); $payments = $this->getPayments($payments, $Order->getSubTotal()); いくつかテストしてみましたが不具合は出ておりませんので構築を進めて参ります。 ありがとうございました! |
esty |
投稿日時: 2015/11/25 18:48
対応状況: −−−
|
新米 登録日: 2015/11/25 居住地: 投稿: 3 |
Re: お支払方法のラジオボックスを金額に応じて表示させたい はじめまして。
3.0.6に更新したところ、金額に関係なく全ての支払い方法が表示されるようになってしまったのですが、ご確認頂けますでしょうか? |
nanasess |
投稿日時: 2015/11/26 9:38
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2303 |
Re: お支払方法のラジオボックスを金額に応じて表示させたい ShoppingService.php の 946行目付近に、以下を追加するで問題ないと思います。
issue を登録しておきました。 https://github.com/EC-CUBE/ec-cube/issues/1238 |
esty |
投稿日時: 2015/11/30 21:04
対応状況: −−−
|
新米 登録日: 2015/11/25 居住地: 投稿: 3 |
Re: お支払方法のラジオボックスを金額に応じて表示させたい nanasessさま
3.0.6のお知らせ頂いた場所(947行目)には既に同様の式が入っていましたが、 これを954行目(複数配送で無い場合)にも追加することで解決しました。 ヒントを頂きとても助かりました! ありがとうございました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |