Filter catalog content
Describes how to filter catalog content in Optimizely Customized Commerce using the Optimizely Search & Navigation.
The examples use predefined filters to narrow results on catalog content.
Markets
Filter content on current market:
var results = SearchClient.Instance.Search<VariationContent>()
.FilterOnCurrentMarket().GetContentResult();
Filter content on market:
var result = SearchClient.Instance.Search<VariationContent>()
.Filter(x => x.AvailableMarkets().MatchContained(v => v.Value, "market"));
Pricing
Filter content with currency:
var result = SearchClient.Instance.Search<VariationContent>()
.Filter(x => x.DefaultPrice().UnitPrice.Currency.Match(currency));
Filter content withprice less than:
var result = SearchClient.Instance.Search<VariationContent>()
.Filter(x => x.DefaultPrice().UnitPrice.LessThan(2));
Filter content with price greater than:
var result = SearchClient.Instance.Search<VariationContent>()
.Filter(x => x.DefaultPrice().UnitPrice.GreaterThan(2));
Filter content with price in range:
var result = SearchClient.Instance.Search<VariationContent>()
.Filter(x => x.DefaultPrice().UnitPrice.InRange(2, 4))
Bundles
Filter bundle entries:
var result = SearchClient.Instance.Search<BundleContent>()
.Filter(x => x.BundleEntries().MatchContained(c => c.ID, contentReference.ID));
Filter parent bundles:
var result = SearchClient.Instance.Search<EntryContentBase>()
.Filter(x => x.ParentBundles().MatchContained(c => c.ID, contentReference.ID));
Packages
Filter package entries:
var result = SearchClient.Instance.Search<PackageContent>()
.Filter(x => x.PackageEntries().MatchContained(c => c.ID, contentReference.ID));
Filter parent packages:
var result = SearchClient.Instance.Search<EntryContentBase>()
.Filter(x => x.ParentPackages().MatchContained(c => c.ID, contentReference.ID));
Node relations
Filter parent node relations:
var result = SearchClient.Instance.Search<BundleContent>()
.Filter(x => x.ParentNodeRelations().MatchContained(c => c.ID, contentReference.ID));
Filter child node relations:
var result = SearchClient.Instance.Search<BundleContent>()
.Filter(x => x.ChildNodeRelations().MatchContained(c => c.ID, contentReference.ID));
Updated 7 months ago