Live Searchで成功するように設定
Adobe Commerce Live SearchとCatalog Serviceは連携して、パフォーマンスが高く、適切で、直観的な検索ソリューションを提供し、お客様が必要なものをすばやく正確に見つけられるようにします。 具体的には、Catalog Serviceは、使用するLive SearchなどのSaaS サービス用にカタログデータを表示します。
この記事では、Live Searchを使用してCatalog Serviceを実装するための手順を説明します。
オーディエンス
この記事は、Adobe Commerce インスタンスのインストールと設定を担当する開発者向けまたはシステム インテグレーターを対象としています。
要件定義
- Adobe Commerce 2.4.4以降
- PHP 8.1、8.2、8.3、または8.4
- Composer
- cron ジョブとインデクサーの実行
重要な更新
- Live Search 3.0.2現在、Catalog Service拡張機能はインストールにバンドルされています。
サポートされているプラットフォーム
- Adobe Commerce クラウド版(ECE) : 2.4.4以降
- Adobe Commerce オンプレミス(EE) : 2.4.4以降
ワークフローの概要
Live Searchをオンボーディングするには、次の操作が必要です。
- 拡張機能を インストール Live Search
- API キーを設定
- カタログ データの同期
- カタログ データがエクスポートされたことを確認
- データを設定
- 接続をテスト
- イベントがデータをキャプチャしていることを検証します
- ストアフロントのカスタマイズ
1. Live Search拡張機能をインストールする install
Live Searchは、Adobe Marketplace ~ Composerの拡張機能としてインストールされています。 Live Searchをインストールして設定すると、Adobe CommerceはSaaS サービスとの検索データとカタログデータの共有を開始します。 この時点で、管理者のユーザーは、検索ファセット、類義語、マーチャンダイジングルールを設定、カスタマイズ、管理できます。
新しいCommerce インスタンスにLive Searchをインストールする場合は、次の手順に従います。
-
cron ジョブ および インデクサーが実行中であることを確認します。
-
Composerを使用して、ライブ検索モジュールをプロジェクトに追加します。
code language-bash composer require magento/live-search --no-update -
依存関係を更新し、拡張機能をインストールします。
code language-bash composer update magento/live-search --with-dependencies -
OpenSearchと関連モジュールを無効にし、Live Searchをインストールします。 OpenSearchとLive Searchの両方を同じCommerce インスタンスで有効にすることはできません。
code language-bash bin/magento module:disable Magento_Elasticsearch Magento_Elasticsearch8 Magento_Elasticsearch7 Magento_OpenSearch Magento_ElasticsearchCatalogPermissions Magento_InventoryElasticsearch Magento_ElasticsearchCatalogPermissionsGraphQlElasticsearchは、ストアフロントからの検索要求を引き続き管理しますが、Live Search サービスはカタログデータを同期し、バックグラウンドで製品をインデックス化します。
-
アップデートのインストール。
code language-bash bin/magento setup:upgrade -
次の インデクサーが「スケジュールで更新」に設定されていることを確認します。
- 製品フィード
- 製品バリアントフィード
- カタログ属性フィード
- 製品価格フィード
- ScopesのWeb サイトデータフィード
- スコープ顧客グループ データフィード
- カテゴリフィード
- カテゴリ権限フィード
インデクサーを検証したら、次の手順はAPI キーの設定です。
既存のCommerce インスタンスにLive Searchをインストールする場合は、次の手順に従います。
-
cron ジョブ および インデクサーが実行中であることを確認します。
-
Composerを使用して、ライブ検索モジュールをプロジェクトに追加します。
code language-bash composer require magento/live-search --no-update -
依存関係を更新し、拡張機能をインストールします。
code language-bash composer update magento/live-search --with-dependencies -
ストアフロントの検索結果を提供するLive Search モジュールを無効にします。
code language-bash bin/magento module:disable Magento_LiveSearchAdapter Magento_LiveSearchStorefrontPopover Magento_LiveSearchProductListingElasticsearchは、ストアフロントからの検索要求を引き続き管理しますが、Live Search サービスはカタログデータを同期し、バックグラウンドで製品をインデックス化します。
-
アップデートのインストール。
code language-bash bin/magento setup:upgrade -
次の インデクサーが「スケジュールで更新」に設定されていることを確認します。
- 製品フィード
- 製品バリアントフィード
- カタログ属性フィード
- 製品価格フィード
- ScopesのWeb サイトデータフィード
- スコープ顧客グループ データフィード
- カテゴリフィード
- カテゴリ権限フィード
-
Live Search拡張機能を有効にし、OpenSearch (Magento ElasticsearchおよびOpenSearch モジュール)を無効にします。
code language-bash bin/magento module:enable Magento_LiveSearchAdapter Magento_LiveSearchStorefrontPopover Magento_LiveSearchProductListingcode language-none bin/magento module:disable Magento_Elasticsearch Magento_Elasticsearch6 Magento_Elasticsearch7 Magento_Elasticsearch8 Magento_OpenSearch Magento_ElasticsearchCatalogPermissions Magento_InventoryElasticsearch Magento_ElasticsearchCatalogPermissionsGraphQlnote note NOTE OpenSearchとLive Searchの両方を同じCommerce インスタンスで有効にすることはできません。 disable コマンドには、OpenSearchをサポートするCommerce モジュールのリストが含まれます。 Commerce インスタンスにモジュールがインストールされていない場合は、 module does not existエラーが表示されます。 -
アップデートのインストール。
code language-bash bin/magento setup:upgrade
インデクサーを検証したら、次の手順はAPI キーの設定です。
2. API キーの設定 configure
Live SearchをAdobe Commerceのインストールに接続するには、Adobe Commerce API キーと関連する秘密鍵が必要です。 API キーは、開発者またはシステム インテグレーターと共有できるCommerce ライセンス所有者のアカウントで生成および管理されます。 開発者は、ライセンス所有者に代わってSaaS データスペースを作成および管理できます。 既に一連のAPI キーがある場合は、再生成する必要はありません。
API キーの設定方法については、Commerce Services Connectorの記事を参照してください。
3. カタログデータの同期 sync
Live Searchは、カタログデータをAdobeのSaaS インフラストラクチャに移動します。 データにインデックスが付けられ、このインデックスから検索結果がストアフロントに直接配信されます。 サイズと複雑さによっては、インデックス作成に30分から数時間かかる場合があります。
カタログデータのSaaS サービスへの初期同期を開始するには、次のコマンドを順番に実行します。
bin/magento saas:resync --feed productattributes
bin/magento saas:resync --feed products
bin/magento saas:resync --feed scopesCustomerGroup
bin/magento saas:resync --feed scopesWebsite
bin/magento saas:resync --feed prices
bin/magento saas:resync --feed productoverrides
bin/magento saas:resync --feed variants
bin/magento saas:resync --feed categories
bin/magento saas:resync --feed categoryPermissions
これらのコマンドを実行すると、カタログデータのSaaS サービスへの初期同期が開始されます。
同期の進行状況を監視
同期の進行状況を監視するには、 データ管理ダッシュボード を使用します。 このダッシュボードは、ストアフロント上の商品データの可用性に関する貴重なインサイトを提供し、顧客に迅速に表示できるようにします。
Commerce CLIとデータ書き出し拡張機能ログを使用して、同期コマンドを実行し、同期プロセスをトラブルシューティングすることもできます。
今後の製品アップデート
初期同期後、ストアフロント検索で製品の増分更新が利用可能になるまでに、最大15分かかることがあります。 詳しくは、インデックス作成ドキュメントの「製品アップデートのストリーミング 」を参照してください。
4. データが書き出されたことを確認する verify
カタログデータがAdobe Commerceから書き出され、Live Searchと同期されているかどうかを確認するには、いくつかのオプションがあります。
-
次の表のエントリを探します。
cde_products_feedcde_product_attributes_feed
note note NOTE table does not existエラーが発生した場合は、catalog_data_exporter_productsおよびcatalog_data_exporter_product_attributesテーブルのエントリを探します。 これらのテーブル名は、4.2.1より前のLive Search バージョンで使用されます。 -
デフォルトクエリでGraphQL playgroundを使用して(詳細はGraphQL referenceを参照)、次の点を確認します。
- 返品商品数は、ストアビューに期待した数に近いです。
- ファセットが返されます。
追加のヘルプについては、サポート サポート サポート技術情報の「Live Search カタログが同期されていません」を参照してください。
5. データの設定 configuredata
商品データを正しく設定すれば、顧客にとって適切な検索結果を提供できます。 この節では、製品リストウィジェットを有効にして、カテゴリを割り当てます。
製品リストウィジェットの有効化
Live Search 4.0.0以降をインストールすると、製品リストウィジェットはデフォルトで有効になります。 ウィジェットが有効になっている場合、検索結果には別のUI コンポーネントが使用され、カテゴリでは製品リストページを参照します。 このUI コンポーネントは、Catalog Service APIへの直接呼び出しを行い、応答時間が短縮されます。
4.0.0以降より古いLive Search バージョンを使用している場合は、製品リストウィジェットを手動で有効にする必要があります。
-
管理者から、Stores > Settings>Configurationに移動します。
-
Live Searchで、Storefront Featuresを選択します。
-
Enable Product Listing Widgetsを
Yesに設定します。
この設定を変更すると、メッセージ Page cache is invalidatedが表示されます。 変更内容を保存するには、Magento キャッシュをフラッシュする必要があります。
-
次のいずれかの操作を行って、 キャッシュ管理 ページにアクセスします。
- ワークスペースの上にあるメッセージのCache Management リンクをクリックします。
- 管理者 サイドバーで、System > Tools>Cache Managementに移動します。
-
設定 Cache Typeを選択し、Flush Magento Cacheをクリックします。
ストアフロントへの変更は、キャッシュをフラッシュした後すぐに行われます。
カテゴリの割り当て
Live Searchに返される製品は、 カテゴリ に割り当てる必要があります。 例えば、Lumaでは、製品は「男性」、「女性」、「ギア」などのカテゴリに分類されます。 「トップス」、「ボトムス」、「ウォッチ」には、サブカテゴリーも設定されます。 これらのカテゴリの割り当てにより、フィルタリング時の精度が向上します。
6. 接続のテスト test
SaaSにカタログデータを取り込んだ状態で、テストして次のシナリオで商品データが返されるようにします。
- Search ボックスが正しく結果を返します
- カテゴリ参照が正しく結果を返す
- ファセットは、検索結果ページのフィルターとして使用できます
すべてが正しく動作すれば、Live Searchはインストールされ、接続され、使用する準備ができています。
ストアフロントで問題が発生した場合は、var/log/system.log ファイルで、API通信の失敗またはサービス側のエラーを確認してください。
ファイアウォール経由でLive Searchを許可するには、commerce.adobe.ioをファイアウォール許可リストに加えるに追加します。
7. イベントがデータをキャプチャしていることを確認する capture
サイトにデプロイされたストアフロントイベントが機能していることを確認します。 このチェックは、ヘッドレス実装では特に重要です。
- に必要な イベント Live Searchを確認してください。
- ライブ検索ダッシュボード が、実稼動以外の環境のデータを表示していることを確認します。
- イベントコレクションを確認。
8. ストアフロント向けにカスタマイズ customize
Live Search拡張機能がインストールされ、データが同期され、検証され、設定されました。 次のステップは、Live Search ウィジェットがストアのルックアンドフィールに準拠していることを確認することです。
必要に応じてカスタム CSS ルールを定義することで、ポップオーバーおよびPLP ウィジェットのスタイルを設定できます。 ポップオーバー要素のスタイル設定および製品リストページウィジェット を参照してください。
ウィジェットの機能を拡張する場合は、各ウィジェットのソースコードを公開リポジトリで利用できます。
この場合、JavaScriptを独自のニーズに合わせてカスタマイズし、CDNでカスタムコードをホストできます。 このカスタムスクリプトはLive Search サービスと通信し、通常と同じように結果を返します。これにより、ウィジェットの機能を制御できます。
Live Searchを更新中
Live Searchを更新する前に、Composerを使用してインストールされているLive Searchのバージョンを確認してください。
composer show magento/module-live-search | grep version
Live Searchを更新するには、コマンドラインから次のコマンドを実行します。
composer update magento/live-search --with-dependencies
3.1.1から4.0.0などのメジャーバージョンに更新するには、プロジェクトのルート Composer .json ファイルを次のように編集します。
-
現在インストールされている
magento/live-searchバージョンが3.1.1以下で、バージョン4.0.0以降にアップグレードする場合は、アップグレードする前に次のコマンドを実行します。code language-bash bin/magento module:enable Magento_AdvancedSearch現在インストールされている
magento/live-searchバージョンについて詳しくは、次のコマンドを実行してください。code language-bash composer show magento/live-search -
ルート
composer.jsonファイルを開き、magento/live-searchを検索します。 -
「
require」セクションで、バージョン番号を次のように更新します。code language-json "require": { ... "magento/live-search": "^4.0", ... } -
composer.jsonを保存します。 次に、コマンドラインから次のコマンドを実行します。code language-bash composer update magento/live-search --with-dependencies
Live Searchをアンインストールしています
Live Searchをアンインストールするには、 モジュールのアンインストール を参照してください。
Live Search個のパッケージ
Live Search拡張機能は、次のパッケージで構成されています。
module-live-searchmodule-live-search-adapter- カテゴリ参照 – ストアフロント 上部ナビゲーション から検索サービスへのリクエストをルーティングします。
- グローバル検索 – リクエストを クイック検索 フィールドからLive Search サービスにルーティングします。 クイック検索フィールドは、ストアフロントページの右上隅にあります。
module-live-search-storefront-popoverLive Search依存関係
Composer拡張機能をインストールするためのLive Search メタパッケージには、次のモジュール依存関係が含まれています。
magento/module-saas-catalogmagento/module-saas-categorymagento/module-saas-category-permissionsmagento/module-saas-product-overridemagento/module-saas-product-variantmagento/module-saas-pricemagento/module-saas-scopesmagento/module-bundle-product-data-exportermagento/module-catalog-inventory-data-exportermagento/module-catalog-url-rewrite-data-exportermagento/module-configurable-product-data-exportermagento/module-parent-product-data-exportermagento/module-gift-card-product-data-exportermagento/module-bundle-product-override-data-exporterdata-servicesservices-id
高度な概念
次の節では、Live SearchおよびCatalog Serviceを使用する場合の、より高度なトピックについて説明します。
エンドポイント
Live Searchはhttps://catalog-service.adobe.io/graphqlのエンドポイントを通じて通信します。
Live Searchは完全な製品データベースにアクセスできないため、Live Search GraphQLとCommerce core GraphQL APIには完全なパリティがありません。
Adobeでは、SaaS API、特にカタログサービスエンドポイントを直接呼び出すことをお勧めします。
- Commerce データベース/Graphql プロセスをバイパスして、パフォーマンスを向上させ、プロセッサの負荷を軽減します
- Catalog Service フェデレーションを利用して、単一のエンドポイントからLive Search、Catalog Service、Product Recommendationsを呼び出します。
一部のユースケースでは、製品の詳細や同様のケースについては、Catalog Serviceに電話することをお勧めします。 詳しくは、refineProductを参照してください。
カスタムヘッドレス実装がある場合は、Live Searchの参照実装を確認してください。
検索アダプタ、Luma ウィジェット、AEM CIF ウィジェットなどの標準コンポーネントを使用しない場合、ユーザーインタラクションデータの自動収集はデフォルトでは機能しません。 Adobe AIでは、収集したそれらのデータを使用して、インテリジェントなマーチャンダイジングとパフォーマンス追跡を実現できます。 この問題を解決するには、ヘッドレス方式でこのデータ収集を実装するためのカスタムソリューションを開発する必要があります。
最新バージョンのLive Searchは既にCatalog Serviceを使用しています。
言語サポート
Live Search ウィジェットは次の言語をサポートしています:
ウィジェットでCommerce管理者言語設定がサポートされている言語と一致していることが検出された場合、デフォルトはその言語になります。 それ以外の場合、ウィジェットのデフォルトは英語になります。 管理者で、言語設定を設定するには、Stores> Settings >Configuration > General> Country Optionsに移動します。
また、管理者は検索インデックス の言語を設定して、より良い検索結果を表示できるようにすることもできます。
Widget コードリポジトリ
製品リストページウィジェットとLive Search フィールドウィジェットのコードは、GitHubからダウンロードできます。
このコードにアクセスできる開発者は、その仕組みや見た目を完全にカスタマイズすることができます。 独自のサーバーでコードをホストしますが、Live Search サービスを使用します。
データ書き出し拡張機能
Live Searchが有効になると、Data Export拡張機能によって、Commerce アプリケーションとLive Searchの間でCommerce データが同期されます。 このプロセスにより、最新のCommerceデータがストアフロントで利用可能になります。 管理者では、データ管理ダッシュボードを使用して同期ステータスを確認できます。 Commerce CLIとログを使用して、データ書き出しプロセスを管理し、トラブルシューティングできます。 詳しくは、 データ書き出しガイド を参照してください。
Inventory management
Live Searchは、CommerceのInventory management機能をサポートしています(以前はマルチSource インベントリ(MSI)と呼ばれていました)。 完全なサポートを有効にするには、依存関係モジュール をバージョン 102.2.0以降に更新commerce-data-exportする必要があります。
Live Searchは、商品がInventory management内で利用できるかどうかを示すブール値を返しますが、在庫を持つソースに関する情報は含まれません。
価格インデクサー
Live Searchのお客様はSaaS価格インデクサーを使用できます。これにより、価格変更の更新と同期時間を短縮できます。
価格サポート
Live Search個のウィジェットは、Adobe Commerceでサポートされているほとんどの価格タイプをサポートしていますが、すべての価格タイプをサポートしているわけではありません。
現在、基本価格がサポートされています。 サポートされていない高度な価格は次のとおりです。
- コスト
- 最低広告価格
より複雑な価格計算については、API メッシュ を参照してください。
価格フォーマットは、Commerce インスタンス内のロケール設定をサポートしています:Stores > Settings > Configuration > General > General > Local Options > Locale.
ヘッドレスストアフロントのサポート
オプションとして、ストアフロントの行動データ収集に必要なフィールドを含めるように、アプリケーションの既存のGraphQL カバレッジを拡張するmodule-data-services-graphql モジュールをインストールする必要がある場合があります。
composer require magento/module-data-services-graphql
このモジュールは、GraphQL クエリにコンテキストを追加します。
dataServicesStorefrontInstanceContextdataServicesMagentoExtensionContextdataServicesStoreConfigurationContext
B2B サポート
Live SearchはB2B機能をサポートしており、さらに制限があります。
PWAサポート
Live SearchはPWA Studioで動作しますが、他のCommerceの実装と比較すると、若干の違いが見られる場合があります。 Veniaでは検索や製品リストページなどの基本的な機能は機能しますが、Graphqlの一部の順序付けが正しく機能しない場合があります。 パフォーマンスの違いもあります。
- 現在のLive SearchのPWAの実装では、ネイティブのCommerce ストアフロントを使用してLive Searchよりも多くの検索結果を返すには、より多くの処理時間が必要です。
- PWAのLive Searchは イベント処理をサポートしていません。 そのため、検索レポートやインテリジェントなマーチャンダイジングは、PWAのストアフロントでは機能しません。
- PWA Studioを使用する場合、GraphQLでは
description、name、short_descriptionでの直接フィルタリングはサポートされていませんが、これらのフィールドは、より一般的なフィルターで返すことができます。
PWA StudioでLive Searchを使用するには、インテグレーターも次の操作を行う必要があります。
-
livesearch-storefront-utilsをインストールします。
-
environmentIdオブジェクトにstoreDetailsを設定します。code language-javascript const storeDetails: StoreDetailsProps = { environmentId: <Storefront_ID>, websiteCode: "base", storeCode: "main_website_store", storeViewCode: "default", searchUnitId: searchUnitId, config: { minQueryLength: 5, pageSize: 8, currencySymbol: "$", }, };
Cookie
Live Searchは、検索機能を向上させるためにユーザーインタラクションデータを収集し、この情報をブラウザーのCookieに保存します。 Cookie制限が有効になっている場合、このデータ収集にはユーザーの同意が必要です。 Live SearchとProduct Recommendationsは、同じデータ収集メカニズムとCookie処理を共有しています。 Cookieの制限とプライバシーコンプライアンスについて詳しくは、Cookieの制限を処理を参照してください。