public ManagerResponse <RemovePromoCodeResult, CommerceCart> RemovePromoCodeFromCart(string userId, string promoCode) { Assert.ArgumentNotNullOrEmpty(promoCode, nameof(promoCode)); var result = new RemovePromoCodeResult { Success = false }; var cartResult = LoadCartByName(CommerceConstants.CartSettings.DefaultCartName, userId); if (!cartResult.Success || cartResult.Cart == null) { var message = DictionaryPhraseRepository.Current.Get("/System Messages/Cart/Cart Not Found Error", "Could not retrieve the cart for the current user"); cartResult.SystemMessages.Add(new SystemMessage { Message = message }); return(new ManagerResponse <RemovePromoCodeResult, CommerceCart>(result, cartResult.Cart as CommerceCart)); } var cart = cartResult.Cart as CommerceCart; CartCacheHelper.InvalidateCartCache(userId); var request = new RemovePromoCodeRequest(cart, promoCode); RefreshCart(request, true); // We need the CS pipelines to run. result = ((CommerceCartServiceProvider)CartServiceProvider).RemovePromoCode(request); if (result.Success && result.Cart != null) { CartCacheHelper.AddCartToCache(result.Cart as CommerceCart); } result.WriteToSitecoreLog(); return(new ManagerResponse <RemovePromoCodeResult, CommerceCart>(result, result.Cart as CommerceCart)); }
/// <summary> /// Removes the promo code from cart. /// </summary> /// <param name="storefront">The storefront.</param> /// <param name="visitorContext">The visitor context.</param> /// <param name="promoCode">The promo code.</param> /// <returns> /// The manager response where the modified CommerceCart is returned in the Result. /// </returns> public virtual ManagerResponse <RemovePromoCodeResult, CommerceCart> RemovePromoCodeFromCart([NotNull] CommerceStorefront storefront, [NotNull] VisitorContext visitorContext, string promoCode) { Assert.ArgumentNotNull(storefront, "storefront"); Assert.ArgumentNotNull(visitorContext, "visitorContext"); Assert.ArgumentNotNullOrEmpty(promoCode, "promoCode"); var result = new RemovePromoCodeResult { Success = false }; var cartResult = this.LoadCartByName(storefront.ShopName, storefront.DefaultCartName, visitorContext.UserId); if (!cartResult.Success || cartResult.Cart == null) { var message = StorefrontManager.GetSystemMessage(StorefrontConstants.SystemMessages.CartNotFoundError); cartResult.SystemMessages.Add(new SystemMessage { Message = message }); return(new ManagerResponse <RemovePromoCodeResult, CommerceCart>(result, cartResult.Cart as CommerceCart)); } var cart = cartResult.Cart as CommerceCart; var cartCache = CommerceTypeLoader.CreateInstance <CartCacheHelper>(); cartCache.InvalidateCartCache(visitorContext.GetCustomerId()); var request = new RemovePromoCodeRequest(cart, promoCode); result = ((CommerceCartServiceProvider)this.CartServiceProvider).RemovePromoCode(request); if (result.Success && result.Cart != null) { cartCache.AddCartToCache(result.Cart as CommerceCart); } Helpers.LogSystemMessages(result.SystemMessages, result); return(new ManagerResponse <RemovePromoCodeResult, CommerceCart>(result, result.Cart as CommerceCart)); }
/// <summary> /// Removes the promo code from cart. /// </summary> /// <param name="storefront">The storefront.</param> /// <param name="visitorContext">The visitor context.</param> /// <param name="promoCode">The promo code.</param> /// <returns> /// The manager response where the modified CommerceCart is returned in the Result. /// </returns> public virtual ManagerResponse<RemovePromoCodeResult, CommerceCart> RemovePromoCodeFromCart([NotNull] CommerceStorefront storefront, [NotNull] VisitorContext visitorContext, string promoCode) { Assert.ArgumentNotNull(storefront, "storefront"); Assert.ArgumentNotNull(visitorContext, "visitorContext"); Assert.ArgumentNotNullOrEmpty(promoCode, "promoCode"); var result = new RemovePromoCodeResult { Success = false }; var cartResult = this.LoadCartByName(storefront.ShopName, storefront.DefaultCartName, visitorContext.UserId); if (!cartResult.Success || cartResult.Cart == null) { var message = StorefrontManager.GetSystemMessage("CartNotFoundError"); cartResult.SystemMessages.Add(new SystemMessage { Message = message }); return new ManagerResponse<RemovePromoCodeResult, CommerceCart>(result, cartResult.Cart as CommerceCart); } var cart = cartResult.Cart as CommerceCart; var cartCache = CommerceTypeLoader.CreateInstance<CartCacheHelper>(); cartCache.InvalidateCartCache(visitorContext.GetCustomerId()); var request = new RemovePromoCodeRequest(cart, promoCode); request.RefreshCart(true); // We need the CS pipelines to run. result = ((CommerceCartServiceProvider)this.CartServiceProvider).RemovePromoCode(request); if (result.Success && result.Cart != null) { cartCache.AddCartToCache(result.Cart as CommerceCart); } Helpers.LogSystemMessages(result.SystemMessages, result); return new ManagerResponse<RemovePromoCodeResult, CommerceCart>(result, result.Cart as CommerceCart); }