バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > ポイント計算の関数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
おしゃられている事が、概念として不自然なのは、同意いたします。

その上で、実際の動作として「どういった操作をした場合に」「どういった不都合を生じるか」実例があると話を見通しやすくなるように感じました。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

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 様のご指摘のように、何だか不自然という雰囲気はありますね。単純な変数命名の不適切といった質なのか、ロジックにも誤りが及んでいるのか、分かりませんが・・・

減算するにも、ポイントのレートは、商品によって異なるので、幾分か回りくどい(暗黙的な仕様を含みやすい)実装を行っていそうなのは、察しがつきます。

具体的な不具合があると、話しは早いのですが、難しい部分ですね。(設計書が無いのがイタイ・・・)


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

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 のソース内容では ポイント使用時の割引金額変換率 になっているような・・・)

このフォーラムを「ポイント」で検索しても、この加算ポイントが問題になっているような事が出てこないので
どなたも困っておられないのかなぁ・・・?
と思って質問させていただいた次第です。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

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
1291
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.