private void GetUserInfo(CheckoutDataBaseJsonResult result) { var isUserAuthenticated = Sitecore.Context.User.IsAuthenticated; result.IsUserAuthenticated = isUserAuthenticated; result.UserEmail = isUserAuthenticated && !Context.User.Profile.IsAdministrator ? this.AccountManager.ResolveCommerceUser().Result.Email : string.Empty; if (!isUserAuthenticated) { return; } var addresses = new List<Sitecore.Reference.Storefront.Connect.Models.CommerceParty>(); var response = this.AccountManager.GetCurrentCustomerParties(this.CurrentStorefront, this.CurrentVisitorContext); if (response.ServiceProviderResult.Success && response.Result != null) { addresses = response.Result.ToList(); } var addressesResult = new AddressListItemJsonResult(); addressesResult.Initialize(addresses, null); result.UserAddresses = addressesResult; result.SetErrors(response.ServiceProviderResult); }
private void GetPaymentMethods(CheckoutDataBaseJsonResult result) { List<PaymentMethod> paymentMethodList = new List<PaymentMethod>(); var response = this.PaymentManager.GetPaymentMethods(this.CurrentStorefront, this.CurrentVisitorContext, new PaymentOption { PaymentOptionType = PaymentOptionType.PayCard }); if (response.ServiceProviderResult.Success) { paymentMethodList.AddRange(response.Result); } result.SetErrors(response.ServiceProviderResult); result.PaymentMethods = paymentMethodList; }
private void GetPaymentOptions(CheckoutDataBaseJsonResult result) { var response = this.PaymentManager.GetPaymentOptions(this.CurrentStorefront, this.CurrentVisitorContext); var paymentOptions = new List<PaymentOption>(); if (response.ServiceProviderResult.Success && response.Result != null) { paymentOptions = response.Result.ToList(); } result.PaymentOptions = paymentOptions; result.SetErrors(response.ServiceProviderResult); }
private void GetAvailableCountries(CheckoutDataBaseJsonResult result) { var response = this.OrderManager.GetAvailableCountries(); var countries = new Dictionary<string, string>(); if (response.ServiceProviderResult.Success && response.Result != null) { countries = response.Result; } result.Countries = countries; result.SetErrors(response.ServiceProviderResult); }
private void AddShippingOptionsToResult(CheckoutDataBaseJsonResult result, CommerceCart cart) { var response = this.ShippingManager.GetShippingPreferences(cart); var orderShippingOptions = new List<ShippingOption>(); var lineShippingOptions = new List<LineShippingOption>(); if (response.ServiceProviderResult.Success && response.Result != null) { orderShippingOptions = response.ServiceProviderResult.ShippingOptions.ToList(); lineShippingOptions = response.ServiceProviderResult.LineShippingPreferences.ToList(); } result.OrderShippingOptions = orderShippingOptions; result.LineShippingOptions = lineShippingOptions; if (result.LineShippingOptions != null && result.LineShippingOptions.Any()) { foreach (var line in result.Cart.Lines) { var lineShippingOption = result.LineShippingOptions.FirstOrDefault(l => l.LineId.Equals(line.ExternalCartLineId, StringComparison.OrdinalIgnoreCase)); if (lineShippingOption != null) { line.ShippingOptions = lineShippingOption.ShippingOptions; } } } result.SetErrors(response.ServiceProviderResult); }
private void AddShippingMethodsToResult(CheckoutDataBaseJsonResult result) { var response = this.ShippingManager.GetShippingMethods(this.CurrentStorefront, this.CurrentVisitorContext, new ShippingOption { ShippingOptionType = ShippingOptionType.ElectronicDelivery }); if (response.ServiceProviderResult.Success && response.Result.Count > 0) { result.EmailDeliveryMethod = response.Result.ElementAt(0); return; } result.EmailDeliveryMethod = new ShippingMethod(); result.ShipToStoreDeliveryMethod = new ShippingMethod(); result.SetErrors(response.ServiceProviderResult); }
public JsonResult GetCheckoutData() { try { var result = new CheckoutDataBaseJsonResult(); var response = this.CartManager.GetCurrentCart(CurrentStorefront, CurrentVisitorContext, true); if (response.ServiceProviderResult.Success && response.Result != null) { var cart = (CommerceCart)response.ServiceProviderResult.Cart; if (cart.Lines != null && cart.Lines.Any()) { result.Cart = new CSCartBaseJsonResult(response.ServiceProviderResult); result.Cart.Initialize(response.ServiceProviderResult.Cart); result.ShippingMethods = new List<ShippingMethod>(); result.CartLoyaltyCardNumber = cart.LoyaltyCardID; result.CurrencyCode = StorefrontConstants.Settings.DefaultCurrencyCode; this.AddShippingOptionsToResult(result, cart); if (result.Success) { this.AddShippingMethodsToResult(result); if (result.Success) { this.GetAvailableCountries(result); if (result.Success) { this.GetPaymentOptions(result); if (result.Success) { this.GetPaymentMethods(result); if (result.Success) { this.GetUserInfo(result); } } } } } } } result.SetErrors(response.ServiceProviderResult); return Json(result, JsonRequestBehavior.AllowGet); } catch (Exception e) { CommerceLog.Current.Error("GetCheckoutData", this, e); return Json(new BaseJsonResult("GetCheckoutData", e), JsonRequestBehavior.AllowGet); } }
private void AddShippingMethodsToResult(CheckoutDataBaseJsonResult result, CommerceCart cart) { var shippingRequest = new GetShippingMethodsInputModel { ShippingPreferenceType = ShippingOptionType.None.Name }; var response = this.ShippingManager.GetShippingMethods(this.CurrentStorefront, this.CurrentVisitorContext, shippingRequest); if (response.ServiceProviderResult.Success && response.Result != null) { foreach (var sm in response.Result) { var isEmailMethod = sm.GetPropertyValue("IsEmailShippingMethod") != null && (bool)sm.GetPropertyValue("IsEmailShippingMethod"); var isShipToStoreMethod = sm.GetPropertyValue("IsShipToStoreShippingMethod") != null && (bool)sm.GetPropertyValue("IsShipToStoreShippingMethod"); if (isEmailMethod) { result.EmailDeliveryMethod = sm; } if (isShipToStoreMethod) { result.ShipToStoreDeliveryMethod = sm; } } return; } result.EmailDeliveryMethod = new ShippingMethod(); result.ShipToStoreDeliveryMethod = new ShippingMethod(); result.SetErrors(response.ServiceProviderResult); }