MENU

[ロマプリ様]ジーニーサーチ

目次

概要

2024年5月に導入した、サイト内検索ツール「ジーニーサーチ」の設定や解説をします。

※実際に使用した機能に限ります。

環境

■導入サイトのURL
 https://www.romapri.com/

■サイト分類
 ECサイト

■ECシステム
 future-shop(連携機能を使用)

機能解説

「ジーニーサーチ」には大まかに2種類の機能があります。

機能① ポップリンク

説明

ポップリンクは、入力アシスト機能、商品検索機能、商品レコメンド機能を提供するWebサービスです。

ポップリンクを導入したWebページでは、検索ボックスに入力された文字を元に、少ない操作で商品ページへ到達することができます。

https://docs.geniee-search.net/poplink/service_description/

実際の画面 PC / SP

機能② ポップファインド

説明

ポップファインドは、コーポレートサイトやECサイト向けに検索機能やレコメンド機能を提供するWebサービスです。

ポップファインドを導入したWebページでは、検索窓で入力したキーワードで検索された検索結果を適切に表示し少ない操作でWebコンテンツへ到達することができます。また、キーワード検索だけでなく、特定の属性を持つカテゴリ等の検索結果を表示するWebページにもご使用いただくことでサイトの検索性を強化し、Webコンテンツへの到達性の向上を支援します。

https://docs.geniee-search.net/popfind/service_description/

ドキュメントには、2つの導入ガイド(ECサイト検索 / 企業サイト検索)が存在しますが、
今回導入したのは、「ECサイト検索」になります。

実際の画面 PC / SP

各社導入事例

公式サイト導入事例ページ

https://www.bsearchtech.com/casestudy/

今回の導入にあたって、主に参考にしたサイト

・NY.ONLINE
 https://www.ny-onlinestore.com/shop/default.aspx?common=true

・暮らしのデザイン
 https://www.kurashi-ec.jp/

・ブルーノオンライン
 https://bruno-onlineshop.com/

・ダーツショップMAXIM
 https://www.maximnet.co.jp/

・ハニーズ
 https://www.honeys-onlineshop.com/shop/default.aspx

・プレミアムバンダイ
 https://p-bandai.jp/

・オフィスコム
 https://www.office-com.jp/

・SABON
 https://www.sabon.co.jp/

導入方法

future-shopとの連携

連携作業については、ジーニーサーチ様にて対応したため、キノスラでは未対応です。

機能の導入(ポップリンク)

導入時、デモページ

https://pages.poplink.jp/8f65f0b1-b6f6-4238-a8b8-4f3e1bf559e5.html?q=&p=1&c=20&o=wordscore1%3Adesc%2Cadditional_sort1%3Adesc%2Csort%3Aasc%2Cscore%3Adesc%2Cadditional_sort2%3Adesc%2Cwordscore9%3Adesc&r=&ro=&g=y&charset=UTF-8

導入ページ

ヘッダー / サイドメニュー
https://www.romapri.com/

サイドナビ
https://www.romapri.com/f/search

関連ファイル

https://www.romapri.com/js/search_results.js
※「システムの起動タグ」を記述したファイル

https://www.romapri.com/js/search_results-csvImport.js
※「各formの設定」や「レイアウト変更」などを記述したファイル

導入手順-1(実装編)

検索窓(フォーム)の作成
例:

<form class="" method="get" action="search.html">
  <input type="text" name="q" id="q" value="" placeholder="検索キーワード">
  <input type="submit" name="" value="検索">
</form>

 設置ルール:
 ・input要素のnameはq固定
 ・form要素のmethodはget固定
 ・form要素のactionに検索結果画面URLを指定

 ※同一ページ内に、複数のform(ジーニー用)が存在させる場合、idが重複しないようにする。
 →header / sp時のみ表示させるform など、検証画面上で確認できる、
  コメントアウトされていないformすべてが対象となる。コンテンツ内外は問わない。

検索窓(フォーム)の起動
inputIdの値に、追加したいformのidを追加する。

例:
search_results.js

var popfindConf = popfindConf || {};
popfindConf["data-popfind"] = {
    uid: "~", // 商品検索 (ポップファインド) UID (本番環境)
    // uid: "~", // 商品検索 (ポップファインド) UID (検証環境)
    inputId: "q,q02,q03,q04",
};

導入手順-2(応用編)

ドキュメントページ
https://docs.geniee-search.net/poplink/technical_reference/

■フォームごとの設定
フォームのidごとに設定が必要。
(idを「,」で連結させることができなかったため)
例:
search_results-csvImport.js

{
    uid: "~", // 画像付きサジェスト(ポップリンク) UID (本番環境)
    // uid: "~", // 画像付きサジェスト(ポップリンク) UID (検証環境)
    target: "#q02",
}

■レイアウト変更
https://docs.geniee-search.net/poplink/technical_reference/#device_type_reference

例:
search_results-csvImport.js

{
    uid: "~", // 画像付きサジェスト(ポップリンク) UID (本番環境)
    // uid: "~", // 画像付きサジェスト(ポップリンク) UID (検証環境)
    target: "#q02",
    deviceType: { desktop: 'pc022', mobile: 'sphs' },
}

機能の導入(ポップファインド)

導入ページ

https://www.romapri.com/f/search
※フリーページにて導入

関連ファイル

https://www.romapri.com/js/search_results.js
※「システムの起動タグ」や「フックが必要なスクリプト」などを記述したファイル

https://www.romapri.com/js/search_results-csvImport.js
※「絞り込み情報」や「システムで出力されるテキストのテキスト変更」などを記述したファイル

導入手順-1(準備編)

ドキュメントページ
https://docs.geniee-search.net/popfind/popfind/prepare

■データファイルの作成、設置 / 各種ファイルの作成とアップロード
 データ作成者が作成します。
 今回の対応では、クライアント様にて対応しているため、
 詳細は省きます。


■リソースファイルの作成、設置

 表示する検索結果一覧の操作に関するファイル。
 下記の様に複数存在する。
 ・並び順リソースファイル(必須)
 ・メッセージリソースファイル(表示メッセージを変更する場合)
 ・属性リソースファイル(属性絞り込み機能を使用する場合)
 など

 ドキュメントページでは、複数のファイルに分けて紹介されているが、
 今回の対応では、すべて同一ファイルに記述している。(search_results-csvImport.js)

導入手順-2(実装編)

ドキュメントページ
https://docs.geniee-search.net/popfind/popfind/implementation/

検索結果画面の作成

◇head要素内の修正
・並び順リソースファイルの読み込み(search_results-csvImport.js)

・CSSファイルの読み込み(popfind2.css / popfind_base.css / popfind.css)
 3種類の中から一つを選んで設置する。
 今回の対応では、popfind.cssを使用した。(デザインとの互換性を配慮)

・meta要素の記述
 meta要素を追加し、検索結果画面自体がインデックスされることを防ぎます
 <meta name=”robots” content=”noindex,nofollow”>

◇body要素内の修正
 ・ポップファインドコンポーネント(ソート機能)の追加
 例:

<div data-popfind="searchstatus"></div>
<div data-popfind="attributes-group2"></div>
<div data-popfind="attributes-group3"></div>
<div data-popfind="attributes-group4"></div>
<div data-popfind="attributes-group7"></div>
<div data-popfind="attributes-group8"></div>
<div data-popfind="attributes-group9"></div>
<div data-popfind="attributes-group10"></div>
<div data-popfind="attributes-group5"></div>
<div data-popfind="attributes-group6"></div>

 ・ポップファインド設定タグ・起動タグの追加
  ※poptag は必ず、popfindの設定タグよりも後に発火するように設置する
   →前に設置しても表示されるが、ハードリフレッシュ(Shift + F5 など)時に一覧が表示されなくなる。

例:
search_results.js

var popfindConf = popfindConf || {};
        popfindConf["data-popfind"] = {
            uid: "~", // 商品検索 (ポップファインド) UID (本番環境)
            // uid: "~", // 商品検索 (ポップファインド) UID (検証環境)
            inputId: "q",
            useGrouping: true,
};
<!-- poptag manager -->
    <script>
        // 起動タグの読込み
        (function () {
            var script = document.createElement('script');
            script.setAttribute('src', 'https://js.poplink.jp/15173ffbc8cc420c950f74441f3bb7a7u/poptagmanager.js?ts=' + Date.now());
            script.setAttribute('defer', true);
            document.head.appendChild(script);
        })();
    </script>
    <!-- end: poptag manager -->

導入手順-3(応用編)

ドキュメントページ
https://docs.geniee-search.net/popfind/popfind/advanced/

今回の対応で使用した応用処理の一部を紹介します。

◇ポップファインドの発火タイミングに合わせて処理を行う。
https://docs.geniee-search.net/popfind/popfind/reference/hook/

例:
search_results.js

// 全コンポーネントが起動されたときに発火
    allActivateHook: function() {
        priceSlider();
    },
    // 全コンポーネントが表示完了したときに発火
    allUpdateHook: function() {
        firstsetTag();
    },
    asyncActivateHook(){
        priceSliderFocus();
    },
    // 非同期モードでの状態変更後に発火
    allAsyncUpdateHook(count){ //allAsyncUpdateHook(count){で回数確認可能
        console.log(`非同期操作が完了しました。現在のカウント: ${count}`);
        pageFirstLastBtn();
    }

◇キーワードランキング機能の実装
表示させたい箇所 例:

<div data-kwranking="keywordranking"></div>

表示に必要な設定 例:
search_results-csvImport.js

// キーワードランキングリソース
var popfindConf = popfindConf || {};
popfindConf["data-kwranking"] = {
    uid: "~", // キーワードランキング UID (本番環境)
    // uid: "~", // キーワードランキング UID (検証環境)
    keywordRankingResource: [
        {
            group: { "label": " "},
            count: 8,
            location: "https://www.romapri.com/f/search"
        }
    ],
};

この記事を書いた人

目次