バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

バグ報告 > その他 > SC_CartSession::cartSession[$productTypeId][$i]['id']は配列?

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
rinopapa
投稿日時: 2015/5/16 3:47
対応状況: −−−
新米
登録日: 2015/5/16
居住地:
投稿: 2
SC_CartSession::cartSession[$productTypeId][$i]['id']は配列?
始めて投稿します。

EC-Cubeは2.4の頃からカスタマイズを行ってきました。今日2.13.3でカート周りをカスタマイズしていて、おかしなコードに気付いたのでどなたか確認していただけますでしょうか。

最初に商品がカートセッションに追加される時、addProduct()の中(265行目)で
$this->cartSession[$productTypeId][$max+1]['id'] = $product_class_id;
となっています。コメントに引数の説明がありませんが(手抜きはいかんね )単一の数値と思われます。DBから取ってきて文字列として渡していたとしても、カートセッションのIDが配列である可能性はないでしょう。

ところが、下記の3か所では配列であるかのような記述になっています。

1) getAllProductsPoint()の中 ※236〜237行目
2) setCartSession4getCartList()の中 ※377行目
3) checkProducts()の中 ※644行目

1)と2)は実質的に無害だと思いますが、3)は消費税率設定情報の取得に必要なパラメータであり、商品別税率機能がONになっている場合に計算間違いを起こす可能性があります。sfCalcIncTax()に$product_class_idとして['id'][0]を渡していますが、['id']はDBから取ってきた文字列がセットされているため、例えば$product_class_idが20〜29なら「2」が渡されてしまうのではと憂いています。

これまでは気にならなかったのですが、調べてみると2.11の時点ですでにgetAllProductsPoint()の中に入っていて、2.13.3に向かって行く過程で増えたようです(意味を確認せずにコピペしたな )。旧バージョンでは消費税率の設定が単純だっため、問題にならなかったということでしょう。
red
投稿日時: 2015/5/16 9:06
対応状況: −−−
登録日: 2010/2/15
居住地: 東京都
投稿: 1570
Re: SC_CartSession::cartSession[$productTypeId][$i]['id']は配列?
昔は id は配列でした。 確か、商品id , 規格1, 規格2 とかです
なのでその名残が残っていて、、という感じでしょう

だれでもコミットできますのでぜひ修正を〜
https://github.com/EC-CUBE/eccube-2_13


----------------
EC-CUBEのカスタマイズ、トラブル解決承ります
お気軽にお問い合わせ下さい
https://www.ec-cube.net/integrate/partner/partner.php?partner_id=690

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


 



ログイン


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

統計情報

総メンバー数は88,894名です
総投稿数は110,002件です

投稿数ランキング

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