2016年4月20日水曜日

【ECCUBE 3】検索対象を増やす。

ECCUBE3のデフォルトで検索の対称となるのは「商品名」と「検索ワード」のみ。

ここに「商品説明(詳細)」を増やしたい。

検索は下記ファイル内で処理されています。
src/Eccube/Repository/ProductRepository.php


上記ファイル内のgetQueryBuilderBySearchData
if (isset($searchData['name']) && Str::isNotBlank($searchData['name'])) {
    $keywords = preg_split('/[\s ]+/u', $searchData['name'], -1, PREG_SPLIT_NO_EMPTY);
    foreach ($keywords as $index => $keyword) {
        $key = sprintf('keyword%s', $index);
        $qb
            ->andWhere(sprintf ('p.name LIKE :%s OR p.search_word LIKE :%s', $key, $key))
            ->setParameter($key, '%' . $keyword . '%');
    }
}

下記に書き換えればOK!!
andWhereの部分にdescription_detailを追加してます。

if (isset($searchData['name']) && Str::isNotBlank($searchData['name'])) {
    $keywords = preg_split('/[\s ]+/u', $searchData['name'], -1, PREG_SPLIT_NO_EMPTY);
    foreach ($keywords as $index => $keyword) {
        $key = sprintf('keyword%s', $index);
        $qb
            ->andWhere(sprintf ('p.name LIKE :%s OR p.search_word LIKE :%s OR p.description_detail LIKE :%s', $key, $key, $key))
            ->setParameter($key, '%' . $keyword . '%');
    }
}

Related Posts:

  • swift iPhone画面上に映っている地図の距離をメートルで取得する。iPhoneで地図を使ったアプリを開発する際、画面上にうつってる範囲の距離を取得したい時があります。 画面上で見えてる範囲だけ距離を取得しAPIに投げたい。のが動機です。 まずはiPhone上に地図を表示しなくては始まりませんね。 xcodeで新規プロジェクト、シングルページで新規アプリを作ります… Read More
  • ECCUBE メンバーによって管理画面のアクセスを制限する。EC-CUBE 2.12にてログインするメンバーによって管理画面のアクセスを制限したいという事になった。 例)Aさんに商品管理だけアクセス出来るようにしたい。 早速ググってみると、システム設定>マスターデータ管理>mtb_authorityでメンバーを追加し、admin_contents.cssに… Read More
  • 【ECCUBE】バナーやプラグインのクリック数を調べるバナーを貼ったけど、どれ位クリックされてるの?? 新着商品やニュース、最近売れた商品やランキング等、販促系プラグインを色々入れてみたけど、どのプラグインが効果あるの?? アナリティクスで解析しても、どのキーワードで検索されたか、どこから来たか、どの商品が人気かはわかるけど、自分たちの作ったバナーや… Read More
  • EC CUBE3のインストール(β版)β版のECCUBE3を macのローカル環境(MAMP Mysql)へインストールしてみます。 コマンドラインを立ち上げ 下記コマンドを打ち込んでgithubからeccbe3をクローンする。 今回はローカルで動かすので、MAMPのhtdocsフォルダにダウンロード。 git clone http:/… Read More
  • 【EC-CUBE】最近購入された商品ブロック追加プラグインを高速化EC-CUBEのDBログファイルを見てみる。 ん、遅い。何かが遅い。 このSQLが遅い。 SQL: SELECT dtb_order_detail.product_id, dtb_order_detail.product_name, dtb_order.create_date, dtb_order.… Read More

0 コメント:

コメントを投稿