Disclaimer: This website requires Please enable JavaScript in your browser settings for the best experience.

Dev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubDev CommunityOptimizely AcademySubmit a ticketLog In
Dev Guide

Enable Commerce Search v3

Prerequisites

  • Have one of the following Optimizely Configured Commerce versions:
    • June STS release
    • Later version
  • Add a language tag to all languages.
  • Submit a request for manual provisioning of the required Optimizely products and resources.
  • Use Optimizely ID SSO.

Review custom exentions

Update any Elasticsearch v7 Custom Extensions Pipes using the DependencySystemSetting attribute and add pipes for both Elasticsearch v7 and Google Retail Search. See the following example for guidance. Additionally, update any Spire Blueprints to the supported release versions for the Product Listing Page, Search Input, and Autocomplete.

namespace Extensions.Modules.Search.Shared.DocumentTypes.Product.Query.Pipelines.Pipes.FormProductFilter 
{ 
    using Insite.Core.Interfaces.Dependency; 
    using Insite.Search.GoogleCloudRetailSearch.DocumentTypes.Product; 
 
    [DependencySystemSetting("SearchGeneral", "SearchProviderName", "Elasticsearch v7")] 
    public sealed class FormIsDiscontinuedFilterElasticsearchV7 
        : IPipe<FormProductFilterParameter, FormProductFilterResult> 
    { 
        public int Order => 450; 
 
        public FormProductFilterResult Execute( 
            IUnitOfWork unitOfWork, 
            FormProductFilterParameter parameter, 
            FormProductFilterResult result 
        ) 
        { 
            var filterProperty = nameof(ElasticSearchProduct.IsDiscontinued) 
                .ToCamelCase(); 
 
            var isDiscontinuedFilter = parameter.SearchQueryBuilder.MakeFieldQuery( 
                filterProperty, 
                "false" 
            ); 
            result.AllFilters.Add(isDiscontinuedFilter); 
 
            return result; 
        } 
    } 
} 
 
namespace Extensions.Modules.Search.Shared.DocumentTypes.Product.Query.Pipelines.Pipes.FormProductFilter 
{ 
    using Insite.Core.Interfaces.Dependency; 
    using Insite.Search.GoogleCloudRetailSearch.DocumentTypes.Product; 
 
    [DependencySystemSetting("SearchGeneral", "SearchProviderName", "Google Retail Search")] 
    public sealed class FormIsDiscontinuedFilterGoogleRetailSearch 
        : IPipe<FormProductFilterParameter, FormProductFilterResult> 
    { 
        public int Order => 450; 
 
        public FormProductFilterResult Execute( 
            IUnitOfWork unitOfWork, 
            FormProductFilterParameter parameter, 
            FormProductFilterResult result 
        ) 
        { 
            var filterProperty = nameof(GoogleCloudRetailSearchProduct.IsDiscontinued) 
                .ToCamelCase(); 
 
            var isDiscontinuedFilter = parameter.SearchQueryBuilder.MakeFieldQuery( 
                filterProperty, 
                "false" 
            ); 
            result.AllFilters.Add(isDiscontinuedFilter); 
 
            return result; 
        } 
    } 
}