バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

バグ報告 > その他 > 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に向かって行く過程で増えたようです(意味を確認せずにコピペしたな )。旧バージョンでは消費税率の設定が単純だっため、問題にならなかったということでしょう。
フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
 » SC_CartSession::cartSession[$productTypeId][$i]['id']は配列? rinopapa 2015/5/16 3:47
     Re: SC_CartSession::cartSession[$productTypeId][$i]['id']は配列? red 2015/5/16 9:06

 



ログイン


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

統計情報

総メンバー数は89,274名です
総投稿数は110,069件です

投稿数ランキング

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