バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

バグ報告 > 管理機能 > 2.11.1 顧客検索で抽出できない項目がある

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
kwhr1972
投稿日時: 2011/5/10 18:17
対応状況: −−−
一人前
登録日: 2011/4/1
居住地:
投稿: 74
2.11.1 顧客検索で抽出できない項目がある
[EC-CUBE]
2.11.1 チェンジセットを随時適用中

[現象]
顧客管理-顧客マスタの検索と、メルマガ管理-配信内容設定の検索で、
購入金額、購入回数、最終購入日での検索が効かない。

調べたのですが、検索条件の問題ではなく、DBの該当項目が更新されていない気がします。

dtb_costomerのfirst_buy_date,last_buy_date,buy_times,buy_totalが入りません。
これらの項目に値が入るタイミングがいつなのかが不明ですが、、

確認をお願い致します。
shutta
投稿日時: 2011/5/10 21:21
対応状況: −−−
仙人
登録日: 2010/2/4
居住地: 関西
投稿: 835
Re: 2.11.1 顧客検索で抽出できない項目がある
kwhr1972さん、こんにちは。

チケットとして既に登録されていますよ。

#1248 顧客マスタの検索条件設定で、購入金額、購入回数が効いていない
http://svn.ec-cube.net/open_trac/ticket/1248

2.4系の頃には、購入の都度dtb_customerのbuy_times,buy_total等が更新される実装になっていましたが、2.11からこの更新処理がなくなっており、顧客マスタの検索側では、この項目が更新される事を前提に実装されたままなので、検索が効かなくなっているという具合です。

2.11での実装の方向としては、

引用:

そもそも、dtb_customerを随時更新するというのは、あまりよい仕様ではないので、何とか検索部分で、吸収する形にして、dtb_customerのbuy_times や buy_totalは使用しない方向にしていきたいですね。


とのことなので、2.4系の頃の仕様から変更になるようです。


----------------

リゾート会員権(エクシブ等)の売買・仲介

kwhr1972
投稿日時: 2011/5/11 10:49
対応状況: −−−
一人前
登録日: 2011/4/1
居住地:
投稿: 74
Re: 2.11.1 顧客検索で抽出できない項目がある
shuttaさん、おはようございます。

スミマセン。
チケットの確認漏れていました。。
次から気をつけます。m(__)m

じゃ、サブクエリ対応の方向みたいですね。


ここに書くものどうかと思いますが、、

既にある、購入商品とかのサブクエリですが、よく見たらINが多用されてますね。。
出来ればEXISTSの方がSQL負荷が軽くなるかと思います。

対応されるコミッターの方、合わせて検討をお願い致します。m(__)m
Rondbell
投稿日時: 2011/6/15 23:49
対応状況: −−−
新米
登録日: 2011/6/15
居住地:
投稿: 2
Re: 2.11.1 顧客検索で抽出できない項目がある
横から入ってくるようで申し訳ありません。

当該現象に関しまして、「登録・更新日」についても同様に検索が効かない(全データが検索結果として出てくる)ということはなかったでしょうか。

当方、プログラム知識がないもので検討のつけようがなく、この現象で困っております。

「登録・更新日」に係る現象の有無についてだけでも、教えていただければ幸いです。
seasoft
投稿日時: 2011/6/16 1:55
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 2.11.1 顧客検索で抽出できない項目がある
> 既にある、購入商品とかのサブクエリですが、よく見たらINが多用されてますね。。
> 出来ればEXISTSの方がSQL負荷が軽くなるかと思います。

トレードオフとして可視性が悪くなったり、DB によってはパフォーマンスに変化がなかったりする事もあります。

なので、一辺倒ではなく、「どの場所を変えるとどう改善されるか」といった情報が寄せられると良いかと思います。


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

kwhr1972
投稿日時: 2011/6/16 11:09
対応状況: −−−
一人前
登録日: 2011/4/1
居住地:
投稿: 74
Re: 2.11.1 顧客検索で抽出できない項目がある
> 「登録・更新日」に係る現象の有無についてだけでも、教えていただければ幸いです。

プログラムを確認しましたが、dtb_customer.update_dateを抽出項目としている様です。

会員情報が更新されるタイミングでdtb_customer.update_dateが更新される作りのようなので、割と随時更新される項目だと思います。

意図する日付で抽出を行いたいなら、意図するタイミングだけ更新されるカラムを追加するなど、カスタマイズが必要かと思います。
kwhr1972
投稿日時: 2011/6/16 11:34
対応状況: −−−
一人前
登録日: 2011/4/1
居住地:
投稿: 74
Re: 2.11.1 顧客検索で抽出できない項目がある
引用:

> 出来ればEXISTSの方がSQL負荷が軽くなるかと思います。

トレードオフとして可視性が悪くなかったり、DB によってはパフォーマンスに変化がなかったりする事もあります。

なので、一辺倒ではなく、「どの場所を変えるとどう改善されるか」といった情報が寄せられると良いかと思います。


確かに効果は環境に依存しますので、ひとまず自前カスタマイズに留めます。

試しに「購入商品コード」を書き換えてみました。
ソースは/data/class/SC_CustomerList.php

変更前:
$this->setWhere( "customer_id IN (SELECT customer_id FROM dtb_order WHERE order_id IN (SELECT order_id FROM dtb_order_detail WHERE product_code LIKE ? ))");

変更後:
$this->setWhere( "EXISTS (SELECT dtb_order.customer_id FROM dtb_order, dtb_order_detail WHERE dtb_order.customer_id = dtb_customer.customer_id AND dtb_order_detail.order_id = dtb_order.order_id AND dtb_order_detail.product_code LIKE ? )");

※インデックス追加作成:dtb_order_detail.order_id

なお、当方の環境はMySQL 5.*であり、他環境での動作確認は行っておりません。

なお、開発環境のデータ量が少なすぎる為、レスポンスが改善されたのかは不明です(笑)
試してみる方がいらっしゃいましたら報告して頂けると幸いです。
遅くなっている様なら、元に戻さなきゃ・・・
seasoft
投稿日時: 2011/6/16 23:41
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 2.11.1 顧客検索で抽出できない項目がある
> プログラムを確認しましたが、dtb_customer.update_dateを抽出項目としている様です。

実動作を見ると、スルーしている感じですね・・・

Rondbell 様のおっしゃるとおり、「全データが検索結果として出てくる」状態が再現しました。

チケットを登録します。


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

seasoft
投稿日時: 2011/6/16 23:51
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 2.11.1 顧客検索で抽出できない項目がある
チケットを登録しました。
http://svn.ec-cube.net/open_trac/ticket/1356


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

seasoft
投稿日時: 2011/6/17 2:29
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 2.11.1 顧客検索で抽出できない項目がある
改修を行いました。
http://svn.ec-cube.net/open_trac/changeset/20977


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

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


 



ログイン


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

統計情報

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

投稿数ランキング

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