[僅限PaaS]{class="badge informative" title="僅適用於雲端專案(Adobe管理的PaaS基礎結構)和內部部署專案的Adobe Commerce 。"}
設定以透過Live Search成功
Adobe Commerce Live Search與Catalog Service共同合作,提供效能、相關且直覺式的搜尋解決方案,讓您的客戶快速找到他們所需的專案。 具體來說,Catalog Service會呈現您的目錄資料以供SaaS服務使用,例如Live Search。
本文提供了使用 Catalog Service進行實施Live Search的分步說明。
對象
本文適用於團隊上負責安裝和配置 Adobe Systems Commerce 執行個體的開發人員或系統集成商。
需求
- Adobe Commerce 2.4.4+
- PHP 8.1、8.2或8.3版
- Composer
支援平台
- 雲端上的Adobe Commerce (ECE) : 2.4.4+
- Adobe Commerce內部部署(EE) : 2.4.4+
工作流程概觀
從高層面來看,上線Live Search需要您:
1.安裝Live Search擴充功能
已從Adobe Marketplace透過Composer將Live Search安裝為擴充功能。 安裝並設定Live Search後,Adobe Commerce會開始與SaaS服務共用搜尋和目錄資料。 此時,管理員 使用者可以設定、自訂及管理搜尋Facet、同義字及銷售規則。
-
note important IMPORTANT 鑑於Elasticsearch 7於2023年8月宣佈終止支援,建議所有Adobe Commerce客戶移轉至OpenSearch 2.x搜尋引擎。 如需在產品升級期間移轉搜尋引擎的相關資訊,請參閱_升級指南_中的移轉至OpenSearch。 -
從Adobe Marketplace下載
live-search
套件。 -
從命令列執行以下命令:
code language-bash composer require magento/live-search
如果您正在將Live Search擴充功能新增至 新的 Adobe Commerce安裝,請執行以下命令以暫時停用OpenSearch和相關模組,並安裝Live Search。 然後,繼續步驟4。
code language-bash bin/magento module:disable Magento_Elasticsearch Magento_Elasticsearch7 Magento_OpenSearch Magento_ElasticsearchCatalogPermissions Magento_InventoryElasticsearch Magento_ElasticsearchCatalogPermissionsGraphQl
如果您正在將Live Search擴充功能新增至 現有 Adobe Commerce安裝,請執行以下動作以停用提供店面搜尋結果的Live Search模組。 然後,繼續步驟4:
code language-bash bin/magento module:disable Magento_LiveSearchAdapter Magento_LiveSearchStorefrontPopover Magento_LiveSearchProductListing
Elasticsearch會繼續從店面管理搜尋要求,而Live Search服務會在背景同步目錄資料和索引產品。
-
執行下列動作:
code language-bash bin/magento setup:upgrade
-
確認下列索引子已設定為「依排程更新」:
- 產品摘要
- 產品變體摘要
- 目錄屬性摘要
- 產品價格摘要
- 範圍網站資料摘要
- 範圍客戶群組資料摘要
- 類別摘要
- 類別許可權摘要
-
如果您正在新的Commerce執行個體上安裝Live Search,則您已完成,可以跳至2。 設定API金鑰區段。 如果您要將即時搜尋安裝至現有的Commerce執行個體,請繼續進行下一個步驟。
-
執行以下命令以啟用Live Search延伸、停用OpenSearch並執行
setup
。code language-bash bin/magento module:enable Magento_LiveSearchAdapter Magento_LiveSearchStorefrontPopover Magento_LiveSearchProductListing
code language-bash bin/magento module:disable Magento_Elasticsearch Magento_Elasticsearch6 Magento_Elasticsearch7 Magento_ElasticsearchCatalogPermissions Magento_InventoryElasticsearch Magento_ElasticsearchCatalogPermissionsGraphQl
code language-bash bin/magento setup:upgrade
安裝Live Search測試版
此Beta版支援productSearch
查詢的三個新功能:
-
分層搜尋 — 在另一個搜尋內容中搜尋 — 使用此功能,您最多可以執行兩個層級的搜尋來搜尋您的搜尋查詢。 例如:
- 第1層搜尋 — 搜尋"product_attribute_1"上的"motor"。
- 第2層搜尋 — 搜尋「product_attribute_2」上的「零件編號123」。 此範例會在結果中搜尋「馬達」的「零件編號123」。
分層搜尋可用於
startsWith
搜尋索引和contains
搜尋索引,如下所述: -
startsWith搜尋索引 — 使用
startsWith
索引搜尋。 這項新功能可讓:- 搜尋屬性值以特定字串開頭的產品。
- 設定「結尾為」搜尋,讓購物者可以搜尋屬性值結尾為特定字串的產品。 若要啟用「結尾為」搜尋,產品屬性需要反向擷取,且API呼叫也應該為反向字串。
-
包含搜尋索引 — 使用包含索引來搜尋屬性。 這項新功能允許:
-
在較大的字串中搜索查詢。 例如,如果購物者在字符串“HAPE-123”中搜索產品編號“PE-123”。
- 注意:此搜尋類型不同于執行自動填充搜尋的現有 短語搜尋。 例如,如果您的商品屬性值為「戶外褲子」,則詞組搜尋返回“out pan”的回應,但不返回“oor ants”的回應。 但是,包含搜尋確實返回“oor ants”的回應。
-
這些新條件會增強搜尋查詢篩選機制,以縮小搜尋結果。 這些新條件不會影響主要搜尋查詢。
您可以在搜尋結果頁面上實作這些新條件。 例如,您可以在頁面上新增區段,讓購物者可以進一步縮小搜尋結果。 您可以允許購物者選取特定產品屬性,例如「製造商」、「零件編號」和「說明」。 從該位置,他們使用contains
或startsWith
條件在這些屬性中搜尋。 如需可搜尋的屬性清單,請參閱管理員指南。
-
若要安裝測試版,請在專案中新增下列相依性:
code language-bash composer require magento/module-live-search-search-types:"^1.0.0-beta1"
-
認可並將變更推送至您的
composer.json
和composer.lock
檔案至雲端專案。 了解更多。此Beta版在Admin中新增 Autocomplete、Contains 和 Starts with 的 Search types 核取方塊。 它也會更新
productSearch
GraphQL API,以包含這些新搜尋功能。 -
在Admin中,將產品屬性設定為可搜尋,並指定該屬性的搜尋功能,例如 包含 (預設)或 開頭為。 您最多可以為 Contains 指定6個要啟用的屬性,並為 Starts with 指定6個要啟用的屬性。 若為測試版,請注意,管理員不會強制執行此限制,但會在API搜尋中強制執行。
-
請參閱開發人員檔案,瞭解如何使用新的
contains
和startsWith
搜尋功能更新您的Live Search API呼叫。
欄位說明
Autocomplete
Autocomplete
,您可以在搜尋篩選器中使用contains
。 此處,contains
中的搜尋查詢會傳回自動完成型別搜尋回應。 Adobe建議您使用此型別的搜尋來搜尋說明欄位,這些欄位通常超過50個字元。Starts with
startsWith
。2.設定API金鑰
必須有Adobe Commerce API金鑰及其相關的私密金鑰,才能將Live Search連線至Adobe Commerce的安裝。 API金鑰是在Commerce授權持有者的帳戶中產生和維護的,該帳戶可與開發人員或系統整合商共用。 開發人員可以代表授權持有人建立和管理SaaS資料空間。 如果您已經有一組API金鑰,則不需要重新產生。
在Commerce Services Connector文章中瞭解如何設定您的API金鑰。
3.同步處理您的目錄資料
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服務進行初始同步。
cron
執行開始,程式至少可能需要一小時才能將您的資料同步到SaaS服務。監視同步處理進度
您可以使用資料管理控制面板檢視已同步處理和共用的資料。 此儀表板提供您店面產品資料可用性的寶貴見解,確保可及時向購物者顯示。
您也可以使用Commerce CLI和資料匯出擴充功能記錄檔,執行同步處理命令並疑難排解同步處理程式。
未來的產品更新
初始同步後,增量產品更新最多可能需要15分鐘才能用於店面搜尋。 若要深入瞭解,請參閱索引檔案中的串流產品更新。
4. 驗證數據是否已匯出
若要檢查目錄數據是否已從 Commerce 匯出Adobe Systems並與 同步, Live Search您有幾個選項可以選擇:
-
下表中的條目Look:
cde_products_feed
cde_product_attributes_feed
note note NOTE 如果收到 table does not exist
錯誤,請在 和catalog_data_exporter_products
catalog_data_exporter_product_attributes
表中查找條目。 這些表名在 Live Search 4.2.1 之前的版本中使用。 -
使用具有預設查詢的 GraphQL場(有關更多詳細信息,請參閱 GraphQL 參考)來驗證以下內容:
- 傳回的產品計數接近您對商店檢視的預期。
- 會傳回多面向。
如需其他說明,請參閱支援知識庫中的Live Search 目錄未同步。
5.設定資料
正確設定您的產品資料可確保為您的客戶帶來良好的搜尋結果。 您可以在此區段中啟用產品清單Widget並指派類別。
啟用產品清單Widget
安裝Live Search 4.0.0+時,預設會啟用產品清單Widget。 Widget啟用時,搜尋結果頁面和類別瀏覽產品清單頁面會使用不同的UI元件。 此UI元件會直接呼叫目錄服務API,如此可加快回應時間。
如果您的Live Search版本早於4.0.0+,則必須手動啟用產品清單Widget。
-
從 管理員,前往 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中,產品分為「男性」、「女性」和「齒輪」等類別。 也會為「Top」、「Bottoms」和「Watch」設定子類別。 這些類別指派可改善篩選時的精細度。
6.測試連線
現在,如果您的目錄資料在SaaS中,請進行測試以確保在以下情況下傳回產品資料:
- Search方塊正確傳回結果
- 類別瀏覽正確傳回結果
- Facet在搜尋結果頁面上可作為篩選使用
如果一切正常運作,Live Search已安裝、連線且隨時可使用。
如果在店面發生問題,請檢查var/log/system.log
檔案中的API通訊失敗或服務端發生錯誤。
若要允許Live Search通過防火牆,請新增commerce.adobe.io
至允許清單。
7.確認事件正在擷取資料
確保部署到您網站的店面事件可正常運作。 這對Headless實作尤其重要。
8.為您的店面量身打造
您已安裝Live Search擴充功能、同步處理、驗證及設定您的資料。 下一步是確保Live Search Widget符合您商店的外觀與風格。
您可以視需要定義自訂CSS規則,以設定彈出視窗和PLP Widget的樣式。 請參閱樣式彈出視窗元素和產品清單頁面Widget。
如果您想要擴充Widget的功能,每個元件的原始碼都可在公用存放庫中取得。
在這種情況下,您可以根據自己的需求自訂JavaScript,然後在CDN上託管自訂程式碼。 此自訂指令碼會與Live Search服務通訊,並傳回正常的結果,讓您控制Widget的功能。
更新 Live Search
在更新 Live Search 之前,請從命令行運行以下命令以檢查已安裝的 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-search
module-live-search-adapter
module-live-search-storefront-popover
Live Search相依性
安裝Live Search擴充功能的Composer中繼套件包含下列模組相依性。
magento/module-saas-catalog
magento/module-saas-category
magento/module-saas-category-permissions
magento/module-saas-product-override
magento/module-saas-product-variant
magento/module-saas-price
magento/module-saas-scopes
magento/module-bundle-product-data-exporter
magento/module-catalog-inventory-data-exporter
magento/module-catalog-url-rewrite-data-exporter
magento/module-configurable-product-data-exporter
magento/module-parent-product-data-exporter
magento/module-gift-card-product-data-exporter
magento/module-bundle-product-override-data-exporter
data-services
services-id
進階概念
下列章節提供使用Live Search和Catalog Service時更進階的主題。
端點
Live Search透過https://catalog-service.adobe.io/graphql
的端點通訊。
由於無權訪問完整的產品資料庫,Live Search因此 Live Search GraphQL 和 Commerce 核心 GraphQL API 不具有完全奇偶校驗。
Adobe Systems建議直接調用 SaaS API,特別是目錄服務終端節點。
- 通過繞過商務資料庫/Graphql進程獲得性能並減少處理器負載
- 利用聯合Live Search身份驗證從Catalog Service單個終結點調用、 Catalog Service和Product Recommendations。
對於某些用例,最好調用 Catalog Service 產品詳細資訊和類似案例。 有關詳細資訊,請參閱 優化產品 。
如果您有自訂Headless實作,請檢視Live Search參考實作:
若您未使用搜尋配接器、Luma Widget或AEM CIF Widget等標準元件,預設無法自動收集使用者互動資料。 Adobe Sensei會使用這項收集到的資料進行智慧型銷售與效能追蹤。 若要解決此問題,您需要開發自訂解決方案,以透過Headless方式實施此資料收集。
Live Search的最新版本已使用Catalog Service。
語言支援
Live Search Widget支援下列語言:
如果小組件檢測到「商務管理員語言」設置與支持的語言匹配,則預設為該語言。 否則,介面工具集預設為 英文。 在“管理”中,通過導航到 Stores>> Settings_Configuration_ > General> Country Options來配置語言設置。
管理員還可以設置搜尋索引🔗的語言,以幫助確保獲得更好的搜尋結果。
Widget代碼存放庫
產品列表 頁面 接口工具集和即時Search字段介面工具集的代碼可從 GitHub 下載。
有權訪問代碼的開發人員可以完全自定義代碼的工作方式和外觀。 他們在自己的伺服器上主機代碼,但仍使用該 Live Search 服務。
Data Export擴充功能
啟用「即時搜尋」後,「資料匯出」擴充功能會將Commerce資料在Commerce應用程式和「即時搜尋」之間同步。 此程式可確保店面上有最新的Commerce資料。 在Admin中,您可以使用「資料管理」控制面板檢查同步狀態。 您可以使用Commerce CLI和記錄檔來管理和疑難排解資料匯出程式。 如需詳細資訊,請參閱資料匯出指南。
庫存管理
Live Search 支持 商務中的庫存管理 功能(以前稱為多來源庫存或 MSI)。 若要啟用完全支持,必須將依賴項模組commerce-data-export
更新到版本 102.2.0+。
Live Search傳回布林值,指出產品是否可在Inventory management中使用,但不包含有關哪個來源有庫存的資訊。
價格索引器
Live Search客戶可以使用SaaS價格索引器,提供更快的價格變更更新和同步處理時間。
價格支援
即時搜尋Widget支援大多數(但不是所有)Adobe Commerce支援的價格型別。
目前支援基本價格。 不支援的進階價格為:
- 成本
- 最低廣告價格
檢視API Mesh,瞭解更複雜的價格計算。
價格格式支援Commerce執行個體中的地區設定設定: 商店 >設定> 設定 >一般> 一般 >本機選項>地區設定。
Headless店面支援
您可以選擇安裝module-data-services-graphql
模組,該模組會擴充應用程式的現有GraphQL涵蓋範圍,以包含店面行為資料收集所需的欄位。
composer require magento/module-data-services-graphql
此模組會將其他內容新增至GraphQL查詢:
dataServicesStorefrontInstanceContext
dataServicesMagentoExtensionContext
dataServicesStoreConfigurationContext
B2B支援
PWA支援
Live Search可與PWA Studio搭配使用,但使用者在其他Commerce實作中可能會看到細微的差異。 在Venia中,基本功能(例如搜尋和產品清單頁面)可正常運作,但Graphql的某些排列可能無法正常運作。 可能也會有效能差異。
- 目前Live Search的PWA實作需要比Live Search更長的處理時間才能傳回搜尋結果(使用原生Commerce店面)。
- PWA中的Live Search不支援事件處理。 因此,搜尋報告和智慧型銷售無法在PWA商店上運作。
- 使用PWA Studio時,GraphQL不支援直接篩選
description
、name
、short_description
,但這些欄位可透過較一般的篩選傳回。
若要搭配PWA Studio使用Live Search,整合經銷商也必須:
-
在
storeDetails
物件中設定environmentId
。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限制中閱讀更多相關資訊。