バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 【ver.2.11】検索条件設定項目に在庫数を追加したい

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
by0448
投稿日時: 2012/2/27 12:17
対応状況: −−−
長老
登録日: 2011/9/12
居住地: 横浜市
投稿: 186
【ver.2.11】検索条件設定項目に在庫数を追加したい
いつもお世話になっております。

商品管理画面には、商品のステータスやカテゴリ等で限定して検索が出来るのですが、在庫数で検索というのはついていません。

これですが、在庫管理する上で、とても必要なので追加を試みたのですが、以下のものでは上手くいきませんでした。

/data/Smarty/templates/admin/products.index.tpl
112行目付近


<tr>
<th>在庫数</th> 
<td> <!--{assign var=key1 value="stock_min1"}--> <!--{assign var=key2 value="stock_min2"}--> 
<span class="attention"><!--{$arrErr[$key1]}--></span> 
<span class="attention"><!--{$arrErr[$key2]}--></span> 
<input type="text" name="<!--{$key1}-->" value="<!--{$arrForm[$key1].value|h}-->" maxlength="<!--{$arrForm[$key1].length}-->" style="<!--{$arrErr[$key1]|sfGetErrorColor}-->" size="6" class="box6" /> 個 〜 
<input type="text" name="<!--{$key2}-->" value="<!--{$arrForm[$key2].value|h}-->" maxlength="<!--{$arrForm[$key2].length}-->" style="<!--{$arrErr[$key2]|sfGetErrorColor}-->" size="6" class="box6" /> 個 
</td> 



規格を使った商品もあるので、stock_minを使ったのですが、これも正しいかどうかのわかっていません。
どなたか、同じような機能を追加した方がいらっしゃいましたら、ご教授下さい。

宜しくお願いします。

―環境―――――――――――――
EC-CUBE 2.11.2
MySQL 5.1.34-log
PHP 5.2.17
――――――――――――――――
pingpong
投稿日時: 2012/2/28 12:09
対応状況: −−−
長老
登録日: 2011/12/15
居住地:
投稿: 156
Re: 【ver.2.11】検索条件設定項目に在庫数を追加したい
上手くいかないというのは、どう上手くいかないのでしょうか?

tplだけの変更ではなく、phpの変更はしていないのでしょうか?
by0448
投稿日時: 2012/2/28 12:12
対応状況: −−−
長老
登録日: 2011/9/12
居住地: 横浜市
投稿: 186
Re: 【ver.2.11】検索条件設定項目に在庫数を追加したい
全然足りなかったようなので、今出来ているところまで書きなおします。



/data/Smarty/templates/admin/products/index.tpl
112行目付近


<tr>
<th>在庫数</th> 
<td> 
<!--{assign var=key1 value="search_stock1"}--> 
<!--{assign var=key2 value="search_stock2"}--> 
<span class="attention"><!--{$arrErr[$key1]}--></span> 
<span class="attention"><!--{$arrErr[$key2]}--></span> 
<input type="text" name="<!--{$key1}-->" value="<!--{$arrForm[$key1].value|h}-->" maxlength="<!--{$arrForm[$key1].length}-->" style="<!--{$arrErr[$key1]|sfGetErrorColor}-->" size="6" class="box6" /> 個 〜 
<input type="text" name="<!--{$key2}-->" value="<!--{$arrForm[$key2].value|h}-->" maxlength="<!--{$arrForm[$key2].length}-->" style="<!--{$arrErr[$key2]|sfGetErrorColor}-->" size="6" class="box6" /> 個 
</td> 


/data/class/pages/admin/products/LC_Page_Admin_Products.php


210行目付近

$objFormParam->addParam("在庫数1", "search_stock1", STEXT_LEN, 'n', array("SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
$objFormParam->addParam("在庫数2", "search_stock2", STEXT_LEN, 'n', array("SPTAB_CHECK", "MAX_LENGTH_CHECK"));


234行目
$objErr->doFunc(array("在庫1", "在庫2", "search_stock1", "search_stock2"), array("GREATER_CHECK"));



304行目付近
    //在庫数
        case 'search_stock1':
            $where .= " AND stock >= ?";
            $arrValues[] = sprintf('%d', $objFormParam->getValue($key));
            break;
        case 'search_stock2':
            $where .= " AND stock <= ?";
            $arrValues[] = sprintf('%d', $objFormParam->getValue($key));
            break;




以上のように追加しましたが、エラーが出てしまいました。
どなたかご教授いただけますよう、お願い申し上げます。
by0448
投稿日時: 2012/2/28 12:14
対応状況: −−−
長老
登録日: 2011/9/12
居住地: 横浜市
投稿: 186
Re: 【ver.2.11】検索条件設定項目に在庫数を追加したい
pingpong 様

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

引用:

pingpongさんは書きました:
上手くいかないというのは、どう上手くいかないのでしょうか?

tplだけの変更ではなく、phpの変更はしていないのでしょうか?


たった今、phpのほうの修正部分も書き出しました。
しかし、エラーが出てしまったのですが、ご教授いただけないでしょうか。
jsybcr
投稿日時: 2012/2/28 17:16
対応状況: −−−
半人前
登録日: 2011/9/12
居住地:
投稿: 12
Re: 【ver.2.11】検索条件設定項目に在庫数を追加したい
phpの当該箇所は基本的にdtb_productへのクエリみたいです。
在庫数は「商品コード」と同様にdtb_products_classに属していますので、「商品コード」検索部分を参考にしてみると良いような気がします。
by0448
投稿日時: 2012/2/28 17:49
対応状況: −−−
長老
登録日: 2011/9/12
居住地: 横浜市
投稿: 186
Re: 【ver.2.11】検索条件設定項目に在庫数を追加したい
jsybcr 様

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

引用:

jsybcrさんは書きました:
phpの当該箇所は基本的にdtb_productへのクエリみたいです。
在庫数は「商品コード」と同様にdtb_products_classに属していますので、「商品コード」検索部分を参考にしてみると良いような気がします。



おっしゃった通り、商品コードの部分を引っ張ってきて以下のように変更したら、上手く動きました。

//在庫数 
case 'search_stock1': 
$where .= " AND product_id IN (SELECT product_id FROM dtb_products_class WHERE stock ILIKE ? GROUP BY product_id) "; 
$arrValues[] = sprintf('%d', $objFormParam->getValue($key)); 
break;



ただ、何個〜何個までの検索と云うのは上手くいっていません。

>= ? 
というものを使うというのは分かるのですが、どこに差し込めばいいのでしょうか?

$where .= " AND product_id IN (SELECT product_id FROM dtb_products_class WHERE stock ILIKE ? GROUP BY product_id) >= ?";

ちなみに、上のようにすると、エラーが出てしまいました。


jsybcr
投稿日時: 2012/2/28 18:07
対応状況: −−−
半人前
登録日: 2011/9/12
居住地:
投稿: 12
Re: 【ver.2.11】検索条件設定項目に在庫数を追加したい
ILIKEは = 等と同じく演算子なのでたぶんこうではないかと。

$where .= " AND product_id IN (SELECT product_id FROM dtb_products_class WHERE stock >= ? GROUP BY product_id)";

>$where .= " AND product_id IN (SELECT product_id FROM dtb_products_class WHERE stock ILIKE ? GROUP BY product_id) >= ?";

SQLは不得手なので違っていたら申し訳ありません。
by0448
投稿日時: 2012/2/28 18:38
対応状況: −−−
長老
登録日: 2011/9/12
居住地: 横浜市
投稿: 186
Re: 【ver.2.11】検索条件設定項目に在庫数を追加したい
jsybcr  様


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


頂いた情報を試したところ、上手く検索が作動するようになりました。


ただ、他の検索に比べて、検索結果が表示されるまで時間がかかってしまうのと、在庫0で検索をかけると、規格を適用した商品全てが在庫の数関係なく抽出されてしまうようです。

よろしければ、この対策をお教え願えないでしょうか?

jsybcr
投稿日時: 2012/2/29 9:47
対応状況: −−−
半人前
登録日: 2011/9/12
居住地:
投稿: 12
Re: 【ver.2.11】検索条件設定項目に在庫数を追加したい
とりあえずざっくりと、分かる範囲で。

>時間
商品コード検索も同じぐらい時間か借りませんか?
これは、商品(dtb_product)だけでなく商品規格(dtb_products_class)も参照しているからだと思います。
商品規格は商品数の数倍に及ぶことがあるので
ある程度仕方の無いことかと。

>0検索
在庫無制限商品がある場合は、stockにNULLがはいるから?
stock_unlimitedも参照する必要がある?

SQL得意な方ご助力お願い出来れば。
by0448
投稿日時: 2012/2/29 12:14
対応状況: −−−
長老
登録日: 2011/9/12
居住地: 横浜市
投稿: 186
Re: 【ver.2.11】検索条件設定項目に在庫数を追加したい
jsybcr 様 ご回答ありがとうございました。

引用:


>時間
商品コード検索も同じぐらい時間か借りませんか?
これは、商品(dtb_product)だけでなく商品規格(dtb_products_class)も参照しているからだと思います。
商品規格は商品数の数倍に及ぶことがあるので
ある程度仕方の無いことかと。


確かに、商品コードと同じように検索に時間がかかるようです。
在庫数の検索回数は毎日するものではないので、この長さでも我慢するようにします。


引用:


>0検索
在庫無制限商品がある場合は、stockにNULLがはいるから?
stock_unlimitedも参照する必要がある?

SQL得意な方ご助力お願い出来れば。



在庫0での検索を検証した結果、在庫無制限では検索には出ませんでした。
ただ、規格登録でチェックを入れない商品でも、在庫が0であったばあい、検索結果に表れるようです。


この場合の対策をどなたか、お教えいただけないでしょうか。
宜しくお願い致します。
(1) 2 3 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
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.