private void UpdateWishList() { var keys = Request.Form.AllKeys; //Annonimous objects var quantityElementAndIndex = keys .Where(k => k.Contains("Quantity")) .Select((n, i) => new { Value = Request.Form[n], Id = n.Substring(n.IndexOf('_') + 1) }); foreach (var item in quantityElementAndIndex) { int itemId = item.Id.TryParseIntUsLocalization().Value; decimal?value = item.Value.TryParseDecimalUsLocalization(); if (!value.HasValue || value.Value < 0) { value = 0; } cart.SetItemQuantity(itemId, value.Value); } var unitElementAndIndex = keys .Where(k => k.Contains("UnitMeasureCode")) .Select((n, i) => new { Value = Request.Form[n], Id = n.Substring(n.IndexOf('_') + 1) }); foreach (var item in unitElementAndIndex) { int itemId = item.Id.TryParseIntUsLocalization().Value; string value = item.Value; if (string.IsNullOrEmpty(value)) { continue; } cart.UpdateUnitMeasureForItem(itemId, value.ToHtmlDecode(), cart.HasMultipleShippingAddresses()); } }
private void DisplayOrderSummary() { if (_cart.HasMultipleShippingAddresses()) { var splittedCarts = _cart.SplitIntoMultipleOrdersByDifferentShipToAddresses(); splittedCarts.ForEach(splitCart => { splitCart.BuildSalesOrderDetails(); OrderSummary.Text += splitCart.RenderHTMLLiteral(new MobileCheckOutPaymentPageLiteralRenderer()); }); } else { OrderSummary.Text = _cart.RenderHTMLLiteral(new MobileCheckOutPaymentPageLiteralRenderer()); } }
private void UpdateWishList() { // update cart quantities: for (int i = 0; i <= Request.Form.Count - 1; i++) { string fld = Request.Form.Keys[i]; string fldval = Request.Form[Request.Form.Keys[i]]; int recID; string quantity; if (fld.StartsWith("Quantity")) { if (fldval.StartsWith(Localization.GetNumberDecimalSeparatorLocaleString(cart.ThisCustomer.LocaleSetting))) { fldval = fldval.Insert(0, Localization.GetNumberZeroLocaleString(cart.ThisCustomer.LocaleSetting)); } if (Regex.IsMatch(fldval, AppLogic.AllowedQuantityWithDecimalRegEx(cart.ThisCustomer.LocaleSetting), RegexOptions.Compiled)) { recID = Localization.ParseUSInt(fld.Substring("Quantity".Length + 1)); quantity = fldval; decimal iquan = Convert.ToDecimal(quantity);//Localization.ParseUSDecimal(quantity); if (iquan < 0) { iquan = 0; } cart.SetItemQuantity(recID, iquan); } } if (fld.StartsWith("UnitMeasureCode")) { if (!string.IsNullOrEmpty(fldval)) { recID = Localization.ParseUSInt(fld.Substring("UnitMeasureCode".Length + 1)); string unitMeasureCode = HttpUtility.HtmlDecode(fldval); cart.UpdateUnitMeasureForItem(recID, unitMeasureCode, cart.HasMultipleShippingAddresses()); } } } }
public void ProcessCart(bool DoingFullCheckout) { Response.CacheControl = "private"; Response.Expires = 0; Response.AddHeader("pragma", "no-cache"); ThisCustomer.RequireCustomerRecord(); CartTypeEnum cte = CartTypeEnum.ShoppingCart; if (CommonLogic.QueryStringCanBeDangerousContent("CartType").Length != 0) { cte = (CartTypeEnum)CommonLogic.QueryStringUSInt("CartType"); } cart = new InterpriseShoppingCart(null, 1, ThisCustomer, cte, string.Empty, false, true); if (!Page.IsPostBack) { string couponCode = string.Empty; if (cart.HasCoupon(ref couponCode)) { CouponCode.Text = couponCode; } } else { if (string.IsNullOrEmpty(CouponCode.Text)) { cart.ClearCoupon(); } } // check if credit on hold if (ThisCustomer.IsCreditOnHold) { Response.Redirect("shoppingcart.aspx"); } if (cart.IsEmpty()) { // can't have this at this point: switch (cte) { case CartTypeEnum.ShoppingCart: Response.Redirect("shoppingcart.aspx"); break; case CartTypeEnum.WishCart: Response.Redirect("wishlist.aspx"); break; case CartTypeEnum.GiftRegistryCart: Response.Redirect("giftregistry.aspx"); break; default: Response.Redirect("shoppingcart.aspx"); break; } } //Make it a method UpdateCartItems(); // save coupon code, no need to reload cart object // will update customer record also: if (cte == CartTypeEnum.ShoppingCart) { if (!string.IsNullOrEmpty(CouponCode.Text)) { string errorMessage = string.Empty; if (cart.IsCouponValid(ThisCustomer, CouponCode.Text, ref errorMessage)) { cart.ApplyCoupon(CouponCode.Text); } else { // NULL out the coupon for this cusotmer... InterpriseHelper.ClearCustomerCoupon(ThisCustomer.CustomerCode, ThisCustomer.IsRegistered); ErrorMsgLabel.Text = errorMessage; CouponCode.Text = string.Empty; return; } } // check for upsell products if (CommonLogic.FormCanBeDangerousContent("Upsell").Length != 0) { foreach (string s in CommonLogic.FormCanBeDangerousContent("Upsell").Split(',')) { int ProductID = Localization.ParseUSInt(s); if (ProductID == 0) { continue; } string itemCode = InterpriseHelper.GetInventoryItemCode(ProductID); string shippingAddressID; shippingAddressID = CommonLogic.IIF(ThisCustomer.IsNotRegistered, string.Empty, ThisCustomer.PrimaryShippingAddressID); var umInfo = InterpriseHelper.GetItemDefaultUnitMeasure(itemCode); cart.AddItem(ThisCustomer, shippingAddressID, itemCode, ProductID, 1, umInfo.Code, CartTypeEnum.ShoppingCart); } } bool hasCheckedOptions = false; if (pnlOrderOptions.Visible) { // Process the Order Options foreach (RepeaterItem ri in OrderOptionsList.Items) { hasCheckedOptions = true; DataCheckBox cbk = (DataCheckBox)ri.FindControl("OrderOptions"); if (cbk.Checked) { string itemCode = (string)cbk.Data; HiddenField hfCounter = ri.FindControl("hfItemCounter") as HiddenField; TextBox txtNotes = ri.FindControl("txtOrderOptionNotes") as TextBox; string strNotes = HttpUtility.HtmlEncode(txtNotes.Text); string notes = CommonLogic.IIF((strNotes != null), CommonLogic.CleanLevelOne(strNotes), string.Empty); //check the length of order option notes //should not exceed 1000 characters including spaces int maxLen = 1000; if (notes.Length > maxLen) { notes = notes.Substring(0, maxLen); } string unitMeasureCode = string.Empty; // check if the item has only 1 unit measure // hence it's rendered as a label // else it would be rendered as a drop down list Label lblUnitMeasureCode = ri.FindControl("lblUnitMeasureCode") as Label; if (null != lblUnitMeasureCode && lblUnitMeasureCode.Visible) { unitMeasureCode = lblUnitMeasureCode.Text; } else { // it's rendered as combobox because the item has multiple unit measures configured DropDownList cboUnitMeasureCode = ri.FindControl("cboUnitMeasureCode") as DropDownList; if (null != cboUnitMeasureCode && cboUnitMeasureCode.Visible) { unitMeasureCode = cboUnitMeasureCode.SelectedValue; } } if (CommonLogic.IsStringNullOrEmpty(unitMeasureCode)) { throw new ArgumentException("Unit Measure not specified!!!"); } //check if this Order Option has Restricted Quantity and Minimum Order Qty set. decimal itemQuantity = 1; using (var con = DB.NewSqlConnection()) { con.Open(); using (var reader = DB.GetRSFormat(con, "SELECT iw.RestrictedQuantity, iw.MinOrderQuantity FROM InventoryItem i with (NOLOCK) INNER JOIN InventoryItemWebOption iw with (NOLOCK) ON i.ItemCode = iw.ItemCode AND iw.WebsiteCode = {0} WHERE i.ItemCode = {1}", DB.SQuote(InterpriseHelper.ConfigInstance.WebSiteCode), DB.SQuote(itemCode))) { if (reader.Read()) { string restrictedQuantitiesValue = DB.RSField(reader, "RestrictedQuantity"); decimal minimumOrderQuantity = Convert.ToDecimal(DB.RSFieldDecimal(reader, "MinOrderQuantity")); if (!CommonLogic.IsStringNullOrEmpty(restrictedQuantitiesValue)) { string[] quantityValues = restrictedQuantitiesValue.Split(','); if (quantityValues.Length > 0) { int ctr = 0; bool loop = true; while (loop) { int quantity = 0; string quantityValue = quantityValues[ctr]; if (int.TryParse(quantityValue, out quantity)) { if (quantity >= minimumOrderQuantity) { itemQuantity = quantity; loop = false; } } ctr++; } } } else { if (minimumOrderQuantity > 0) { itemQuantity = minimumOrderQuantity; } } } } } // Add the selected Order Option.... Guid cartItemId = Guid.Empty; cart.AddItem(ThisCustomer, ThisCustomer.PrimaryShippingAddressID, itemCode, int.Parse(hfCounter.Value), itemQuantity, unitMeasureCode, CartTypeEnum.ShoppingCart); } } } if (hasCheckedOptions) { //refresh the option items RenderOrderOptions(); } if (OrderNotes.Visible) { string sOrderNotes = CommonLogic.CleanLevelOne(OrderNotes.Text); //check the length of order notes //should not exceed 255 characters including spaces if (sOrderNotes.Length > DomainConstants.ORDER_NOTE_MAX_LENGTH) { sOrderNotes = sOrderNotes.Substring(0, DomainConstants.ORDER_NOTE_MAX_LENGTH); } DB.ExecuteSQL( String.Format("UPDATE Customer SET Notes = {0} WHERE CustomerCode = {1}", sOrderNotes.ToDbQuote(), ThisCustomer.CustomerCode.ToDbQuote()) ); } } bool validated = true; if (cart.InventoryTrimmed) { // inventory got adjusted, send them back to the cart page to confirm the new values! ErrorMsgLabel.Text += Server.UrlDecode(AppLogic.GetString("shoppingcart.cs.43", SkinID, ThisCustomer.LocaleSetting)); validated = false; } cart = new InterpriseShoppingCart(base.EntityHelpers, SkinID, ThisCustomer, CartTypeEnum.ShoppingCart, string.Empty, false, true); if (AppLogic.AppConfigBool("ShowShipDateInCart") && AppLogic.AppConfigBool("ShowStockHints")) { cart.BuildSalesOrderDetails(); } if (cte == CartTypeEnum.WishCart) { Response.Redirect("wishlist.aspx"); } if (cte == CartTypeEnum.GiftRegistryCart) { Response.Redirect("giftregistry.aspx"); } if (DoingFullCheckout) { if (!cart.MeetsMinimumOrderAmount(AppLogic.AppConfigUSDecimal("CartMinOrderAmount"))) { validated = false; } if (!cart.MeetsMinimumOrderQuantity(AppLogic.AppConfigUSInt("MinCartItemsBeforeCheckout"))) { validated = false; } string couponCode = string.Empty; string couponErrorMessage = string.Empty; if (cart.HasCoupon(ref couponCode) && !cart.IsCouponValid(ThisCustomer, couponCode, ref couponErrorMessage)) { validated = false; } //One page checkout is not implemented in mobile. //if (AppLogic.AppConfigBool("Checkout.UseOnePageCheckout") && !cart.HasMultipleShippingAddresses()) //{ // Response.Redirect("checkout1.aspx"); //} if (validated) { if (ThisCustomer.IsRegistered && (ThisCustomer.PrimaryBillingAddressID == string.Empty)) // || !ThisCustomer.HasAtLeastOneAddress() { Response.Redirect("selectaddress.aspx?add=true&setPrimary=true&checkout=true&addressType=Billing"); } if (ThisCustomer.IsRegistered && (ThisCustomer.PrimaryShippingAddressID == string.Empty)) // || !ThisCustomer.HasAtLeastOneAddress() { Response.Redirect("selectaddress.aspx?add=true&setPrimary=true&checkout=False&addressType=Shipping"); } if (ThisCustomer.IsNotRegistered || ThisCustomer.PrimaryBillingAddressID == string.Empty || ThisCustomer.PrimaryShippingAddressID == string.Empty || !ThisCustomer.HasAtLeastOneAddress()) { Response.Redirect("checkoutanon.aspx?checkout=true"); } else { if (AppLogic.AppConfigBool("SkipShippingOnCheckout") || !cart.HasShippableComponents()) { cart.MakeShippingNotRequired(); Response.Redirect("checkoutpayment.aspx"); } if ((cart.HasMultipleShippingAddresses() && cart.NumItems() <= AppLogic.MultiShipMaxNumItemsAllowed() && cart.CartAllowsShippingMethodSelection)) { Response.Redirect("checkoutshippingmult.aspx"); } else { Response.Redirect("checkoutshipping.aspx"); } } } InitializePageContent(); } }
protected void Page_Load(object sender, System.EventArgs e) { SetCustomerSkinID(); SkinImagePath = "skins/skin_" + SkinID.ToString() + "/images/"; this.RequireCustomerRecord(); RequireSecurePage(); SectionTitle = AppLogic.GetString("AppConfig.CartPrompt", SkinID, ThisCustomer.LocaleSetting); ClearErrors(); if (!this.IsPostBack) { string returnurl = CommonLogic.QueryStringCanBeDangerousContent("ReturnUrl"); if (returnurl.IndexOf("<script>", StringComparison.InvariantCultureIgnoreCase) != -1) { throw new ArgumentException("SECURITY EXCEPTION"); } ViewState["returnurl"] = returnurl; InitializePageContent(); } //for optimization string[] formkeys = Request.Form.AllKeys; if (formkeys.Any(k => k.Contains("bt_Delete"))) { ProcessCart(false); ProcessDelete(); RenderOrderOptions(); } InitializePageContent(); //foreach (string s in formkeys) //{ // if (s != "bt_Delete") { continue; } // ProcessCart(false); // InitializePageContent(); //} //Check if alternate checkout methods are supported (PayPal and GoogleCheckout) if (AppLogic.IsSupportedAlternateCheckout) { //note false just to disable the section //modified for mobile design AlternativeCheckouts.Visible = true; //Set the image url for the google button. if (AppLogic.AppConfigBool("GoogleCheckout.UseSandbox")) { //modified for mobile design btnGoogleCheckout.ImageUrl = string.Format(AppLogic.AppConfig("GoogleCheckout.SandBoxCheckoutButton"), AppLogic.AppConfig("GoogleCheckout.SandboxMerchantId")); } else { //modified for mobile design btnGoogleCheckout.ImageUrl = string.Format(AppLogic.AppConfig("GoogleCheckout.LiveCheckoutButton"), AppLogic.AppConfig("GoogleCheckout.MerchantId")); } //modified for mobile design bool hidePaypalOptionIfMultiShip = !(cart.HasMultipleShippingAddresses()); if (AppLogic.AppConfigBool("PayPalCheckout.ShowOnCartPage") && hidePaypalOptionIfMultiShip) { PayPalExpressSpan.Visible = true; } //modified for mobile design if (AppLogic.AppConfigBool("GoogleCheckout.ShowOnCartPage")) { GoogleCheckoutSpan.Visible = InterpriseShoppingCart.IsWebCheckOutIncluded("Google"); } //modified for mobile design if (cart != null && cart.IsShipSeparatelyCount() > 0) { GoogleCheckoutSpan.Visible = false; } } //modified for mobile design //if no alternative methods are visible, hide the whole row AlternativeCheckouts.Visible = (PayPalExpressSpan.Visible || GoogleCheckoutSpan.Visible); if (!AppLogic.IsSupportedAlternateCheckout && AlternativeCheckouts.Visible == true) { ErrorMsgLabel.Text = PayPalExpress.ErrorMsg; AlternativeCheckouts.Visible = false; } HeaderMsg.SetContext = this; CartPageFooterTopic.SetContext = this; }
private void Initialize() { ctrlPaymentTerm.ThisCustomer = ThisCustomer; isUsingInterpriseGatewayv2 = AppLogic.IsUsingInterpriseGatewayv2(); if (ThisCustomer.IsNotRegistered && !AppLogic.AppConfigBool("PasswordIsOptionalDuringCheckout")) { Response.Redirect("createaccount1.aspx?checkout=true"); } RegisterAjaxScript(); SetCacheability(); RequireSecurePage(); RequireCustomerRecord(); InitializeShoppingCart(); InitializePaymentTermControl(IsCreditCardTokenizationEnabled); if (IsCreditCardTokenizationEnabled) { litTokenizationFlag.Text = "true"; CreditCardOptionsRenderer(); } else { litTokenizationFlag.Text = "false"; BillingAddressGridRenderer(); } if (_cart.CartItems.Count > 0) { CheckIfWeShouldRequirePayment(); } DisplayErrorMessageIfAny(); if (_cart.HasMultipleShippingAddresses() || _cart.HasRegistryItems()) { var splittedCarts = _cart.SplitIntoMultipleOrdersByDifferentShipToAddresses(); foreach (var splitCart in splittedCarts) { splitCart.BuildSalesOrderDetails(litCouponEntered.Text); OrderSummary.Text += splitCart.RenderHTMLLiteral(new DefaultShoppingCartPageLiteralRenderer(RenderType.Review, litCouponEntered.Text)); //CartSummary.Text += splitCart.RenderHTMLLiteral(new CheckOutPaymentPageLiteralRenderer()); } } else { //If the shopping cart contains only Electronic Downloads or Services then pass a "false" parameter for computeFreight. if (_cart.IsNoShippingRequired()) { _cart.BuildSalesOrderDetails(false, true, litCouponEntered.Text); } else { _cart.BuildSalesOrderDetails(litCouponEntered.Text); } string couponCode = string.Empty; if (!ThisCustomer.CouponCode.IsNullOrEmptyTrimmed()) { couponCode = ThisCustomer.CouponCode; } OrderSummary.Text = _cart.RenderHTMLLiteral(new DefaultShoppingCartPageLiteralRenderer(RenderType.Payment, "page.checkoutshippingordersummary.xml.config", couponCode)); } DisplayCheckOutStepsImage(); if (!ThisCustomer.IsRegistered) { litIsRegistered.Text = "false"; } }
private void PerformPageAccessLogic() { // ----------------------------------------------------------------------------------------------- // NOTE ON PAGE LOAD LOGIC: // We are checking here for required elements to allowing the customer to stay on this page. // Many of these checks may be redundant, and they DO add a bit of overhead in terms of db calls, but ANYTHING really // could have changed since the customer was on the last page. Remember, the web is completely stateless. Assume this // page was executed by ANYONE at ANYTIME (even someone trying to break the cart). // It could have been yesterday, or 1 second ago, and other customers could have purchased limitied inventory products, // coupons may no longer be valid, etc, etc, etc... // ----------------------------------------------------------------------------------------------- if (ThisCustomer.IsCreditOnHold) { Response.Redirect("shoppingcart.aspx"); } if (AppLogic.AppConfigBool("RequireOver13Checked") && !ThisCustomer.IsOver13) { Response.Redirect("shoppingcart.aspx?errormsg=" + Server.UrlEncode(AppLogic.GetString("checkout.over13required", ThisCustomer.SkinID, ThisCustomer.LocaleSetting))); } if (ThisCustomer.IsNotRegistered && !AppLogic.AppConfigBool("PasswordIsOptionalDuringCheckout")) { Response.Redirect("createaccount.aspx?checkout=true"); } //If current user came from IS, chances are it has no Primary Billing Info! then tried to checkout if (ThisCustomer.IsRegistered && ThisCustomer.PrimaryBillingAddressID == String.Empty) { Response.Redirect("selectaddress.aspx?add=true&setPrimary=true&checkout=False&addressType=Billing&returnURL=account.aspx"); } SectionTitle = AppLogic.GetString("checkoutshipping.aspx.1", SkinID, ThisCustomer.LocaleSetting); if (_cart.IsEmpty()) { Response.Redirect("shoppingcart.aspx?resetlinkback=1"); } if (_cart.HasRegistryItems()) { Response.Redirect("shoppingcart.aspx"); } if (_cart.InventoryTrimmed) { Response.Redirect("shoppingcart.aspx?resetlinkback=1&errormsg=" + Server.UrlEncode(AppLogic.GetString("shoppingcart.aspx.1", SkinID, ThisCustomer.LocaleSetting))); } string couponCode = string.Empty; string couponErrorMessage = string.Empty; if (_cart.HasCoupon(ref couponCode) && !_cart.IsCouponValid(ThisCustomer, couponCode, ref couponErrorMessage)) { Response.Redirect("shoppingcart.aspx?resetlinkback=1&discountvalid=false"); } if (!_cart.MeetsMinimumOrderAmount(AppLogic.AppConfigUSDecimal("CartMinOrderAmount"))) { Response.Redirect("shoppingcart.aspx?resetlinkback=1"); } if (!_cart.MeetsMinimumOrderQuantity(AppLogic.AppConfigUSInt("MinCartItemsBeforeCheckout"))) { Response.Redirect("shoppingcart.aspx?resetlinkback=1"); } if (!_cart.IsNoShippingRequired() && (_cart.HasMultipleShippingAddresses()) && _cart.NumItems() <= AppLogic.MultiShipMaxNumItemsAllowed() && _cart.NumItems() > 1) { Response.Redirect("checkoutshippingmult.aspx"); } }
private void InitializePageContent() { checkoutheadergraphic.ImageUrl = AppLogic.LocateImageURL("skins/skin_" + SkinID.ToString() + "/images/step_5.gif"); for (int i = 0; i < checkoutheadergraphic.HotSpots.Count; i++) { var rhs = checkoutheadergraphic.HotSpots[i] as RectangleHotSpot; if (rhs.NavigateUrl.IndexOf("shoppingcart") != -1) { rhs.AlternateText = AppLogic.GetString("checkoutreview.aspx.2", SkinID, ThisCustomer.LocaleSetting); } if (rhs.NavigateUrl.IndexOf("account") != -1) { rhs.AlternateText = AppLogic.GetString("checkoutreview.aspx.3", SkinID, ThisCustomer.LocaleSetting); } if (rhs.NavigateUrl.IndexOf("checkoutshipping") != -1) { rhs.AlternateText = AppLogic.GetString("checkoutreview.aspx.4", SkinID, ThisCustomer.LocaleSetting); } if (rhs.NavigateUrl.IndexOf("checkoutpayment") != -1) { rhs.AlternateText = AppLogic.GetString("checkoutreview.aspx.5", SkinID, ThisCustomer.LocaleSetting); } } if (!AppLogic.AppConfigBool("SkipShippingOnCheckout")) { checkoutheadergraphic.HotSpots[2].HotSpotMode = HotSpotMode.Navigate; if (AppLogic.AppConfigBool("Checkout.UseOnePageCheckout")) { checkoutheadergraphic.HotSpots[2].NavigateUrl = "checkout1.aspx"; } else { checkoutheadergraphic.HotSpots[2].NavigateUrl = CommonLogic.IIF(cart.HasMultipleShippingAddresses(), "checkoutshippingmult.aspx", "checkoutshipping.aspx"); } } if (AppLogic.AppConfigBool("Checkout.UseOnePageCheckout")) { checkoutheadergraphic.HotSpots[3].NavigateUrl = "checkout1.aspx"; } if (IsPayPalCheckout) { checkoutheadergraphic.HotSpots[1].HotSpotMode = HotSpotMode.Inactive; checkoutheadergraphic.HotSpots[2].NavigateUrl += string.Format("?PayPal={0}&token={1}", bool.TrueString, Request.QueryString["token"]); checkoutheadergraphic.HotSpots[3].HotSpotMode = HotSpotMode.Inactive; } String XmlPackageName = AppLogic.AppConfig("XmlPackage.CheckoutReviewPageHeader"); if (XmlPackageName.Length != 0) { XmlPackage_CheckoutReviewPageHeader.Text = "<br/>" + AppLogic.RunXmlPackage(XmlPackageName, base.GetParser, ThisCustomer, SkinID, String.Empty, null, true, true); } if (cart.HasMultipleShippingAddresses()) { var splittedCarts = cart.SplitIntoMultipleOrdersByDifferentShipToAddresses(); foreach (var splitCart in splittedCarts) { splitCart.BuildSalesOrderDetails(); CartSummary.Text += splitCart.RenderHTMLLiteral(new MobileCheckOutPaymentPageLiteralRenderer()); } litShippingAddress.Text = "<br/>Multiple Ship Addresses"; } else { //If the shopping cart contains only Electronic Downloads or Services then pass a "false" parameter for computeFreight. if (cart.IsNoShippingRequired()) { cart.BuildSalesOrderDetails(false, true); } else { cart.BuildSalesOrderDetails(); } Address shippingAddress = null; //added for PayPal ADDRESSOVERRIDE if (IsPayPalCheckout && !AppLogic.AppConfigBool("PayPalCheckout.OverrideAddress")) { if (!cart.HasShippableComponents()) { shippingAddress = ThisCustomer.PrimaryShippingAddress; } else { pp = new PayPalExpress(); var GetPayPalDetails = pp.GetExpressCheckoutDetails(Request.QueryString["token"]).GetExpressCheckoutDetailsResponseDetails; var GetShippingAddress = new Address(); GetShippingAddress.Name = GetPayPalDetails.PayerInfo.Address.Name; GetShippingAddress.Address1 = GetPayPalDetails.PayerInfo.Address.Street1 + (GetPayPalDetails.PayerInfo.Address.Street2 != String.Empty ? Environment.NewLine : String.Empty) + GetPayPalDetails.PayerInfo.Address.Street2; GetShippingAddress.City = GetPayPalDetails.PayerInfo.Address.CityName; GetShippingAddress.State = GetPayPalDetails.PayerInfo.Address.StateOrProvince; GetShippingAddress.PostalCode = GetPayPalDetails.PayerInfo.Address.PostalCode; GetShippingAddress.Country = AppLogic.ResolvePayPalAddressCode(GetPayPalDetails.PayerInfo.Address.CountryName.ToString()); GetShippingAddress.CountryISOCode = AppLogic.ResolvePayPalAddressCode(GetPayPalDetails.PayerInfo.Address.Country.ToString()); GetShippingAddress.Phone = GetPayPalDetails.PayerInfo.ContactPhone; shippingAddress = GetShippingAddress; } } else { if (cart.OnlyShippingAddressIsNotCustomerDefault()) { shippingAddress = Address.Get(ThisCustomer, AddressTypes.Shipping, cart.FirstItem().m_ShippingAddressID); } else { shippingAddress = ThisCustomer.PrimaryShippingAddress; } } litShippingAddress.Text = shippingAddress.DisplayString(true, true, true, "<br/>"); CartSummary.Text = cart.RenderHTMLLiteral(new MobileCheckOutPaymentPageLiteralRenderer()); } if (AppLogic.AppConfigBool("ShowEditAddressLinkOnCheckOutReview")) { pnlEditBillingAddress.Visible = true; pnlEditShippingAddress.Visible = true; //removed image arrow in mobile //imgBillingRedArrow.ImageUrl = AppLogic.LocateImageURL("skins/skin_" + SkinID.ToString() + "/images/redarrow.gif"); //imgShippingRedArrow.ImageUrl = AppLogic.LocateImageURL("skins/skin_" + SkinID.ToString() + "/images/redarrow.gif"); } litBillingAddress.Text = ThisCustomer.PrimaryBillingAddress.DisplayString(true, true, true, "<br/>"); if (IsPayPalCheckout) { litPaymentMethod.Text = "PayPal Express Checkout"; } else { litPaymentMethod.Text = GetPaymentMethod(ThisCustomer.PrimaryBillingAddress); } string XmlPackageName2 = AppLogic.AppConfig("XmlPackage.CheckoutReviewPageFooter"); if (XmlPackageName2.Length != 0) { XmlPackage_CheckoutReviewPageFooter.Text = "<br/>" + AppLogic.RunXmlPackage(XmlPackageName2, base.GetParser, ThisCustomer, SkinID, String.Empty, null, true, true); } //mobile button AppLogic.GetButtonDisable(btnContinueCheckout1.TheButton); CheckoutReviewPageHeader.SetContext = this; CheckoutReviewPageFooter.SetContext = this; }