Ejemplo n.º 1
0
        public void InitializeValues()
        {
            var cart      = _cartService.LoadCart(_cartService.DefaultCartName);
            var orderData = _klarnaCheckoutService.CreateOrUpdateOrder(cart);

            HtmlSnippet = orderData?.HtmlSnippet;
        }
Ejemplo n.º 2
0
        public ActionResult UpdateShippingMethod(UpdateShippingMethodViewModel viewModel)
        {
            ModelState.Clear();

            _klarnaCheckoutService.CreateOrUpdateOrder(Cart);
            _cartService.UpdateShippingMethod(Cart, viewModel.ShipmentId, viewModel.ShippingMethodId);
            _orderRepository.Save(Cart);

            return(LargeCart());
        }
Ejemplo n.º 3
0
        public async Task <ActionResult> ChangeCartItem(int shipmentId, string code, decimal quantity, string size, string newSize)
        {
            ModelState.Clear();

            _cartService.ChangeCartItem(Cart, shipmentId, code, quantity, size, newSize);
            _orderRepository.Save(Cart);
            await _recommendationService.TrackCart(HttpContext);

            _klarnaCheckoutService.CreateOrUpdateOrder(Cart);

            return(MiniCartDetails());
        }
Ejemplo n.º 4
0
        public void InitializeValues()
        {
            var startPage = _contentLoader.GetStartPage();

            if (!startPage.KlarnaCheckoutEnabled || !IsActive)
            {
                return;
            }
            var cart      = _cartService.LoadCart(_cartService.DefaultCartName);
            var orderData = AsyncHelper.RunSync(() => _klarnaCheckoutService.CreateOrUpdateOrder(cart));

            HtmlSnippet = orderData.HtmlSnippet;
        }
Ejemplo n.º 5
0
        public ActionResult UpdateShippingMethod(CheckoutPage currentPage, UpdateShippingMethodViewModel viewModel)
        {
            ModelState.Clear();

            _klarnaCheckoutService.CreateOrUpdateOrder(Cart);
            _cartService.UpdateShippingMethod(Cart, viewModel.ShipmentId, viewModel.ShippingMethodId);

            var checkoutModel = CreateCheckoutViewModel(currentPage);

            _checkoutService.UpdateShippingAddresses(Cart, checkoutModel);

            _orderRepository.Save(Cart);

            return(new HttpStatusCodeResult(HttpStatusCode.OK));
        }
Ejemplo n.º 6
0
        public async Task <ActionResult> Index(CheckoutPage currentPage)
        {
            if (CartIsNullOrEmpty())
            {
                return(View("EmptyCart"));
            }

            IPaymentMethodViewModel <PaymentMethodBase> paymentMethod = null;
            var selectedPaymentMethod = Request["paymentMethod"];

            if (!string.IsNullOrEmpty(selectedPaymentMethod))
            {
                paymentMethod            = PaymentMethodViewModelResolver.Resolve(selectedPaymentMethod);
                paymentMethod.SystemName = selectedPaymentMethod;
            }

            var viewModel = CreateCheckoutViewModel(currentPage, paymentMethod);

            Cart.Currency = _currencyService.GetCurrentCurrency();

            if (User.Identity.IsAuthenticated)
            {
                _checkoutService.UpdateShippingAddresses(Cart, viewModel);
            }

            _checkoutService.UpdateShippingMethods(Cart, viewModel.Shipments);
            _checkoutService.ApplyDiscounts(Cart);
            _orderRepository.Save(Cart);

            if (viewModel.Payment.SystemName.Equals(Klarna.Payments.Constants.KlarnaPaymentSystemKeyword))
            {
                await _klarnaPaymentsService.CreateOrUpdateSession(Cart);

                (viewModel.Payment as KlarnaPaymentsViewModel)?.InitializeValues();
            }
            if (viewModel.Payment.SystemName.Equals(Klarna.Checkout.Constants.KlarnaCheckoutSystemKeyword))
            {
                _klarnaCheckoutService.CreateOrUpdateOrder(Cart);
                (viewModel.Payment as KlarnaCheckoutViewModel)?.InitializeValues();
            }
            return(View(viewModel.ViewName, viewModel));
        }