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:
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 |