public virtual async Task <IHttpActionResult> CompleteCheckout(CompleteCheckoutRequest request) { if (request == null) { return(BadRequest("No request body found.")); } var nextStepUrl = CartUrlProvider.GetCheckoutStepUrl(new GetCheckoutStepUrlParam { CultureInfo = ComposerContext.CultureInfo, StepNumber = request.CurrentStep + 1 }); var checkoutViewModel = await CheckoutService.CompleteCheckoutAsync(new CompleteCheckoutParam { CartName = CartConfiguration.ShoppingCartName, CustomerId = ComposerContext.CustomerId, CultureInfo = ComposerContext.CultureInfo, Scope = ComposerContext.Scope, BaseUrl = RequestUtils.GetBaseUrl(Request).ToString(), }); checkoutViewModel.NextStepUrl = nextStepUrl; return(Ok(checkoutViewModel)); }
//TODO: Change the method name for GetAdressListAsync or something similar because it confuse people public virtual async Task <IHttpActionResult> GetShippingAddressAsync() { var checkoutAddressStepUrl = CartUrlProvider.GetCheckoutStepUrl(new GetCheckoutStepUrlParam { CultureInfo = ComposerContext.CultureInfo, StepNumber = 1, }); var urlParam = new BaseUrlParameter { CultureInfo = ComposerContext.CultureInfo, ReturnUrl = checkoutAddressStepUrl }; var addressListUrl = MyAccountUrlProvider.GetAddressListUrl(urlParam); var addAddressUrl = CartUrlProvider.GetCheckoutAddAddressUrl(urlParam); var editAddressBaseUrl = CartUrlProvider.GetCheckoutUpdateAddressBaseUrl(urlParam); var viewModel = await CustomerAddressViewService.GetAddressListViewModelAsync(new GetAddressListViewModelParam { CustomerId = ComposerContext.CustomerId, CultureInfo = ComposerContext.CultureInfo, Scope = ComposerContext.Scope, AddAddressUrl = addAddressUrl, EditAddressBaseUrl = editAddressBaseUrl, CountryCode = ComposerContext.CountryCode }); return(Ok(viewModel)); }
public virtual async Task <IHttpActionResult> UpdateCart(UpdateCartRequest updateCartRequest) { if (updateCartRequest == null) { return(BadRequest("updateCartRequest is required")); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var getCartUrlParam = new BaseUrlParameter { CultureInfo = ComposerContext.CultureInfo }; var checkoutStepInfos = CartUrlProvider.GetCheckoutStepPageInfos(getCartUrlParam); var nextStepUrl = CartUrlProvider.GetCheckoutStepUrl(new GetCheckoutStepUrlParam { CultureInfo = ComposerContext.CultureInfo, StepNumber = updateCartRequest.CurrentStep.GetValueOrDefault() + 1 }); var getCartParam = new GetCartParam { Scope = ComposerContext.Scope, CultureInfo = ComposerContext.CultureInfo, CustomerId = ComposerContext.CustomerId, CartName = CartConfiguration.ShoppingCartName, BaseUrl = RequestUtils.GetBaseUrl(Request).ToString(), }; var updateCheckoutCartParam = new UpdateCheckoutCartParam { GetCartParam = getCartParam, CurrentStep = updateCartRequest.CurrentStep.GetValueOrDefault(), IsGuest = ComposerContext.IsGuest, UpdateValues = updateCartRequest.UpdatedCart }; var homepageUrl = GetHomepageUrl(); var updateCartResultViewModel = await CheckoutService.UpdateCheckoutCartAsync(updateCheckoutCartParam); SetHomepageUrl(updateCartResultViewModel.Cart, homepageUrl); SetEditCartUrl(updateCartResultViewModel.Cart); if (updateCartResultViewModel.Cart.OrderSummary != null) { updateCartResultViewModel.Cart.OrderSummary.CheckoutStepUrls = checkoutStepInfos.Values.Select(x => x.Url).ToList(); } if (!updateCartResultViewModel.HasErrors) { updateCartResultViewModel.NextStepUrl = nextStepUrl; } return(Ok(updateCartResultViewModel)); }
protected void SetEditCartUrl(CartViewModel cartViewModel, BaseUrlParameter getUrlParam) { if (cartViewModel.OrderSummary != null) { var cartUrl = CartUrlProvider.GetCartUrl(getUrlParam); cartViewModel.OrderSummary.EditCartUrlTarget = cartUrl; } }
protected virtual void SetCheckoutUrl(CartViewModel cartViewModel, BaseUrlParameter getUrlParam) { if (cartViewModel.OrderSummary != null) { var checkoutUrl = CartUrlProvider.GetCheckoutPageUrl(getUrlParam); cartViewModel.OrderSummary.CheckoutUrlTarget = checkoutUrl; } }
protected virtual string GetCartUrl() { var getCartUrlParam = new BaseUrlParameter { CultureInfo = ComposerContext.CultureInfo }; return(CartUrlProvider.GetCartUrl(getCartUrlParam)); }
protected virtual void SetHomepageUrl(CartViewModel cartViewModel, BaseUrlParameter getUrlParam) { if (cartViewModel != null) { var homepageUrl = CartUrlProvider.GetHomepageUrl(getUrlParam); cartViewModel.HomepageUrl = homepageUrl; } }
protected virtual string GetHomepageUrl() { var homepageUrl = CartUrlProvider.GetHomepageUrl(new BaseUrlParameter { CultureInfo = ComposerContext.CultureInfo }); return(homepageUrl); }
protected virtual CartViewModel GetCartViewModel() { var cartViewModel = new CartViewModel { IsLoading = true, HomepageUrl = CartUrlProvider.GetHomepageUrl(new BaseUrlParameter { CultureInfo = ComposerContext.CultureInfo }) }; return(cartViewModel); }
public virtual ActionResult Minicart(int notificationTimeInSeconds) { var minicartViewModel = new MinicartViewModel { NotificationTimeInMilliseconds = notificationTimeInSeconds * 1000, Url = CartUrlProvider.GetCartUrl(new BaseUrlParameter { CultureInfo = ComposerContext.CultureInfo, }) }; return(View(minicartViewModel)); }
protected void SetEditCartUrl(CartViewModel cartViewModel) { if (cartViewModel.OrderSummary != null) { var getCartUrlParam = new BaseUrlParameter { CultureInfo = ComposerContext.CultureInfo }; var cartUrl = CartUrlProvider.GetCartUrl(getCartUrlParam); cartViewModel.OrderSummary.EditCartUrlTarget = cartUrl; } }
public virtual async Task <IHttpActionResult> GetCart() { var homepageUrl = GetHomepageUrl(); var cartViewModel = await CartService.GetCartViewModelAsync(new GetCartParam { Scope = ComposerContext.Scope, CultureInfo = ComposerContext.CultureInfo, CustomerId = ComposerContext.CustomerId, CartName = CartConfiguration.ShoppingCartName, BaseUrl = RequestUtils.GetBaseUrl(Request).ToString(), }); SetHomepageUrl(cartViewModel, homepageUrl); SetEditCartUrl(cartViewModel); if (cartViewModel.OrderSummary != null) { var checkoutUrlTarget = GetCheckoutUrl(); var checkoutStepInfos = CartUrlProvider.GetCheckoutStepPageInfos(new BaseUrlParameter { CultureInfo = ComposerContext.CultureInfo }); //Build redirect url in case of the customer try to access an unauthorized step. var stepNumber = cartViewModel.OrderSummary.CheckoutRedirectAction.LastCheckoutStep; if (!checkoutStepInfos.ContainsKey(stepNumber)) { return(BadRequest("StepNumber is invalid")); } var checkoutStepInfo = checkoutStepInfos[stepNumber]; //If the cart contains recurring items and user is not authenticated, redirect to sign in if (RecurringOrdersSettings.Enabled && cartViewModel.HasRecurringLineitems && !ComposerContext.IsAuthenticated) { cartViewModel.OrderSummary.CheckoutRedirectAction.RedirectUrl = checkoutUrlTarget; } else { cartViewModel.OrderSummary.CheckoutRedirectAction.RedirectUrl = checkoutStepInfo.Url; } cartViewModel.OrderSummary.CheckoutStepUrls = checkoutStepInfos.Values.Select(x => x.Url).ToList(); cartViewModel.OrderSummary.CheckoutUrlTarget = checkoutUrlTarget; } return(Ok(cartViewModel)); }
protected virtual string GetCheckoutUrl() { var getCartUrlParam = new BaseUrlParameter { CultureInfo = ComposerContext.CultureInfo }; var checkoutStepInfos = CartUrlProvider.GetCheckoutStepPageInfos(getCartUrlParam); var checkoutSignInUrl = CartUrlProvider.GetCheckoutSignInUrl(new BaseUrlParameter { CultureInfo = ComposerContext.CultureInfo, ReturnUrl = ComposerContext.IsAuthenticated ? null : checkoutStepInfos[1].Url }); var checkoutUrlTarget = ComposerContext.IsAuthenticated ? checkoutStepInfos[1].Url : checkoutSignInUrl; return(checkoutUrlTarget); }
public virtual async Task <IHttpActionResult> CompleteCheckout() { var checkoutViewModel = await CheckoutService.CompleteCheckoutAsync(new CompleteCheckoutParam { CartName = CartConfiguration.ShoppingCartName, CustomerId = ComposerContext.CustomerId, CultureInfo = ComposerContext.CultureInfo, Scope = ComposerContext.Scope, BaseUrl = RequestUtils.GetBaseUrl(Request).ToString(), }); checkoutViewModel.NextStepUrl = CartUrlProvider.GetCheckoutConfirmationPageUrl( new BaseUrlParameter { CultureInfo = ComposerContext.CultureInfo }); checkoutViewModel.IsAuthenticated = ComposerContext.IsAuthenticated; return(Ok(checkoutViewModel)); }
protected virtual void SetForgotPasswordPageUrl(CartViewModel cartViewModel, BaseUrlParameter getUrlParam) { cartViewModel.ForgotPasswordUrl = CartUrlProvider.GetForgotPasswordPageUrl(getUrlParam); }