バグ報告 > その他 > 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
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |