バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > レビュー投稿でポイント付与

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
mamano
投稿日時: 2013/2/28 20:10
対応状況: −−−
一人前
登録日: 2011/6/28
居住地:
投稿: 83
レビュー投稿でポイント付与
[EC-CUBE]2.11.1
[レンタルサーバ]GMO VPS
[OS]CentOS release 5.3
[PHP]5.1.6-23.9v1
[データベース]MySQL 5.0.77
[WEBサーバ]apache2
--------------環境-------------

お世話になります。

レビュー投稿 ⇒ 管理画面で承認 ⇒ 公開
上記にて商品レビューを展開しておりますが、
承認したタイミングで、投稿者にポイントを自動付与するにはどうしたらよいでしょうか。

レビュー投稿にはログイン必須(会員登録必須)にはしております。


どなたかご教授いただけないしょうか。

よろしくお願いいたします。
dimaggio
投稿日時: 2013/3/1 10:54
対応状況: −−−
一人前
登録日: 2011/3/30
居住地: Tokyo
投稿: 120
Re: レビュー投稿でポイント付与
承認のタイミングでDBのdtb_customerテーブルにある顧客の保有ポイントデータを変更するSQL文を書くか、在りモノで流用するならSC_Helper_Purchase.php の1095行目辺りを参照するとかどうでしょう。


----------------
dimaggio
----------------------------
EC-CUBEのご相談、承ります。
http://ec-cube.bitmop.co.jp/

mamano
投稿日時: 2013/3/1 14:52
対応状況: −−−
一人前
登録日: 2011/6/28
居住地:
投稿: 83
Re: レビュー投稿でポイント付与
dimaggio 様

ありがとうございます。

引用:

承認のタイミングでDBのdtb_customerテーブルにある顧客の保有ポイントデータを変更するSQL文を書くか、


SQL分を書くためにはどこか参考になる(使いまわしのきく)部分を教えて貰えませんでしょうか。
すみません。。。

色々触ってみましたが、dtb_reviewに登録されている情報では、
dtb_customerのpointをどのように紐付けして登録すればよいのか
さっぱり分かりません。。。

ど素人で申し訳ありませんが
ご教授いただけませんでしょうか。

よろしくお願いいたします。
mamano
投稿日時: 2013/3/3 18:49
対応状況: −−−
一人前
登録日: 2011/6/28
居住地:
投稿: 83
Re: レビュー投稿でポイント付与
もう少しいろいろ触ってみましたが、
会員登録時ポイント付与の機能をいかして、
店舗基本情報から会員登録ポイントをレビューポイントとして
レビュー管理画面で表示を非表示に登録した際に
ポイント付与しようと試行錯誤してますが
全く思う結果の動きをしてくれません・・・

どなたか他に方法を教えてもらえませんでしょうか。
ちょっと背に腹は代えられなくなってきたので、
カスタムの依頼も含めて、どなたか
よろしくお願いいたします。
dimaggio
投稿日時: 2013/3/4 10:57
対応状況: −−−
一人前
登録日: 2011/3/30
居住地: Tokyo
投稿: 120
Re: レビュー投稿でポイント付与
例えばですが、 LC_Page_Admin_Products_ReviewEdit.php の86行目辺りに、下記のような処理を
追加してみるとどうでしょうか。

これで「商品管理>レビュー管理」の「この内容で登録する」ボタン押下で、顧客ID:1に正しく
ポイントが加算されるとすれば、
 1. 非表示状態から表示状態への変更時のみ処理を行うように制御をかける
 2. レビューに紐付けてある(はずの) customer_id をセットする

などの処理を追加してゆけばご希望の機能にたどり着きそうな気がします。



【オリジナル】
case 'complete':
$this->arrErr = $this->lfCheckError($objFormParam);
// エラー無し
if (!$this->arrErr) {
// レビュー情報の更新
$this->lfRegistReviewData($this->arrForm['review_id'], $objFormParam);
// レビュー情報のDB取得
$this->arrForm = $this->lfGetReviewData($this->arrForm['review_id']);
$this->tpl_onload = "alert('登録が完了しました。');";
}
break;


【追加後】
case 'complete':
$this->arrErr = $this->lfCheckError($objFormParam);
// エラー無し
if (!$this->arrErr) {
// レビュー情報の更新
$this->lfRegistReviewData($this->arrForm['review_id'], $objFormParam);
// ここから
$addCustomerPoint = 1000;
$customer_id = 1;

// ▼会員テーブルの更新
$objQuery =& SC_Query_Ex::getSingletonInstance();
$objQuery->update('dtb_customer', array('update_date' => 'CURRENT_TIMESTAMP'),
'customer_id = ?', array($customer_id),
array('point' => 'point + ?'), array($addCustomerPoint));
// ▲会員テーブルの更新
// ここまで

// レビュー情報のDB取得
$this->arrForm = $this->lfGetReviewData($this->arrForm['review_id']);
$this->tpl_onload = "alert('登録が完了しました。');";
}
break;


----------------
dimaggio
----------------------------
EC-CUBEのご相談、承ります。
http://ec-cube.bitmop.co.jp/

mamano
投稿日時: 2013/3/5 3:30
対応状況: −−−
一人前
登録日: 2011/6/28
居住地:
投稿: 83
Re: レビュー投稿でポイント付与
ありがとうございます!

ポイントの登録はできました。
customer_idと紐付けることもできました。

そこで、ポイント付与の上限(投稿2回まで)を設けるために
dtb_customerにcountというフィールドを追加して
1回書き込み(承認)時にcountの数字を0→1とするため
下記のように修正しましたが、countフィールドに+1ができません。

// ここから
$addCustomerPoint = 500;
$customer_id = ($this->tpl_customer_id);
$addCount = 1;
// ▼会員テーブルの更新
$objQuery =& SC_Query_Ex::getSingletonInstance();
$objQuery->update('dtb_customer', array('update_date' => 'now()'), 'customer_id = ?', array($customer_id),
array('point' => 'point + ?'), array($addCustomerPoint),
array('count' => 'count + ?'), array($addCount));
// ▲会員テーブルの更新

何が原因かお教えいただけませんでしょうか。。。
dimaggio
投稿日時: 2013/3/5 10:33
対応状況: −−−
一人前
登録日: 2011/3/30
居住地: Tokyo
投稿: 120
Re: レビュー投稿でポイント付与
ご希望に近づけたようで何よりです。

 $objQuery->update('dtb_customer', array('update_date' => 'now()'),
  'customer_id = ?', array($customer_id),
  array('point' => 'point + ?', 'count' => 'count + ?'), array($addCustomerPoint, $addCount));

とかだとどうですかね。


----------------
dimaggio
----------------------------
EC-CUBEのご相談、承ります。
http://ec-cube.bitmop.co.jp/

mamano
投稿日時: 2013/3/6 6:52
対応状況: −−−
一人前
登録日: 2011/6/28
居住地:
投稿: 83
Re: レビュー投稿でポイント付与
ありがとうございます!

無事、ポイントの付与ができまして
countの値も更新されました。

そこで、次のステップで躓いているのですが、、、

dtb_customerのcountの値が取得できないでいます。

SC_Helper_Customer.phpの
$ret = $objQuery->select("*","dtb_customer","customer_id=?", array($customer_id));
$arrForm = $ret[0];
上記をswitchの前に挿入したのですが値が取得できません。

何が原因か、ご教授いただけないでしょうか。
何度も申し訳ありませんがよろしくお願いいたします。
dimaggio
投稿日時: 2013/3/6 10:34
対応状況: −−−
一人前
登録日: 2011/3/30
居住地: Tokyo
投稿: 120
Re: レビュー投稿でポイント付与
うーむ、なんですかね。
objQueryオブジェクトのインスタンス化がされていないとか?

$objQuery =& SC_Query_Ex::getSingletonInstance();
の行を、$objQuery->update行の前から、$ret = $objQuery->select行の前に移動してみても駄目でしょうか。


----------------
dimaggio
----------------------------
EC-CUBEのご相談、承ります。
http://ec-cube.bitmop.co.jp/

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

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.