Skip to content

Ecommerce Search 26.4

Version 26.4
Release Date 01 July 2026

Changes

Upgrade instructions

C# SDK: Admin API migrated to Minimal APIs

The Ecommerce Search Admin API has been migrated to ASP.NET Core Minimal APIs. This regenerated the C# Admin SDK clients (Bizzkit.Sdk.EcommerceSearch and Bizzkit.Sdk.EcommerceSearch.Preview) and introduces two breaking changes for consumers of those packages. The Search API SDK (Bizzkit.Sdk.Search) is unaffected.

Error responses are now typed as HttpValidationProblemDetails

Admin API error responses — such as 400 Bad Request, 404 Not Found, and 409 Conflict — were previously deserialized as ProblemDetails (and ValidationProblemDetails for some status codes). They are now consistently typed as HttpValidationProblemDetails. This affects both the Bizzkit.Sdk.EcommerceSearch and Bizzkit.Sdk.EcommerceSearch.Preview clients.

Code that catches the typed API exception must be updated to use the new type:

// Before
catch (SearchApiException<ProblemDetails> ex)
{
    // handle validation error
}

// After
catch (SearchApiException<HttpValidationProblemDetails> ex)
{
    // handle validation error
}
Preview SDK operations now carry a Preview suffix

In Bizzkit.Sdk.EcommerceSearch.Preview, every operation method name now ends with Preview before the Async suffix, aligning the preview operation IDs with the platform naming conventions. Update all calls to the Preview client accordingly. For example:

Before After
CreateTagAsync CreateTagPreviewAsync
SearchBusinessRulesAsync SearchBusinessRulesPreviewAsync
GetDashboardOverviewAsync GetDashboardOverviewPreviewAsync

The method names on the non-preview Bizzkit.Sdk.EcommerceSearch client are unchanged.

New features

Experience favorites

Experiences can be marked as favorites within a segment. The Admin API exposes the state on the experience search result, and two sort options list favorites before other experiences.

Model Property
SearchExperienceItemModel Favorite

The ExperienceSortOrder enumeration accepts two additional values: FavoriteAndNameAscending and FavoriteAndNameDescending.

Enhancements

Business rule inheritance

The Admin API describes how a business rule relates to the requested conditions, and allows a rule to stop an inherited rule from applying.

Business rule matches carry an InheritanceState with one of the values Original, Override, Inherited, or Excluded. Use it instead of ExactMatch to determine how a rule relates to the requested conditions.

Model Property
PlaygroundBusinessRuleMatchModel InheritanceState

Business rule configurations accept a nullable BreakInheritance flag. When true the rule matches its conditions but applies no data, which excludes the inherited rule of the same action. When null the existing value is kept, and new rules default to false.

Model Property
BusinessRuleParameterConfigurationModel BreakInheritance
SetBusinessRuleAffinitiesConfigurationModel BreakInheritance
SetBusinessRuleFacetsConfigurationModel BreakInheritance
SetBusinessRuleParameterSetConfigurationModel BreakInheritance
SetBusinessRulePinnedProductsConfigurationModel BreakInheritance
SetBusinessRuleRelevanceBoostConfigurationModel BreakInheritance
SetBusinessRuleSemanticSearchBoostConfigurationModel BreakInheritance
SetPlaygroundBusinessRuleBuryModel BreakInheritance

Condition names in publication conflicts

Publication conflicts report human-readable names for experience conditions and condition values alongside their ids. Names are resolved against the current configuration and fall back to the id when they cannot be resolved.

Model Property
ExperienceConditionConflictModel ExperienceConditionName
ExperienceConditionConflictModel ExperienceConditionValueName
ExperienceConditionChangeModel ExperienceConditionValueNameChange

Deprecations

Segment condition and experience endpoints

The following endpoints are deprecated and will be removed in a future major API version.

Name Endpoint
GetAvailableConditions /api/segments/{segmentId}/condition/available
SearchConditionValues /api/segments/{segmentId}/condition/{conditionId}/search
ResolveConditions /api/segments/{segmentId}/condition/resolve
ListExperiences /api/segments/{segmentId}/experiences

Use POST /api/segments/{segmentId}/experiences/search instead of ListExperiences. The condition endpoints are replaced by the plural conditions routes, which are currently available in the preview API.

Settings endpoints

The following endpoints are deprecated and will be removed in a future major API version.

Name Endpoint
GetTopNavigationBar /api/settings/top-navigation-bar
GetOpenFeatureSettings /api/settings/open-feature
GetAppSwitcherSettings /api/settings/app-switcher