バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

 > フロント機能 > EC CUBE3.0 代金引換の計算について

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
madoka
投稿日時: 2016/2/15 11:53
対応状況: −−−
半人前
登録日: 2016/2/15
居住地:
投稿: 23
EC CUBE3.0 代金引換の計算について
はじめまして、EC CUBE初心者です。
連投で申し訳ないのですが、
代引きでの計算方法についても教えてほしいです。
決済方法で
315 円 1円 〜 9,999円
432 円 10,000円 〜 29,999円
と設定した場合、
デフォルトでは 商品価格が 9800円だった場合
9800円+代引324円+送料1000円=合計11124円となります。
この計算では困るので、送料の含まれた額で代引き手数料を計算したいのですが...
9800円+送料1000円=10800円だから(代引432円)
9800円+代引432円+送料1000円=合計11232円としたいのですが、
どうすれば良いでしょうか?
解決方法のご教授お願い致します。
shhirose
投稿日時: 2016/2/15 19:22
対応状況: −−−
一人前
登録日: 2014/4/24
居住地:
投稿: 94
Re: EC CUBE3.0 代金引換の計算について
src/Eccube/Service/ShoppingService.php の getFormPayments という関数で設定されています。

この関数で
引用:

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


と記載されている部分があると思いますので、送料を加算してあげれば良いかと思います。

$payments = $this->getPayments($payments, $Order->getSubTotal() + $Order->getDeliveryFeeTotal());
madoka
投稿日時: 2016/2/15 19:44
対応状況: −−−
半人前
登録日: 2016/2/15
居住地:
投稿: 23
Re: EC CUBE3.0 代金引換の計算について
ありがとうございます!
早速やってみました!無事思ったように計算されるようになりました!

ですが、私の説明が間違えていたのですが、
代引手数料も足した計算にしたいのです...
これも同じように追加して
$payments = $this->getPayments($payments, $Order->getSubTotal() + $Order->getPayment() + $Order->getDeliveryFeeTotal());
とすれば良いのかな?と簡単に考えてやってみましたが、うまくいきませんでした...
もう一度、ご教授願えませんでしょうか。お願い致します。
madoka
投稿日時: 2016/2/15 20:37
対応状況: −−−
半人前
登録日: 2016/2/15
居住地:
投稿: 23
Re: EC CUBE3.0 代金引換の計算について
ど素人なので、めちゃくちゃ無理矢理な感じで書いてます。
一応これで思ったように計算できていますが...
何かもっと良い方法はありますでしょうか?


$paychecks = $Order->getSubTotal() + $Order->getDeliveryFeeTotal();

if ($paychecks <= 9675) {
  $payments = $this->getPayments($payments, $Order->getSubTotal() + 324 + $Order->getDeliveryFeeTotal());
} else if ($paychecks <= 29567) {
  $payments = $this->getPayments($payments, $Order->getSubTotal() + 432 + $Order->getDeliveryFeeTotal());
} else if ($paychecks <= 99351) {
  $payments = $this->getPayments($payments, $Order->getSubTotal() + 648 + $Order->getDeliveryFeeTotal());
} else if ($paychecks <= 298920) {
  $payments = $this->getPayments($payments, $Order->getSubTotal() + 1080 + $Order->getDeliveryFeeTotal());
}

shhirose
投稿日時: 2016/2/15 22:12
対応状況: −−−
一人前
登録日: 2014/4/24
居住地:
投稿: 94
Re: EC CUBE3.0 代金引換の計算について
ちょっと無理やりすぎですね(^_^;)

getFormPayments 関数で以下の修正をして、

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


getPayments メソッドを以下のようにしてはどうでしょうか。

$pays = array();
foreach ($payments as $payment) {
    // 支払方法の制限値内であれば表示
    if (!is_null($payment)) {
        $pay = $this->app['eccube.repository.payment']->find($payment['id']);
        $totalPrice = $subTotal + $pay->getCharge();
        if (intval($pay->getRuleMin()) <= $totalPrice) {
            if (is_null($pay->getRuleMax()) || $pay->getRuleMax() >= $totalPrice) {
                $pays[] = $pay;
            }
        }
    }
}

return $pays;



getPayments のコードの修正をせずに、最大金額を 0円 〜 9,684円 (9,999円 - 315円)までにするでも同じようになりませんかね?
※手数料を加算して 9,999円 までは 315円 の手数料
madoka
投稿日時: 2016/2/15 22:24
対応状況: −−−
半人前
登録日: 2016/2/15
居住地:
投稿: 23
Re: EC CUBE3.0 代金引換の計算について
ありがとうございます!!
バッチリ動作しました!
今回のコードは大変勉強になりました。
もっと色々できるように勉強します。

確かに、よくよく考えれば最大金額を 0円 〜 9,684円 (9,999円 - 315円)までにする方法でも良かったですね...
コードに執着してしまっていて気が回りませんでした(^^;
本当にありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1570
9
mcontact
1285
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.