バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

 > フロント機能 > お支払方法のラジオボックスを金額に応じて表示させたい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
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行目付近に、以下を追加するで問題ないと思います。


$payments = $this->getPayments($payments, $Order->getSubTotal());


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行目(複数配送で無い場合)にも追加することで解決しました。

ヒントを頂きとても助かりました!
ありがとうございました。


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


 



ログイン


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

統計情報

総メンバー数は88,297名です
総投稿数は109,692件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
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.