LUNARAVE WEBクリエーターの仕事と休息

アクセスカウンタ

help リーダーに追加 RSS 商品紹介文など商品検索時の対象項目を増やす -EC-CUBE-

<<   作成日時 : 2007/07/06 12:46   >>

トラックバック 0 / コメント 0

クライアントのECサイトとしてオープンソースの"EC-CUBE"を利用している。


 EC-CUBE

導入実績として主にVPSサーバである"ラピッドサイト"か低コストな"CPI"にて実装している。


尚、現在使用しているバージョンは"1.3.0"である。


"EC-CUBE"にはもちろん商品検索機能がついており、フリーキーワードとカテゴリー検索が可能だ。

カテゴリー検索は商品一つにつき、一つのカテゴリーに属すことができるので該当する商品はすべて検出される。

フリーキーワードの方は、入力した単語が"商品名"、"検索ワード"に該当した場合のみ検出される。

ここで"商品名"と"検索ワード"は管理画面から編集できるのだが、入力できる項目はこれだけではない。

 入力項目


商品の紹介文は一覧画面用と詳細画面用があり、詳細画面のサブコメントも複数入力することが可能だ。


詳しい商品紹介をしているのにその言葉・単語が検索で検出されないのはもったいない。


そこで、検索項目の対象を増やすカスタマイズを行う。

まず、「/html/products/list.php」を開き、195行目あたりを見てみる。


// 商品名をwhere文に
$name = ereg_replace(",", "", $name);
if ( strlen($name) > 0 ){
 $where .= " AND ( name ILIKE ? OR comment3 ILIKE ?) ";
 $ret = sfManualEscape($name);
 $arrval[] = "%$ret%";
 $arrval[] = "%$ret%";
}



この部分が検索フォームから受け取った内容をSQLに照合する部分だ。

これに一覧商品紹介文"main_list_comment"を加えてみる。


// 商品名をwhere文に
$name = ereg_replace(",", "", $name);
if ( strlen($name) > 0 ){
 $where .= " AND ( name ILIKE ? OR comment3 ILIKE ? OR main_list_comment ILIKE ?) ";
 $ret = sfManualEscape($name);
 $arrval[] = "%$ret%";
 $arrval[] = "%$ret%";
 $arrval[] = "%$ret%";
}



上記のように、$whereに"main_list_comment"などDBのカラム名を追加し、その下の"$arrval[] = "%$ret%";"を追加するだけだ。

項目が一つ増えるごとに"$arrval[] = "%$ret%";"を一行追加する。


デフォルトのままでも検索対象にしたいカラムは多いのだが、カスタマイズして項目を増やしているときは数が多くなるので注意したい。

設定テーマ

注目テーマ 一覧

月別リンク

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
WEB技術関連
EC-CUBE関連
ソフトウェア関連