質問 > 管理機能 > 規格登録有無の判定について |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
reomi2002 |
投稿日時: 2009/12/5 3:04
対応状況: −−−
|
新米 登録日: 2009/7/6 居住地: 投稿: 3 |
規格登録有無の判定について お世話になっております。
EC-CUBEは初心者に近いのですが、2.4.1 のソースコードを読んでいると、 ---------- // すでに規格登録があるかどうかをチェックする。 $where = "product_id = ? AND classcategory_id1 <> 0 AND classcategory_id1 <> 0"; ---------- と、dtb_products_class.classcategory_id1 の値を2回条件句に指定するSQLがいくつか見受けられます。 (SC_Utils.php 751行, LC_Page_Admin_Products_Product.php 648行) これはどういった仕様によるものでしょうか? ご存じの方がいたら是非ご教授ください。 |
AMUAMU |
投稿日時: 2009/12/5 9:57
対応状況: −−−
|
神 登録日: 2009/5/2 居住地: 東京都 投稿: 2712 |
Re: 規格登録有無の判定について 過去ログで指摘があり、バグでチケット発行済です。
http://svn.ec-cube.net/open_trac/ticket/519
|
AMUAMU |
投稿日時: 2009/12/5 10:34
対応状況: −−−
|
神 登録日: 2009/5/2 居住地: 東京都 投稿: 2712 |
Re: 規格登録有無の判定について 忘れられているので、ちゃんと確認してみたところ影響なさそうなので修正をコミットしました。
http://svn.ec-cube.net/open_trac/changeset/18427
|
Oba |
投稿日時: 2009/12/6 5:42
対応状況: −−−
|
一人前 登録日: 2007/8/31 居住地: 静岡 投稿: 111 |
Re: 規格登録有無の判定について お世話になっております。
[EC-CUBE] comu-ver.2.4.1-r18415 reomi2002様も書かれてますが、他のファイルにも、同じ様な判定の個所がありますが、どうでしょうか? data/class/pages/admin/products/LC_Page_Admin_Products_Product.php の651行目。
|
seasoft |
投稿日時: 2009/12/6 14:38
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 規格登録有無の判定について AMUAMU 様
> 忘れられているので、ちゃんと確認してみたところ影響なさそうなので修正をコミットしました。 > http://svn.ec-cube.net/open_trac/changeset/18427 本改訂の適用により、規格1のみを設定している商品の情報(価格や在庫)が異常になると、私どものお客様より報告がありました。 当方では、 (追記) ぱっと見ですが、「<>0 AND <>0」はまずいような・・・ OR 比較する必要があるような。 (追記2) 考え方によっては、EC-CUBE のデータ的には、classcategory_id1 のみの比較で十分で、classcategory_id2 を評価する必要性は薄いのかもしれません。(商品規格2のみ登録するのは不可能な気がするので。CSV登録やDB直接編集などが関わってくると、分かりませんが。)
|
seasoft |
投稿日時: 2009/12/6 16:03
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 規格登録有無の判定について Oba 様
そもそも、同じような処理が2箇所に分散している時点で、構造的に望ましくない予感がしますね。 SC_Utils#sfInsertProductClass も、LC_Page_Admin_Products_Product でしか使っていないようなので、CSV 登録では、また別の判断基準で動作していそうですね・・・
|
Oba |
投稿日時: 2009/12/7 2:28
対応状況: −−−
|
一人前 登録日: 2007/8/31 居住地: 静岡 投稿: 111 |
Re: 規格登録有無の判定について Seasoft様
いつも、ご苦労様です。また、返信、ありがとうございます。 引用: 本改訂の適用により、規格1のみを設定している商品の情報(価格や在庫)が異常になると、私どものお客様より報告がありました。 異常になってしまうんですか。 SVNのtracでも、Seasoft様が差し戻されてますね。 以前の状態で異常が無かったので、自分も戻しておきました。 引用: (追記) AND ではなく、OR や XOR で、classcategory_id2 をも比較するのが良いんでしょうか。 それとも、 引用: 商品規格2のみ登録するのは不可能な気がするので。… EC-CUBEの標準的な?使用ならば、classcategory_id2 は要らない? とすると、
引用: SC_Utils#sfInsertProductClass も、LC_Page_Admin_Products_Product でしか使っていないようなので、CSV 登録では、また別の判断基準で動作していそうですね・・・ grepしてみたら、sfInsertProductClass は、仰られている様に、LC_Page_Admin_Products_Product でしか使ってないですね。 引用: そもそも、同じような処理が2箇所に分散している時点で、構造的に望ましくない予感がしますね。 LC_Page_Admin_Products_Product では、該当箇所の見直しでしょうか? |
AMUAMU |
投稿日時: 2009/12/7 10:09
対応状況: −−−
|
神 登録日: 2009/5/2 居住地: 東京都 投稿: 2712 |
Re: 規格登録有無の判定について これは大変に失礼しました。
やはり慎重な判断が必要な部分でしたね・・・ 差し戻しありがとうございました。 引用: 考え方によっては、EC-CUBE のデータ的には、classcategory_id1 のみの比較で十分で、classcategory_id2 を評価する必要性は薄いのかもしれません。(商品規格2のみ登録するのは不可能な気がするので。CSV登録やDB直接編集などが関わってくると、分かりませんが。) 確かにその通りかと思います。 評価の重要性は低いので削るぐらいでも良いのかと。・・
|
seasoft |
投稿日時: 2009/12/7 16:41
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 規格登録有無の判定について > AND ではなく、OR や XOR で、classcategory_id2 をも比較するのが良いんでしょうか。
多分そうだと思います。 もう少し考えさせてください。 > EC-CUBEの標準的な?使用ならば、classcategory_id2 は要らない? 私の把握している限りでは。 もしも、規格1を利用せずに、規格2を利用するルートがあれば、話が変わってきます。 なので、念のため classcategory_id2 も走査しておくというのは良い考えだとも思います。 > とすると、 > > $where = "product_id = ? AND classcategory_id1 <> 0 AND classcategory_id1 <> 0"; を、 > ↓↓↓ > $where = "product_id = ? AND classcategory_id1 <> 0"; > > と、したらダメなのですか?(浅はかです。。。 多分、それでも良いと思います。 少なくとも、従来と同じ動作をするはずです。 > grepしてみたら、sfInsertProductClass は、仰られている様に、LC_Page_Admin_Products_Product でしか使ってないですね。 > LC_Page_Admin_Products_Product では、該当箇所の見直しでしょうか? 少し大きめな改訂となりますが、周辺のロジックの改良を含め、改訂してみようと思います。もう少し時間をください。 改定後に、テストにご協力いただけると幸いです。(本番環境への当て込みは、テスト後に・・・)
|
seasoft |
投稿日時: 2009/12/7 21:44
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 規格登録有無の判定について http://svn.ec-cube.net/open_trac/changeset/18435 にて本件を含む改訂を実施しました。
|
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |