バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 100ポイントで1000円分のお買い物券

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
nao716
投稿日時: 2012/3/7 20:37
対応状況: −−−
半人前
登録日: 2012/2/14
居住地:
投稿: 30
100ポイントで1000円分のお買い物券
EC-CUBEバージョン 2.11.4
PHPバージョン PHP 5.2.17
DBバージョン MySQL 5.5.13

ポイントの使いかたですが、
ポイント100ポイントで1,000円として使用できるようにしたいのですが、どうすればできますでしょうか?

90ポイン溜まっていても使用できないし、130ポイント溜まっていても100ポイントしか利用できず、30ポイントは持ち越しという方式にしたいとおもいます。

ご指導よろしくお願い致します。
pingpong
投稿日時: 2012/3/7 20:50
対応状況: −−−
長老
登録日: 2011/12/15
居住地:
投稿: 156
Re: 100ポイントで1000円分のお買い物券
細かい仕様を決めないと難しいかと思います。

ポイントを入力して実行後、使用ポイントを自動的に修正して処理するのか、一旦ページを戻して入力させなおすのか。

ところで、100ポイント「しか」使えないのですか?
※200ポイントでも2000円のように、100の倍数での仕様というわけではなく

SC_CartSession.phpのcalculateメソッドでポイントを含めた金額計算をしていますので、そのあたりからカスタマイズをしてみてはいかがでしょうか。
nao716
投稿日時: 2012/3/8 1:53
対応状況: −−−
半人前
登録日: 2012/2/14
居住地:
投稿: 30
Re: 100ポイントで1000円分のお買い物券
pingpong様、ご回答ありがとうございます。


> ところで、100ポイント「しか」使えないのですか?
> ※200ポイントでも2000円のように、100の倍数での仕様というわけではなく

いえ、ご指摘の通り、100ポイント毎で1,000円の値引きで、200ポイントであれば2000円の値引きと考えております。


> SC_CartSession.phpのcalculateメソッドでポイントを含めた金額計算をしていますので、そのあたりからカスタマイズをしてみてはいかがでしょうか。

SC_CartSession.php を初心者の私なりに見てみたのですが、この SC_CartSession.php ではすでに、 $use_point(使用ポイント) に値が入っている状態で計算が始まっていると思うのですが?
この前の段階の「使用するポイント数を入力してもらう」段階で、チェックをしないといけないと思うのですが、いかがなものなんでしょうか?

よろしくご指導のほどお願い致します。
pingpong
投稿日時: 2012/3/8 11:00
対応状況: −−−
長老
登録日: 2011/12/15
居住地:
投稿: 156
Re: 100ポイントで1000円分のお買い物券
それであれば、簡単な実装としては、下記のようにしてはいかがでしょうか?

1 ポイント入力画面に100ポイントずつの使用の注意を書く
2 入力されたポイントの下2桁から切り捨てにする
3 POINT_RATEを変更する(1ポイント1円の設定になっているので)

1については、○○00のように、下二桁を00文字列などで固定しておき、3桁目から入力できるようにしておくほうがスマートかと
ただ、それでも、裏側でポイントを100倍するなりして調整が必要になりますね(2の作業に該当)。

編集ページはおっしゃるとおり、そこではなかったですね--;;
aska824
投稿日時: 2012/3/8 12:46
対応状況: −−−
長老
登録日: 2010/2/20
居住地: 静岡県
投稿: 185
Re: 100ポイントで1000円分のお買い物券
以前自分は「○○ポイント以上でないと利用できない」という制約(?)をつけてカスタマイズしたことがあります。

今は制限を付けずに行なってますので、全部覚えて無いのであしからず・・・。

LC_Page_Shopping_Payment.phpの300行目辺りにポイントを利用した際、所持ポイントよりも利用ポイントの方が高い、もしくは購入金額以上のポイントを利用している場合のエラーの返しが表記されてます。

そこにIF文で○○ポイント未満であれば利用できないエラーを返すやり方をしていました。

なので、そこにIF文で100の倍数でなければポイントが使えない記述し、POINT_RATEで1ポイント=100円にしてみると、100の倍数のポイントでなければエラーを返してくれます。

ただ、これはあくまで表向きですので、もしかすると抜け道(?)で100の倍数のポイント以外でも購入できてしまう可能性もあります

自分はPHPにそこまで詳しくないのでわかりません・・・><
というか、100の倍数じゃなかったら・・っていうIF文なんてあるんですかね^^;

もしあればこの方法でできるはずですが><;
(出来なければすいません・・汗)


----------------
-----------情報-----------
自分の分かる範囲でお答えします。

Shop Mate

Masashige
投稿日時: 2012/3/8 13:42
対応状況: −−−
長老
登録日: 2009/4/1
居住地:
投稿: 200
Re: 100ポイントで1000円分のお買い物券
横からすいません。100の倍数は

if( ( $value % 100 ) === 0 )

とかで。あと、フロント側はプルダウンにするといいかもです。
nao716
投稿日時: 2012/3/9 2:08
対応状況: −−−
半人前
登録日: 2012/2/14
居住地:
投稿: 30
Re: 100ポイントで1000円分のお買い物券
pingpong様
aska824様
Masashige様

ご回答ありがとうございます。


最終的に LC_Page_Shopping_Payment.php の300行あたりに

if($max_point < 101){
$objErr->arrErr['use_point'] = "※ 現在の所持ポイントが100ポイント未満なので、ポイントを使えません。<br>";
} else {

というエラー処理を入れました。



また、payment.tpl の290行目あたりの
<input type="text" のテキスト入力を
<select size="1" のリスト入力方式にして、
<option>100</option><option>200</option>...として100の倍数での入力しかできないようにしました。


ポイントの変換レートを 1ポイント10円にしました。


皆様誠にありがとうございます。
まだまだ、わからないことだらけです。

また、質問させていただきます。

今後ともよろしくご指導のほどお願い致します。

aska824
投稿日時: 2012/3/10 1:01
対応状況: −−−
長老
登録日: 2010/2/20
居住地: 静岡県
投稿: 185
Re: 100ポイントで1000円分のお買い物券
引用:

最終的に LC_Page_Shopping_Payment.php の300行あたりに

if($max_point < 101){
$objErr->arrErr['use_point'] = "※ 現在の所持ポイントが100ポイント未満なので、ポイントを使えません。<br>";
} else {

というエラー処理を入れました。

ですが、最後の
else {
は必要ありません。
記述自体は問題ないと思いますので、「else {」を入れた場合、閉じタグ(})がないためエラーが出ます。

if($max_point < 101){
$objErr->arrErr['use_point'] = "※ 現在の所持ポイントが100ポイント未満なので、ポイントを使えません。<br>";
}

でやってみたらどうですか?


----------------
-----------情報-----------
自分の分かる範囲でお答えします。

Shop Mate

nao716
投稿日時: 2012/3/15 15:45
対応状況: −−−
半人前
登録日: 2012/2/14
居住地:
投稿: 30
Re: 100ポイントで1000円分のお買い物券
aska824 様、ご回答ありがとうございます。

説明が不十分でした。
追加したのは、
・・・else {
までですが、その後ろにもありますので、このポイントチェック部分を全部表示すると
-------------------


function lfCheckError(&$objFormParam, $subtotal, $max_point) {
// 入力データを渡す。
$arrForm = $objFormParam->getHashArray();
$objErr = new SC_CheckError_Ex($arrForm);
$objErr->arrErr = $objFormParam->checkError();

if (USE_POINT === false) {
return $objErr->arrErr;
}

if($arrForm['point_check'] == '1') {
$objErr->doFunc(array("ポイントを使用する", "point_check"), array("EXIST_CHECK"));
$objErr->doFunc(array("ポイント", "use_point"), array("EXIST_CHECK"));
if($max_point == "") {
$max_point = 0;
}
if($max_point < 101){
$objErr->arrErr['use_point'] = "<br>※ 現在の所持ポイントが100ポイント未満なので、ポイントをご使用いただけ使えません。<br>";
} else {

// FIXME mobile 互換のため br は閉じない...
if($arrForm['use_point'] > $max_point) {
$objErr->arrErr['use_point'] = "※ ご利用ポイントが所持ポイントを超えています。<br>";
}
if(($arrForm['use_point'] * POINT_VALUE) > $subtotal) {
$objErr->arrErr['use_point'] = "※ ご利用ポイントがご購入金額を超えています。<br>";
}
}
}
return $objErr->arrErr;
}
-------------------



このようになっています。

ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

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