Esempio n. 1
0
        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));
        }
Esempio n. 4
0
        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);
        }