diff --git a/src/VirtoCommerce.Xapi.Core/VirtoCommerce.Xapi.Core.csproj b/src/VirtoCommerce.Xapi.Core/VirtoCommerce.Xapi.Core.csproj index 8d93a7e..72698d3 100644 --- a/src/VirtoCommerce.Xapi.Core/VirtoCommerce.Xapi.Core.csproj +++ b/src/VirtoCommerce.Xapi.Core/VirtoCommerce.Xapi.Core.csproj @@ -1,4 +1,4 @@ - + Experiene API functionality net8.0 @@ -30,7 +30,7 @@ - + diff --git a/src/VirtoCommerce.Xapi.Data/Queries/SlugInfoQueryHandler.cs b/src/VirtoCommerce.Xapi.Data/Queries/SlugInfoQueryHandler.cs index 31bb9d3..8c6e9cd 100644 --- a/src/VirtoCommerce.Xapi.Data/Queries/SlugInfoQueryHandler.cs +++ b/src/VirtoCommerce.Xapi.Data/Queries/SlugInfoQueryHandler.cs @@ -17,7 +17,8 @@ namespace VirtoCommerce.Xapi.Data.Queries; public class SlugInfoQueryHandler( ICompositeSeoResolver seoResolver, IStoreService storeService, - IBrokenLinkSearchService brokenLinkSearchService) + IBrokenLinkSearchService brokenLinkSearchService, + IRedirectResolver redirectResolver) : IQueryHandler { @@ -36,6 +37,13 @@ public async Task Handle(SlugInfoQuery request, CancellationTo return result; } + var redirectResult = await redirectResolver.ResolveRedirect(request.StoreId, request.Permalink); + if (redirectResult != null) + { + result.RedirectUrl = redirectResult; + return result; + } + var currentCulture = request.CultureName ?? store.DefaultLanguage; var segments = request.Permalink.Split("/", StringSplitOptions.RemoveEmptyEntries);