クイックビューを使用したカスタムポップアップの作成 using-quickviews-to-create-custom-pop-ups

CAUTION
AEM 6.4 の拡張サポートは終了し、このドキュメントは更新されなくなりました。 詳細は、 技術サポート期間. サポートされているバージョンを見つける ここ.

e コマースエクスペリエンスではデフォルトのクイックビューが使用され、ポップアップに購入を促す商品情報が表示されます。ただし、このようなポップアップにカスタムコンテンツが表示されるように設定できます。使用しているビューアに応じて、ユーザーはホットスポット、サムネール画像、画像マップのいずれかをクリックして、情報や関連コンテンツを表示できます。

クイックビューは、Dynamic Media の以下のビューアでサポートされています。

  • インタラクティブ画像(クリック可能なホットスポット)
  • インタラクティブビデオ(ビデオの再生中にクリック可能なサムネール画像)
  • カルーセルバナー(クリック可能なホットスポットまたは画像マップ)

各ビューアの機能は異なりますが、サポートされる 3 つすべてのビューアでクイックビューの作成手順は同じです。

クイックビューを使用してカスタムポップアップを作成するには:

  1. アップロードしたアセット用にクイックビューを作成します。

    通常、クイックビューは、使用しているビューアで使用するアセットを編集するのと同時に作成します。

    table 0-row-2 1-row-2 2-row-2 3-row-2 html-authored no-header
    使用しているビューア クイックビューを作成するために実行する手順
    インタラクティブ画像 画像バナーへのホットスポットの追加.
    インタラクティブビデオ ビデオへのインタラクティブ機能の追加.
    カルーセルバナー バナーへのホットスポットまたは画像マップの追加.
  2. ビューアの埋め込みコードを取得して、Web サイト内にビューアを統合します。

    table 0-row-2 1-row-2 2-row-2 3-row-2 html-authored no-header
    使用しているビューア ビューアを Web サイトに統合するために実行する手順
    インタラクティブ画像 インタラクティブ画像の Web サイトへの統合.
    インタラクティブビデオ インタラクティブビデオの Web サイトへの統合.
    カルーセルバナー Web サイトページへのカルーセルバナーの追加.
  3. 使用しているビューアが、クイックビューの使用方法を認識する必要があります。

    このために、ビューアは QuickViewActive というハンドラーを使用します。

    Web ページでインタラクティブ画像用に以下のサンプル埋め込みコードを使用しているとします。

    chlimage_1-291

    ハンドラーは setHandlers を使用してビューアに読み込まれます。

    *viewerInstance*.setHandlers({ *handler 1*, *handler 2*}, ...

    上記のサンプル埋め込みコードの例を使用すると、以下のようなコードになります。

    code language-xml
    s7interactiveimageviewer.setHandlers({
        quickViewActivate": function(inData) {
            var sku=inData.sku;
            var genericVariable1=inData.genericVariable1;
            var genericVariable2=inData.genericVariable2;
           loadQuickView(sku,genericVariable1,genericVariable2);
        }
    })
    

    setHandlers() メソッドについて詳しくは、以下を参照してください。

    • インタラクティブ画像ビューア: setHandlers
    • インタラクティブビデオビューア: setHandlers
  4. 次に、quickViewActivate ハンドラーを設定する必要があります。

    quickViewActivate ハンドラーは、ビューアのクイックビューを制御します。 このハンドラーには、クイックビューで使用する変数のリストと関数呼び出しが含まれています。埋め込みコードは、クイックビューの SKU 変数セット用のマッピングと、サンプルの loadQuickView 関数呼び出しを提供しています。

    変数マッピング Web ページで使用する変数を SKU 値とクイックビューに含まれる一般変数にマッピングします。

    var *variable1*= inData.*quickviewVariable*

    提供された埋め込みコードには、SKU 変数用のサンプルマッピングが含まれています。

    var sku=inData.sku

    以下のように、クイックビューからの追加変数もマッピングします。

    code language-none
    var <i>variable2</i>= inData.<i>quickviewVariable2</i>
     var <i>variable3</i>= inData.<i>quickviewVariable3</i>
    

    関数呼び出し ​ハンドラーには、クイックビューを機能させるために関数呼び出しも必要です。関数は、ホストページからアクセス可能であると想定されます。 埋め込みコードは、次のサンプル関数呼び出しを提供しています。

    loadQuickView(sku)

    このサンプル関数呼び出しは、関数 loadQuickView() が存在しアクセス可能であることが前提となります。

    quickViewActivate メソッドの詳細については、次を参照してください。

  5. 以下の操作を実行してください。

    • 埋め込みコードの setHandlers セクションのコメントを解除します。

    • クイックビューに含まれる追加の変数をマッピングします。

      • 変数を追加する場合は、loadQuickView(sku,*var1*,*var2*) 呼び出しを更新します。
    • ビューア外でページにシンプルな loadQuickView() 関数を作成します。

      例えば、以下により、ブラウザーのコンソールに sku の値が書き込まれます。

    code language-xml
    function loadQuickView(sku){
        console.log ("quickview sku value is " + sku);
    }
    
    • Web サーバーにテスト HTML ページをアップロードし、開きます。

      クイックビューからの変数がマッピングされ、関数呼び出しが追加された状態で、ブラウザーコンソールは提供されたサンプル関数を使用してブラウザーコンソールに変数値を書き込みます。

  6. これで、関数を使用してクイックビューでシンプルなポップアップを起動できるようになりました。以下の例では、ポップアップに DIV を使用しています。

  7. ポップアップの DIV を以下のようなスタイルにします。必要に応じて独自のスタイルを追加します。

    code language-xml
    <style type="text/css">
        #quickview_div{
            position: absolute;
            z-index: 99999999;
            display: none;
        }
    </style>
    
  8. HTML ページのボディにポップアップの DIV を配置します。

    要素の 1 つに、ユーザーがクイックビューを起動したときに sku 値で更新される ID が設定されます。 この例には、ポップアップを表示後に再び隠すための簡単なボタンも含まれています。

    code language-xml
    <div id="quickview_div" >
        <table>
            <tr><td><input id="btnClosePopup" type="button" value="Close"        onclick='document.getElementById("quickview_div").style.display="none"' /><br /></td></tr>
            <tr><td>SKU</td><td><input type="text" id="txtSku" name="txtSku"></td></tr>
        </table>
    </div>
    
  9. ポップアップの sku 値を更新する関数を追加します。手順 5 で作成したシンプルな関数を置き換えて、ポップアップを表示できるようにします。 を次のように設定します。

    code language-xml
    <script type="text/javascript">
        function loadQuickView(sku){
            document.getElementById("txtSku").setAttribute("value",sku); // write sku value
            document.getElementById("quickview_div").style.display="block"; // show popup
        }
    </script>
    
  10. Web サーバーにテスト用の HTML ページをアップロードして開きます。ユーザーがクイックビューを起動すると、ビューアにポップアップの DIV が表示されます。

  11. 全画面表示モードでカスタムポップアップを表示する方法

    インタラクティブビデオビューアなどの一部のビューアでは、全画面表示モードでの表示をサポートしています。ただし、前の手順で説明したポップアップを使用すると、全画面表示モード中はビューアの背後に表示されるようになります。

    標準モードと全画面表示モードの両方でポップアップを表示させるには、ビューアのコンテナにポップアップをアタッチします。それには、2 つ目のハンドラーメソッド initComplete を使用できます。

    initComplete ハンドラーは、ビューアの初期化後に起動します。

    code language-xml
    "initComplete":function() { code block }
    

    init() メソッドについて詳しくは、以下を参照してください。

    • インタラクティブ画像ビューア ‐ init
    • インタラクティブビデオビューア ‐ init
  12. 前の手順で言及したように、ビューアにポップアップをアタッチするには、以下のコードを使用します。

    code language-xml
    "initComplete":function() {
        var popup = document.getElementById('quickview_div');
        popup.parentNode.removeChild(popup);
        var sdkContainerId = s7interactivevideoviewer.getComponent("container").getInnerContainerId();
        var inner_container = document.getElementById(sdkContainerId);
        inner_container.appendChild(popup);
    }
    

    上記のコードでは、次の操作をおこないました。

    • カスタムポップアップを特定しました。
    • DOM から削除しました。
    • ビューアのコンテナを識別しました。
    • ビューアのコンテナにポップアップをアタッチしました。
  13. setHandlers コード全体は、次のようになります(インタラクティブビデオビューアを使用していました)。

    code language-xml
    s7interactivevideoviewer.setHandlers({
        "quickViewActivate": function(inData) {
            var sku=inData.sku;
            loadQuickView(sku);
    
        },
        "initComplete":function() {
            var popup = document.getElementById('quickview_div'); // get custom quick view container
            popup.parentNode.removeChild(popup); // remove it from current DOM
            var sdkContainerId = s7interactivevideoviewer.getComponent("container").getInnerContainerId();
            var inner_container = document.getElementById(sdkContainerId);
            inner_container.appendChild(popup);
        }
    });
    
  14. ハンドラーを読み込んだ後で、ビューアを初期化します。

    *viewerInstance.*init()

    :この例では、インタラクティブ画像ビューアを使用します。

    s7interactiveimageviewer.init()

    ホストページにビューアを埋め込んだ後で、init() を使用してビューアを起動する前に、ビューアインスタンスが作成され、ハンドラーが読み込まれていることを確認してください。

recommendation-more-help
4452738f-2bdf-4cd4-9b45-905a69d607ad