Loading...
Area: Episerver Commerce
Applies to versions: 10 and higher
Other versions:

Excluding Market filter from filter for visitor

Recommendations [hide]

This topic describes how to exclude a market filter from the "filter for visitor" function in Episerver Commerce, when using the Episerver Search & Navigation-Commerce (EPiServer.Find.Commerce) integration.

How it works

By default, when installing EPiServer.Find.Commerce, EntryContentBase types do not get hits in the Search & Navigation index until all documents are reindexed. To override this functionality, follow this step.

In the templates, inside the InitializationModule class, re-register all instances that implement the IFilterForVisitor interface, except for an instance of FilterCurrentMarketForVisitor.

public void ConfigureContainer(ServiceConfigurationContext context)
  {
    SetupFilterForVisitor(context);
    context.Services.Configure(c => c.For<ICurrentMarket>().Singleton().Use<MarketStorage>());
  }

private void SetupFilterForVisitor(ServiceConfigurationContext context)
  {
    var customFilterForVisitors = context.Container.GetAllInstances<IFilterForVisitor>().Where(x => !(x is FilterCurrentMarketForVisitor));
    context.Container.EjectAllInstancesOf<IFilterForVisitor>();
    foreach (var instance in customFilterForVisitors)
      {
        context.Container.Inject(instance);
      }
  }

 

Do you find this information helpful? Please log in to provide feedback.

Last updated: Oct 24, 2016

Recommendations [hide]