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