質問 > フロント機能 > ポイント計算の関数sfGetAddPoint |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
seike |
投稿日時: 2013/7/6 9:05
対応状況: −−−
|
常連 登録日: 2012/7/19 居住地: 投稿: 46 |
ポイント計算の関数sfGetAddPoint SC_CartSession.phpにある カート内容を計算する関数 function calculate の中の加算ポイントを計算する部分で質問があります。
よろしくお願いします。 658行目当たりに $results['add_point'] = SC_Helper_DB_Ex::sfGetAddPoint($total_point, $use_point)という式があります。 ここで呼び出しているSC_Utils_Ex::sfGetAddPointが何を計算しているのか・・・がわかりません。 SC_Utils_Ex::sfGetAddPointのコメントに 「購入商品の合計ポイントから利用したポイントのポイント換算価値を引く方式」とあり $add_point = $totalpoint - intval($use_point * ($point_rate / 100)) という計算式があります。 利用したポイントのポイント換算価値とは$use_point * ($point_rate / 100)のことだと思いますが なぜ、「加算ポイント」を計算するのに「利用したポイントのポイント換算価値」を引き算すのでしょうか・・・? そもそも、「利用したポイントのポイント換算価値」が何なのかがわかりません。 普通に考えたら、「利用したポイントのポイント換算価値」の値は「円」になると思うのですが・・・ たとえば、利用したポイントが100ポイントで、ポイント換算価値が「2円/1ポイントあたり」の場合 「利用したポイントのポイント換算価値」は 200 * 2 = 200円 というように・・・。 ポイントと円の混在した式になり、おかしいのでは・・・? 以上、よろしくお願いします。 [EC-CUBE] 2.12.2 新規インストール [レンタルサーバ] 自前サーバー [OS] Debian 6.0.1 Linux [PHP] 5.3.3-7+squeeze [データベース] MySQL 5.1.49-3 [WEBサーバ] Apache2 2.2.16 [ブラウザ] FireFox 15.0 |
seasoft |
投稿日時: 2013/7/6 11:33
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: ポイント計算の関数sfGetAddPoint おしゃられている事が、概念として不自然なのは、同意いたします。
その上で、実際の動作として「どういった操作をした場合に」「どういった不都合を生じるか」実例があると話を見通しやすくなるように感じました。
|
seike |
投稿日時: 2013/7/7 12:30
対応状況: −−−
|
常連 登録日: 2012/7/19 居住地: 投稿: 46 |
Re: ポイント計算の関数sfGetAddPoint 特に不都合が生じている訳ではありません。
現在、付与ポイントの仕組みを変更しています。 変更内容は (1)カゴの中の小計金額に対して5%のポイントを付与する。 (2)支払い方法によりインセンティブを与えるため7%に増やす。 というような仕組みに改修しようとしています。 「ご入力のご確認」 画面のポイント関連の表示で 「今回加算予定のポイント」 の所に sfGetAddPoint が使われているのですが この 「今回加算予定のポイント」 には 「ご使用ポイント」 が減算されているのかどうかが、 プログラムソース(SC_CartSession.phpのcalculateやsfGetAddPointなど)を追っていても はっきりしないので質問した次第です。 |
seasoft |
投稿日時: 2013/7/8 6:23
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: ポイント計算の関数sfGetAddPoint 随分前ですが、当該実装を査読した際の印象としては「減算されている」という認識でした。
しかし、seike 様のご指摘のように、何だか不自然という雰囲気はありますね。単純な変数命名の不適切といった質なのか、ロジックにも誤りが及んでいるのか、分かりませんが・・・ 減算するにも、ポイントのレートは、商品によって異なるので、幾分か回りくどい(暗黙的な仕様を含みやすい)実装を行っていそうなのは、察しがつきます。 具体的な不具合があると、話しは早いのですが、難しい部分ですね。(設計書が無いのがイタイ・・・)
|
seike |
投稿日時: 2013/7/8 8:39
対応状況: −−−
|
常連 登録日: 2012/7/19 居住地: 投稿: 46 |
Re: ポイント計算の関数sfGetAddPoint 現在の改修では、
管理機能->基本情報管理->ポイント設定 でポイント付与率(初期値)= 0 に設定しているので、 sfGetAddPoint の point_rate は 0 になり、改修しているプログラムでは不具合は起こっていません。 そのかわりとして、管理機能->システム設定->パラメーター設定 で DEFAULT_POINT_RATE= 5 (%) を新規に追加して、 このDEFAULT_POINT_RATEを使って加算ポイントを計算しています。 EC-CUBE公式完全ガイド[ver 2.12/2.11対応](翔泳社)の116ページの 基本情報管理->ポイント設定の説明に、 「商品購入時に付与するポイントの付与率」 と記述してあり、 この記述と sfGetAddPoint の内容とが合わないように思っています。 (sfGetAddPoint のソース内容では ポイント使用時の割引金額変換率 になっているような・・・) このフォーラムを「ポイント」で検索しても、この加算ポイントが問題になっているような事が出てこないので どなたも困っておられないのかなぁ・・・? と思って質問させていただいた次第です。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |