Dans le commerce électronique, il est courant que les utilisateurs naviguent sur un site de manière anonyme, en ajoutant des articles à leur panier sans créer de compte. Plus tard, lorsque l’utilisateur décide de créer un compte ou de se connecter, il se peut qu’il ait déjà des articles dans son panier anonyme qu’il souhaite conserver. Dans ce scénario, il est important de fusionner le panier anonyme avec le panier authentifié pour garantir une expérience d’achat transparente.
Dans cet article de blog, je vais vous montrer comment fusionner des paniers anonymes avec des paniers authentifiés dans Optimizely Commerce 14.
Aperçu
Le code que je vais utiliser est un composant middleware qui s’exécute sur chaque requête HTTP entrante. Si l’utilisateur est authentifié, le middleware récupère le panier anonyme de l’utilisateur à l’aide du IAnonymousIdFeature et le fusionne avec leur panier authentifié.
using EPiServer.Commerce.Order;
using EPiServer.ServiceLocation;
using Mediachase.Commerce;
using Mediachase.Commerce.Anonymous;
using Mediachase.Commerce.Customers;
using Mediachase.Commerce.Markets;
namespace Infrastructure.Commerce.Extensions
{
public class AnonymousCartMergingMiddleware
{
private readonly RequestDelegate _next;
public AnonymousCartMergingMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task InvokeAsync(HttpContext context)
{
if (context.User.Identity != null && context.User.Identity.IsAuthenticated)
{
var anonymousId = context.Features.Get().AnonymousId;
if (!string.IsNullOrWhiteSpace(anonymousId))
{
var orderRepository = ServiceLocator.Current.GetInstance();
var marketService = ServiceLocator.Current.GetInstance();
var market = marketService.GetMarket(MarketId.Default);
var cart = orderRepository.LoadCart(new Guid(anonymousId), "Default", market.MarketId);
if (cart != null && cart.GetAllLineItems().ToList().Count > 0)
{
var profileMigrator = ServiceLocator.Current.GetInstance();
profileMigrator.MigrateCarts(new Guid(anonymousId));
var currentMarket = ServiceLocator.Current.GetInstance();
if (currentMarket.GetCurrentMarket().MarketId != MarketId.Default)
{
var customerCart = orderRepository.LoadCart(CustomerContext.Current.CurrentContactId, "Default", market.MarketId);
customerCart.MarketId = currentMarket.GetCurrentMarket().MarketId;
orderRepository.Save(customerCart);
}
}
}
}
await _next(context);
}
}
}
Vous pouvez utiliser une méthode d’extension pour exposer le middleware via `IApplicationBuilder`.
namespace Infrastructure.Commerce.Extensions
{
public static class AnonymousCartMergingMiddlewareExtensions
{
public static IApplicationBuilder UseAnonymousCartMerging(this IApplicationBuilder builder)
{
return builder.UseMiddleware();
}
}
}
Le code suivant appelle le middleware à partir de `Startup.cs`
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseAnonymousCartMerging();
}
Les collectionneurs disent souvent qu’ils sont accros à l’art. Ils achètent trop. Plus qu’ils n’en ont besoin ou qu’ils n’ont de place. Ils dépensent trop.
RICHMOND, Virginie – Des averses de pluie persistantes vendredi soir dans la région de Richmond ont forcé le report du NASCAR Whelen Modified Tour Virginia
DULUTH, Géorgie–(BUSINESS WIRE)–AGCO (NYSE : AGCO), un fabricant et distributeur mondial d’équipements agricoles, d’infrastructures et de technologies d’agriculture de précision, a publié aujourd’hui son rapport sur
Comment fusionner des paniers anonymes lorsqu’un client se connecte avec Optimiz
Dans le commerce électronique, il est courant que les utilisateurs naviguent sur un site de manière anonyme, en ajoutant des articles à leur panier sans créer de compte. Plus tard, lorsque l’utilisateur décide de créer un compte ou de se connecter, il se peut qu’il ait déjà des articles dans son panier anonyme qu’il souhaite conserver. Dans ce scénario, il est important de fusionner le panier anonyme avec le panier authentifié pour garantir une expérience d’achat transparente.
Dans cet article de blog, je vais vous montrer comment fusionner des paniers anonymes avec des paniers authentifiés dans Optimizely Commerce 14.
Aperçu
Le code que je vais utiliser est un composant middleware qui s’exécute sur chaque requête HTTP entrante. Si l’utilisateur est authentifié, le middleware récupère le panier anonyme de l’utilisateur à l’aide du
IAnonymousIdFeature
et le fusionne avec leur panier authentifié.Vous pouvez utiliser une méthode d’extension pour exposer le middleware via `IApplicationBuilder`.
Le code suivant appelle le middleware à partir de `Startup.cs`
27 mars 2023
Related
Most Popular
Pourquoi les accros à l’art font des virées shopping et ne choisissent pas leurs nouvelles œuvres d’art… pendant des années
7 stratégies pour augmenter l’interaction sociale entre les résidents âgés
La pluie reporte l’événement NASCAR Whelen Modified Tour à Richmond jusqu’à samedi
Le rapport AGCO 2022 sur le développement durable met en évidence de bons progrès
Subscribe To Our Weekly Newsletter
Tag
Tags
Articles Similaires
Pourquoi les accros à l’art font des virées shopping et ne choisissent pas leurs nouvelles œuvres d’art… pendant des années
Les collectionneurs disent souvent qu’ils sont accros à l’art. Ils achètent trop. Plus qu’ils n’en ont besoin ou qu’ils n’ont de place. Ils dépensent trop.
7 stratégies pour augmenter l’interaction sociale entre les résidents âgés
À mesure que les gens vieillissent, ils peuvent commencer à se sentir isolés et seuls. C’est d’autant plus le cas chez les personnes âgées, qui
La pluie reporte l’événement NASCAR Whelen Modified Tour à Richmond jusqu’à samedi
RICHMOND, Virginie – Des averses de pluie persistantes vendredi soir dans la région de Richmond ont forcé le report du NASCAR Whelen Modified Tour Virginia
Le rapport AGCO 2022 sur le développement durable met en évidence de bons progrès
DULUTH, Géorgie–(BUSINESS WIRE)–AGCO (NYSE : AGCO), un fabricant et distributeur mondial d’équipements agricoles, d’infrastructures et de technologies d’agriculture de précision, a publié aujourd’hui son rapport sur