設定以透過Live Search成功
Adobe Commerce Live Search與Catalog Service共同合作,提供效能、相關且直覺式的搜尋解決方案,讓您的客戶快速找到他們所需的專案。 具體來說,Catalog Service會呈現您的目錄資料以供SaaS服務使用,例如Live Search。
本文提供使用Catalog Service實作Live Search的逐步指示。
客群
本文適用於負責安裝和設定Adobe 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市集透過Composer將Live Search安裝為擴充功能。 安裝並設定Live Search後,AdobeCommerce會開始與SaaS服務共用搜尋和目錄資料。 此時,管理員 使用者可以設定、自訂及管理搜尋Facet、同義字及銷售規則。
-
note important IMPORTANT 由於Elasticsearch7於2023年8月宣佈終止支援,建議所有Adobe Commerce客戶移轉至OpenSearch 2.x搜尋引擎。 如需在產品升級期間移轉搜尋引擎的相關資訊,請參閱_升級指南_中的移轉至OpenSearch。 -
從Adobe市集下載
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」。
- 注意:此搜尋型別與執行自動完成搜尋的現有片語搜尋不同。 例如,如果您的產品屬性值是"outdoor pants",則短語搜尋會傳回"out pan"的回應,但不會傳回"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.同步處理您的目錄資料 synchronize-catalog-data
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.確認資料已匯出 verify-export
若要檢查您的目錄資料是否已從Adobe Commerce匯出並與Live Search同步,您有幾個選擇:
-
在下清單格中尋找專案:
cde_products_feed
cde_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遊樂場來驗證以下內容:
- 傳回的產品計數接近您對商店檢視的預期。
- 會傳回多面向。
如需其他說明,請參閱支援知識庫中的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.測試連線 test-connection
現在,如果您的目錄資料在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 update
在更新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 uninstall
若要解除安裝Live Search,請參閱解除安裝模組。
Live Search個套件 packages
Live Search擴充功能包含下列封裝:
module-live-search
module-live-search-adapter
module-live-search-storefront-popover
Live Search相依性 dependencies
安裝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建議直接呼叫SaaS API,尤其是目錄服務端點。
- 略過Commerce資料庫/Graphql程式,獲得效能並降低處理器負載
- 利用Catalog Service同盟從單一端點呼叫Live Search、Catalog Service和Product Recommendations。
對於某些使用案例,最好是呼叫Catalog Service以取得產品詳細資料和類似案例。 如需詳細資訊,請參閱refineProduct。
如果您有自訂Headless實作,請檢視Live Search參考實作:
若您未使用搜尋配接器、Luma Widget或AEM CIF Widget等標準元件,預設將無法自動收集使用者互動資料。 Adobe Sensei會使用這項收集到的資料進行智慧型銷售與效能追蹤。 若要解決此問題,您需要開發自訂解決方案,以透過Headless方式實施此資料收集。
Live Search的最新版本已使用Catalog Service。
語言支援
Live Search Widget支援下列語言:
如果Widget偵測到Commerce管理語言設定符合支援的語言,則會預設為該語言。 否則,Widget會預設為英文。 在Admin中,語言設定是透過導覽至 Stores> Settings >Configuration > General> Country Options來設定。
管理員也可以設定搜尋索引的語言,以協助確保更好的搜尋結果。
Widget程式碼存放庫
產品清單頁面Widget和「即時搜尋」欄位Widget的程式碼可從GitHub下載。
有權存取程式碼的開發人員可完全自訂其運作和外觀方式。 他們在自己的伺服器上代管程式碼,但仍使用Live Search服務。
Data Export擴充功能
啟用「即時搜尋」後,「資料匯出」擴充功能會將Commerce資料在Commerce應用程式和「即時搜尋」之間同步。 此程式可確保店面上有最新的Commerce資料。 在Admin中,您可以使用「資料管理」控制面板檢查同步狀態。 您可以使用Commerce CLI和記錄檔來管理和疑難排解資料匯出程式。 如需詳細資訊,請參閱資料匯出指南。
Inventory management
Live Search在Commerce中支援Inventory management功能(先前稱為多Source詳細目錄,或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限制中閱讀更多相關資訊。