プラグイン > その他 > バグでしょうか?(POINTプラグイン) |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
nishisuke |
投稿日時: 2017/3/4 14:50
対応状況: 確認中
|
半人前 登録日: 2017/3/4 居住地: 投稿: 22 |
バグでしょうか?(POINTプラグイン) ▼テンプレート
[EC-CUBE] 3.0.12、新規インストール [ポイントプラグイン] 1.0.0 [PHP] PHP5.4.45 [現象] ポイントプラグインにおいて保有ポイント情報が0で取得される。 ECCUBE2からの移行試験中です。 マニュアル記載の通りECCUBE2よりデータを移行しplg_point_customerを生成(約1.4万件)。 該当のcustomer_idのplg_point_currentには、20の値が設定されている。 テーブルには同一のcustomer_idは存在しない。 管理機能の会員マスター検索にて保有ポイント20の表示を確認。 フロント機能で購入を行うと保有ポイント0ポイントとして購入処理が行われる。 この時、plg_point_customerには該当customer_idにてplg_point_currentが0のレコードが新規生成。 plg_pointには利用ポイント、加算ポイントのレコードは正常に生成され、plg_point_snapshotにも正常にレコードが作られているが、該当テーブルのplg_point_currentは全て0で作成される。 別の新規構築環境では同一バージョンで正常に稼働しており、ECCUBE2からのデータ移行の環境のみ発生しています。 何が考えられるでしょうか? 該当のPOINTログは以下の通りです。 ------------------------------------------------------------------------------------------- [2017-03-04 13:56:39] [g2s6f9bd] plugin.point.INFO: save end [] {"process_id":23153,"url":"/shop/shopping/confirm","ip":"192.168.0.3","http_method":"POST","server":"test.domain.com","referrer":"http://test.domain.com/shop/shopping","class":"Plugin\\Point\\Event\\WorkPlace\\ServiceMail","function":"save","line":100} [2017-03-04 13:56:39] [g2s6f9bd] plugin.point.INFO: save add point {"customer_id":10898,"order_id":45925,"add point":20,"use point":0} {"process_id":23153,"url":"/shop/shopping/confirm","ip":"192.168.0.3","http_method":"POST","server":"test.domain.com","referrer":"http://test.domain.com/shop/shopping","class":"Plugin\\Point\\Event\\WorkPlace\\ServiceMail","function":"save","line":75} [2017-03-04 13:56:39] [g2s6f9bd] plugin.point.INFO: save start [] {"process_id":23153,"url":"/shop/shopping/confirm","ip":"192.168.0.3","http_method":"POST","server":"test.domain.com","referrer":"http://test.domain.com/shop/shopping","class":"Plugin\\Point\\Event\\WorkPlace\\ServiceMail","function":"save","line":37} [2017-03-04 13:56:39] [g2s6f9bd] plugin.point.INFO: save end [] {"process_id":23153,"url":"/shop/shopping/confirm","ip":"192.168.0.3","http_method":"POST","server":"test.domain.com","referrer":"http://test.domain.com/shop/shopping","class":"Plugin\\Point\\Event\\WorkPlace\\FrontShoppingComplete","function":"save","line":108} [2017-03-04 13:56:39] [g2s6f9bd] plugin.point.INFO: save add point {"customer_id":10898,"order_id":45925,"current point":0,"add point":20,"use point":0} {"process_id":23153,"url":"/shop/shopping/confirm","ip":"192.168.0.3","http_method":"POST","server":"test.domain.com","referrer":"http://test.domain.com/shop/shopping","class":"Plugin\\Point\\Event\\WorkPlace\\FrontShoppingComplete","function":"save","line":97} [2017-03-04 13:56:39] [g2s6f9bd] plugin.point.INFO: save start [] {"process_id":23153,"url":"/shop/shopping/confirm","ip":"192.168.0.3","http_method":"POST","server":"test.domain.com","referrer":"http://test.domain.com/shop/shopping","class":"Plugin\\Point\\Event\\WorkPlace\\FrontShoppingComplete","function":"save","line":42} よろしくお願い致します。 |
nishisuke |
投稿日時: 2017/3/5 8:43
対応状況: 確認中
|
半人前 登録日: 2017/3/4 居住地: 投稿: 22 |
Re: バグでしょうか?(POINTプラグイン) 少しデバッグ行を入れて追ってみました。
Cartの段階は注文確認画面では正しくCurrentPointは、20と引けていました。 注文確定のEvent/WorkPlace/FrontShoppingComplete.php のcalculateCurrentPointの$Customer->getId()は、正常に該当会員のCustome_idを渡しています。 PointRepository.phpのcalcCurrentPointで生成されるSQLで引っ張って来られないのだと思いますが、index_dev.phpなどの情報を見ては見ましたが、SQLのログの出力の仕方がわかりません。 SQLログを出力する方法をご存知の方がいればご教授頂けないでしょうか。 よろしくお願い致します。 |
umebius |
投稿日時: 2017/3/5 9:20
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: バグでしょうか?(POINTプラグイン) $qb->getQuery()->getSql()
$qb->getQuery()->getDQL() $qb->getQuery()->getParameters() などで$qbのその時点のクエリの状況は分かります。
|
red |
投稿日時: 2017/3/5 12:10
対応状況: −−−
|
神 登録日: 2010/2/15 居住地: 東京都 投稿: 1570 |
Re: バグでしょうか?(POINTプラグイン) plg_point_currentは現在のポイントを表示するためのものであって実態ではありません。
なのでバグではなく仕様ですよ
|
nishisuke |
投稿日時: 2017/3/5 16:30
対応状況: −−−
|
半人前 登録日: 2017/3/4 居住地: 投稿: 22 |
Re: バグでしょうか?(POINTプラグイン) ありがとうございました。
SQL取得できました。 |
nishisuke |
投稿日時: 2017/3/5 16:37
対応状況: −−−
|
半人前 登録日: 2017/3/4 居住地: 投稿: 22 |
Re: バグでしょうか?(POINTプラグイン) ありがとうございます。
確かにcalculateCurrentPointのSQLを見たら SELECT SUM(p0_.plg_dynamic_point) AS sclr0 FROM plg_point p0_ WHERE (p0_.order_id IS NULL AND p0_.customer_id = 10898) OR (p0_.plg_point_type = 4 AND p0_.customer_id = 10898)とplg_pointテーブルを見ていて移行直後でテーブルは空のためNULLが返っており0で正しいように思います。 保有ポイント20で、利用ポイントを5ポイントとすると-5となって受注エラーになるので別のロジック更新の所なのかと思います。 もう少し調べてみます。 |
nishisuke |
投稿日時: 2017/3/10 13:36
対応状況: 解決済
|
半人前 登録日: 2017/3/4 居住地: 投稿: 22 |
Re: バグでしょうか?(POINTプラグイン) 皆様のアドバイスもあり解決しました。
POINTプラグインのマニュアルには移行方法として以下の記載があります。 ---------------------------------------------------------- 9.3 移行方法 具体的な移行方法を以下に示します。 EC-CUBE 2 と EC-CUBE 3 のポイントにおけるテーブルの比較です。 [ EC-CUBE2 ] 1. 対象テーブル : dtb_customer ( 会員情報テーブル ) 抽出対象カラム : point ( 会員保有ポイント ) [ EC-CUBE3 ] 1. 対象テーブル : plg_point_customer ( 会員保有ポイント管理テーブル ) 登録対象カラム : customer_id ( 会員情報テーブル主キー ) 登録対象カラム : plg_point_current ( 会員保有ポイント ) EC-CUBE2 のテーブル:dtb_customer の point カラムのレコードを、EC-CUBE3 のテーブ ル plg_point_customer の plg_point_current に登録してください。 EC-CUBE3 の「dtb_customer」と「plg_point_customer」の「customer_id」がリレー ションとなっています。 その記載に則りplg_point_customerにのみ移行データを作成していましたが、plg_pointとplg_point_snapshotにも管理画面で手動でポイント設定をした時と同じ形式でレコードを発生させる事でECCUBE2からのポイント移行後の購買でもポイントの増減が正しく計算されるようになりました。 ECCUBE2からのポイント移行の方はご注意ください。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |