public ManagerResponse <AddPromoCodeResult, CommerceCart> AddPromoCodeToCart(string userId, string promoCode) { Assert.ArgumentNotNullOrEmpty(promoCode, nameof(promoCode)); var result = new AddPromoCodeResult { 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 <AddPromoCodeResult, CommerceCart>(result, cartResult.Cart as CommerceCart)); } CartCacheHelper.InvalidateCartCache(userId); var cart = cartResult.Cart as CommerceCart; var request = new AddPromoCodeRequest(cart, promoCode); RefreshCart(request, true); result = ((CommerceCartServiceProvider)CartServiceProvider).AddPromoCode(request); if (result.Success && result.Cart != null) { CartCacheHelper.AddCartToCache(result.Cart as CommerceCart); } result.WriteToSitecoreLog(); return(new ManagerResponse <AddPromoCodeResult, CommerceCart>(result, result.Cart as CommerceCart)); }
/// <summary> /// Adds the promo code to 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 <AddPromoCodeResult, CommerceCart> AddPromoCodeToCart([NotNull] CommerceStorefront storefront, [NotNull] VisitorContext visitorContext, string promoCode) { Assert.ArgumentNotNullOrEmpty(promoCode, "promoCode"); AddPromoCodeResult result = new AddPromoCodeResult { 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 <AddPromoCodeResult, CommerceCart>(result, cartResult.Cart as CommerceCart)); } var cartCache = CommerceTypeLoader.CreateInstance <CartCacheHelper>(); cartCache.InvalidateCartCache(visitorContext.GetCustomerId()); var cart = cartResult.Cart as CommerceCart; var request = new AddPromoCodeRequest(cart, promoCode); request.RefreshCart(true); result = ((CommerceCartServiceProvider)this.CartServiceProvider).AddPromoCode(request); if (result.Success && result.Cart != null) { cartCache.AddCartToCache(result.Cart as CommerceCart); } Helpers.LogSystemMessages(result.SystemMessages, result); return(new ManagerResponse <AddPromoCodeResult, CommerceCart>(result, result.Cart as CommerceCart)); }
public ManagerResponse <AddPromoCodeResult, Cart> AddPromoCode(Cart cart, string promoCode) { var commerceCart = (CommerceCart)cart; var request = new AddPromoCodeRequest(commerceCart, promoCode); var result = this.cartServiceProvider.AddPromoCode(request); return(new ManagerResponse <AddPromoCodeResult, Cart>(result, result.Cart)); }
public ActionResult AddPromotionCodeToCart() { var loadCartRequest = new LoadCartRequest("CommerceEngineDefaultStorefront", "Default", "1234"); var loadCartResult = _cartServiceProvider.LoadCart(loadCartRequest); var cart = loadCartResult.Cart as CommerceCart; string promotionCode = "H20OFF"; var request = new AddPromoCodeRequest(cart, promotionCode); var serviceProvider = new CommerceCartServiceProvider(); var result = serviceProvider.AddPromoCode(request); return(View("Cart", result)); }
/// <summary> /// Adds the promo code to 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<AddPromoCodeResult, CommerceCart> AddPromoCodeToCart([NotNull] CommerceStorefront storefront, [NotNull] VisitorContext visitorContext, string promoCode) { Assert.ArgumentNotNullOrEmpty(promoCode, "promoCode"); AddPromoCodeResult result = new AddPromoCodeResult { 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<AddPromoCodeResult, CommerceCart>(result, cartResult.Cart as CommerceCart); } var cartCache = CommerceTypeLoader.CreateInstance<CartCacheHelper>(); cartCache.InvalidateCartCache(visitorContext.GetCustomerId()); var cart = cartResult.Cart as CommerceCart; var request = new AddPromoCodeRequest(cart, promoCode); request.RefreshCart(true); result = ((CommerceCartServiceProvider)this.CartServiceProvider).AddPromoCode(request); if (result.Success && result.Cart != null) { cartCache.AddCartToCache(result.Cart as CommerceCart); } Helpers.LogSystemMessages(result.SystemMessages, result); return new ManagerResponse<AddPromoCodeResult, CommerceCart>(result, result.Cart as CommerceCart); }