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 (ThisCustomer.IsRegistered && (ThisCustomer.PrimaryBillingAddressID == String.Empty || ThisCustomer.PrimaryShippingAddressID == String.Empty)) { Response.Redirect("shoppingcart.aspx?resetlinkback=1&errormsg=" + Server.UrlEncode(AppLogic.GetString("checkoutpayment.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))); } if (!_cart.MeetsMinimumOrderAmount(AppLogic.AppConfigUSDecimal("CartMinOrderAmount"))) { Response.Redirect("shoppingcart.aspx?resetlinkback=1"); } if (!_cart.MeetsMinimumOrderQuantity(AppLogic.AppConfigUSInt("MinCartItemsBeforeCheckout"))) { Response.Redirect("shoppingcart.aspx?resetlinkback=1"); } }
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=" + AppLogic.GetString("checkout.over13required", ThisCustomer.SkinID, ThisCustomer.LocaleSetting, true).ToUrlEncode()); } if (ThisCustomer.IsNotRegistered && !AppLogic.AppConfigBool("PasswordIsOptionalDuringCheckout")) { Response.Redirect("createaccount.aspx?checkout=true"); } if ((ThisCustomer.PrimaryBillingAddress == null || ThisCustomer.PrimaryShippingAddress == null) && (ThisCustomer.PrimaryBillingAddressID.IsNullOrEmptyTrimmed() || ThisCustomer.PrimaryShippingAddressID.IsNullOrEmptyTrimmed())) { Response.Redirect("shoppingcart.aspx?resetlinkback=1&errormsg=" + AppLogic.GetString("checkoutpayment.aspx.1", SkinID, ThisCustomer.LocaleSetting, true).ToUrlEncode()); } SectionTitle = AppLogic.GetString("checkoutshippingmult.aspx.1", SkinID, ThisCustomer.LocaleSetting, true); if (_cart.IsEmpty()) { Response.Redirect("shoppingcart.aspx?resetlinkback=1"); } if (_cart.InventoryTrimmed) { Response.Redirect("shoppingcart.aspx?resetlinkback=1&errormsg=" + AppLogic.GetString("shoppingcart.aspx.1", SkinID, ThisCustomer.LocaleSetting, true).ToUrlEncode()); } if (_cart.HasRegistryItemButParentRegistryIsRemoved() || _cart.HasRegistryItemsRemovedFromRegistry()) { _cart.RemoveRegistryItemsHasDeletedRegistry(); _cart.RemoveRegistryItemsHasBeenDeletedInRegistry(); Response.Redirect("shoppingcart.aspx?resetlinkback=1&errormsg=" + AppLogic.GetString("editgiftregistry.error.18", SkinID, ThisCustomer.LocaleSetting, true).ToUrlEncode()); } if (_cart.HasRegistryItemsAndOneOrMoreItemsHasZeroInNeed()) { Response.Redirect("shoppingcart.aspx?resetlinkback=1&errormsg=" + AppLogic.GetString("editgiftregistry.error.15", SkinID, ThisCustomer.LocaleSetting, true).ToUrlEncode()); } if (_cart.HasRegistryItemsAndOneOrMoreItemsExceedsToTheInNeedQuantity()) { Response.Redirect("shoppingcart.aspx?resetlinkback=1&errormsg=" + AppLogic.GetString("editgiftregistry.error.14", SkinID, ThisCustomer.LocaleSetting, true).ToUrlEncode()); } 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() || !Shipping.MultiShipEnabled() || _cart.NumItems() == 1 || _cart.NumItems() > AppLogic.MultiShipMaxNumItemsAllowed()) && !_cart.HasRegistryItems()) { // not allowed then: Response.Redirect("shoppingcart.aspx?resetlinkback=1&errormsg=" + Server.UrlEncode(AppLogic.GetString("checkoutshippingmult.aspx.3", SkinID, ThisCustomer.LocaleSetting, true))); } if (ThisCustomer.PrimaryShippingAddress == null || CommonLogic.IsStringNullOrEmpty(ThisCustomer.PrimaryShippingAddress.AddressID)) { // not allowed here anymore! Response.Redirect("shoppingcart.aspx?errormsg=" + Server.UrlEncode(AppLogic.GetString("checkoutshippingmult.aspx.2", SkinID, ThisCustomer.LocaleSetting, true))); } }
private void UpdateCartItems() { var keys = Request.Form.AllKeys; //Annonimous objects var quantityElementAndIndex = keys .Where(k => k.Contains("Quantity") && !k.Contains("MinOrderQuantity")) .Select((n, i) => new { Value = Request.Form[n], Id = n.Substring("Quantity".Length + 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("UnitMeasureCode".Length + 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() || (cart.HasRegistryItems() && cart.CartItems.Count > 0)), cart.HasRegistryItems()); } }
public void InitializePageContent() { int AgeCartDays = AppLogic.AppConfigUSInt("AgeCartDays"); if (AgeCartDays == 0) { AgeCartDays = 7; } ShoppingCart.Age(ThisCustomer.CustomerID, AgeCartDays, CartTypeEnum.ShoppingCart); shoppingcartaspx8.Text = AppLogic.GetString("shoppingcart.aspx.6", SkinID, ThisCustomer.LocaleSetting); shoppingcartaspx10.Text = AppLogic.GetString("shoppingcart.aspx.8", SkinID, ThisCustomer.LocaleSetting); shoppingcartaspx11.Text = AppLogic.GetString("shoppingcart.aspx.9", SkinID, ThisCustomer.LocaleSetting); shoppingcartaspx9.Text = AppLogic.GetString("shoppingcart.aspx.7", SkinID, ThisCustomer.LocaleSetting); shoppingcartcs27.Text = AppLogic.GetString("shoppingcart.cs.5", SkinID, ThisCustomer.LocaleSetting); shoppingcartcs28.Text = AppLogic.GetString("shoppingcart.cs.6", SkinID, ThisCustomer.LocaleSetting); shoppingcartcs29.Text = AppLogic.GetString("shoppingcart.cs.7", SkinID, ThisCustomer.LocaleSetting); shoppingcartcs31.Text = AppLogic.GetString("shoppingcart.cs.9", SkinID, ThisCustomer.LocaleSetting); //removed for mobile design //btnUpdateCart1.Text = AppLogic.GetString("shoppingcart.cs.33", SkinID, ThisCustomer.LocaleSetting); //btnUpdateCart2.Text = AppLogic.GetString("shoppingcart.cs.33", SkinID, ThisCustomer.LocaleSetting); //btnUpdateCart3.Text = AppLogic.GetString("shoppingcart.cs.33", SkinID, ThisCustomer.LocaleSetting); //btnUpdateCart4.Text = AppLogic.GetString("shoppingcart.cs.33", SkinID, ThisCustomer.LocaleSetting); lblOrderNotes.Text = AppLogic.GetString("shoppingcart.cs.13", SkinID, ThisCustomer.LocaleSetting); btnContinueShoppingTop.Text = AppLogic.GetString("shoppingcart.cs.12", SkinID, ThisCustomer.LocaleSetting); //btnContinueShoppingBottom.Text = AppLogic.GetString("shoppingcart.cs.12", SkinID, ThisCustomer.LocaleSetting); btnCheckOutNowTop.Text = AppLogic.GetString("shoppingcart.cs.34", SkinID, ThisCustomer.LocaleSetting); btnCheckOutNowBottom.Text = AppLogic.GetString("shoppingcart.cs.34", SkinID, ThisCustomer.LocaleSetting); OrderNotes.Attributes.Add("onkeyup", "return imposeMaxLength(this, 255);"); RedirectToShoppingCart = false; if (cart == null) { cart = new InterpriseShoppingCart(base.EntityHelpers, SkinID, ThisCustomer, CartTypeEnum.ShoppingCart, string.Empty, false, true); if (!Page.IsPostBack) { if (cart.HasRegistryItems()) { cart.RemoveRegistryItems(); ErrorMsgLabel.Text = AppLogic.GetString("mobile.shoppingcart.error.1", SkinID, ThisCustomer.LocaleSetting).ToHtmlDecode(); ErrorMsgLabel.Visible = true; cart = new InterpriseShoppingCart(base.EntityHelpers, SkinID, ThisCustomer, CartTypeEnum.ShoppingCart, string.Empty, false, true); } string couponCode = string.Empty; string couponErrorMessage = string.Empty; if (cart.HasCoupon(ref couponCode) && cart.IsCouponValid(ThisCustomer, couponCode, ref couponErrorMessage)) { CouponCode.Text = couponCode; } else { if (!couponErrorMessage.IsNullOrEmptyTrimmed()) { ErrorMsgLabel.Text = couponErrorMessage.ToHtmlDecode(); } cart.ClearCoupon(); } //check customer IsCreditHold if (ThisCustomer.IsCreditOnHold && cart != null) { ErrorMsgLabel.Text = AppLogic.GetString("shoppingcart.aspx.18", ThisCustomer.SkinID, ThisCustomer.LocaleSetting); cart.ClearCoupon(); RedirectToShoppingCart = true; } else { if (AppLogic.AppConfigBool("ShowShipDateInCart") && AppLogic.AppConfigBool("ShowStockHints") && cart != null) { cart.BuildSalesOrderDetails(); } } } else { if (string.IsNullOrEmpty(CouponCode.Text)) { cart.ClearCoupon(); } } } if (cart.IsEmpty()) { btnUpdateCart1.Visible = false; AlternativeCheckouts.Visible = false; } else { cart.BuildSalesOrderDetails(); } string BACKURL = AppLogic.GetCartContinueShoppingURL(SkinID, ThisCustomer.LocaleSetting); var html = new StringBuilder(""); html.Append("<script type=\"text/javascript\" >\n"); html.Append("function Cart_Validator(theForm)\n"); html.Append("{\n"); string cartJS = CommonLogic.ReadFile("js/shoppingcart.js", true); foreach (var c in cart.CartItems) { string itemJS = string.Empty; itemJS = cartJS.Replace("%MAX_QUANTITY_INPUT%", AppLogic.MAX_QUANTITY_INPUT_NoDec).Replace("%ALLOWED_QUANTITY_INPUT%", AppLogic.GetQuantityRegularExpression(c.ItemType, true)); itemJS = itemJS.Replace("%DECIMAL_SEPARATOR%", Localization.GetNumberDecimalSeparatorLocaleString(ThisCustomer.LocaleSetting)).Replace("%LOCALE_ZERO%", Localization.GetNumberZeroLocaleString(ThisCustomer.LocaleSetting)); html.Append(itemJS.Replace("%SKU%", c.m_ShoppingCartRecordID.ToString())); } html.Append("return(true);\n"); html.Append("}\n"); html.Append("function imposeMaxLength(theControl, maxLength)\n"); html.Append("{\n"); html.Append("theControl.value = theControl.value.substring(0, maxLength);\n"); html.Append("}\n"); html.Append("</script>\n"); string x = ThisCustomer.LocaleSetting; ValidationScript.Text = html.ToString(); //JSPopupRoutines.Text = AppLogic.GetJSPopupRoutines(); string XmlPackageName = AppLogic.AppConfig("XmlPackage.ShoppingCartPageHeader"); if (XmlPackageName.Length != 0) { XmlPackage_ShoppingCartPageHeader.Text = AppLogic.RunXmlPackage(XmlPackageName, base.GetParser, ThisCustomer, SkinID, String.Empty, null, true, true); } string XRI = AppLogic.LocateImageURL(SkinImagePath + "redarrow.gif"); redarrow1.ImageUrl = XRI; redarrow2.ImageUrl = XRI; redarrow3.ImageUrl = XRI; redarrow4.ImageUrl = XRI; ShippingInformation.Visible = (!AppLogic.AppConfigBool("SkipShippingOnCheckout")); AddresBookLlink.Visible = (ThisCustomer.IsRegistered); btnCheckOutNowTop.Visible = (!cart.IsEmpty()); if (!IsPostBack) { if (CommonLogic.QueryStringCanBeDangerousContent("ErrorMsg").Length != 0 || ErrorMsgLabel.Text.Length > 0) { if (CommonLogic.QueryStringCanBeDangerousContent("ErrorMsg").IndexOf("<script>", StringComparison.InvariantCultureIgnoreCase) != -1) { throw new ArgumentException("SECURITY EXCEPTION"); } pnlErrorMsg.Visible = true; ErrorMsgLabel.Text += Server.HtmlEncode(CommonLogic.QueryStringCanBeDangerousContent("ErrorMsg")); } } if (cart.InventoryTrimmed) { pnlInventoryTrimmedError.Visible = true; InventoryTrimmedError.Text = AppLogic.GetString("shoppingcart.aspx.1", SkinID, ThisCustomer.LocaleSetting); } if (cart.MinimumQuantitiesUpdated) { pnlMinimumQuantitiesUpdatedError.Visible = true; MinimumQuantitiesUpdatedError.Text = AppLogic.GetString("shoppingcart.aspx.5", SkinID, ThisCustomer.LocaleSetting); } Decimal MinOrderAmount = AppLogic.AppConfigUSDecimal("CartMinOrderAmount"); if (!cart.MeetsMinimumOrderAmount(MinOrderAmount)) { pnlMeetsMinimumOrderAmountError.Visible = true; string amountFormatted = InterpriseHelper.FormatCurrencyForCustomer(MinOrderAmount, ThisCustomer.CurrencyCode); MeetsMinimumOrderAmountError.Text = String.Format(AppLogic.GetString("shoppingcart.aspx.2", SkinID, ThisCustomer.LocaleSetting), amountFormatted); } int quantityDecimalPlaces = InterpriseHelper.GetInventoryDecimalPlacesPreference(); NumberFormatInfo formatter = (new CultureInfo(ThisCustomer.LocaleSetting)).NumberFormat; // setup the formatter formatter.NumberDecimalDigits = quantityDecimalPlaces; formatter.PercentDecimalDigits = quantityDecimalPlaces; MeetsMinimumOrderQuantityError.Text = string.Empty; decimal MinQuantity = AppLogic.AppConfigUSDecimal("MinCartItemsBeforeCheckout"); if (!cart.MeetsMinimumOrderQuantity(MinQuantity)) { pnlMeetsMinimumOrderQuantityError.Visible = true; MeetsMinimumOrderQuantityError.Text = String.Format(AppLogic.GetString("shoppingcart.aspx.16", SkinID, ThisCustomer.LocaleSetting), MinQuantity.ToString(), MinQuantity.ToString()); } //ShoppingCartGif.ImageUrl = AppLogic.LocateImageURL(SkinImagePath + "ShoppingCart.gif"); CartItems.Text = cart.RenderHTMLLiteral(new MobileShoppingCartPageLiteralRenderer()); //CartSubTotal.Text = cart.RenderHTMLLiteral(new ShoppingCartPageSummaryLiteralRenderer()); if (!cart.IsEmpty()) { //ShoppingCartorderoptions_gif.ImageUrl = AppLogic.LocateImageURL(SkinImagePath + "ShoppingCartorderoptions.gif"); string strXml = String.Empty; pnlErrorMsg.Visible = true; if (AppLogic.AppConfigBool("RequireOver13Checked") && ThisCustomer.IsRegistered && !ThisCustomer.IsOver13) { btnCheckOutNowTop.Enabled = false; btnCheckOutNowBottom.Enabled = false; ErrorMsgLabel.Text = AppLogic.GetString("over13oncheckout", SkinID, ThisCustomer.LocaleSetting); return; } btnCheckOutNowBottom.Enabled = btnCheckOutNowTop.Enabled; DisplayUpsellProducts(cart); if (cart.CouponsAllowed) { pnlCoupon.Visible = true; } else { pnlCoupon.Visible = false; } if (!AppLogic.AppConfigBool("DisallowOrderNotes")) { OrderNotes.Text = cart.OrderNotes; pnlOrderNotes.Visible = true; } else { pnlOrderNotes.Visible = false; } btnCheckOutNowBottom.Visible = true; if (ThisCustomer.IsNotRegistered) { pnlCoupon.Visible = false; pnlOrderNotes.Visible = false; } } else { pnlOrderOptions.Visible = false; pnlUpsellProducts.Visible = false; pnlCoupon.Visible = false; pnlOrderNotes.Visible = false; } btnContinueShoppingTop.OnClientClick = "self.location='" + BACKURL + "'"; CartPageFooterTopic.SetContext = this; String XmlPackageName2 = AppLogic.AppConfig("XmlPackage.ShoppingCartPageFooter"); if (XmlPackageName2.Length != 0) { XmlPackage_ShoppingCartPageFooter.Text = AppLogic.RunXmlPackage(XmlPackageName2, base.GetParser, ThisCustomer, SkinID, String.Empty, null, true, true); } }
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"); } }
protected void Page_Load(object sender, System.EventArgs e) { Response.CacheControl = "private"; Response.Expires = 0; Response.AddHeader("pragma", "no-cache"); if (AppLogic.AppConfigBool("RequireOver13Checked") && !ThisCustomer.IsOver13) { Response.Redirect("shoppingcart.aspx?errormsg=" + Server.UrlEncode(AppLogic.GetString("checkout.over13required", ThisCustomer.SkinID, ThisCustomer.LocaleSetting))); } if (ThisCustomer.IsCreditOnHold) { Response.Redirect("shoppingcart.aspx"); } RequireSecurePage(); // ----------------------------------------------------------------------------------------------- // 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... // ----------------------------------------------------------------------------------------------- ThisCustomer.RequireCustomerRecord(); if (ThisCustomer.IsNotRegistered && !AppLogic.AppConfigBool("PasswordIsOptionalDuringCheckout") && !AppLogic.AppConfigBool("Checkout.UseOnePageCheckout")) { Response.Redirect("createaccount.aspx?checkout=true"); } if (ThisCustomer.IsRegistered && (ThisCustomer.PrimaryBillingAddressID == String.Empty || ThisCustomer.PrimaryShippingAddressID == String.Empty)) { Response.Redirect("shoppingcart.aspx?resetlinkback=1&errormsg=" + Server.UrlEncode(AppLogic.GetString("checkoutpayment.aspx.1", SkinID, ThisCustomer.LocaleSetting))); } SectionTitle = AppLogic.GetString("checkoutreview.aspx.1", SkinID, ThisCustomer.LocaleSetting); cart = new InterpriseShoppingCart(base.EntityHelpers, SkinID, ThisCustomer, CartTypeEnum.ShoppingCart, String.Empty, false, true); 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 (!IsPostBack) { InitializePageContent(); } }
private void InitializePageContent() { checkoutheadergraphic.ImageUrl = AppLogic.LocateImageURL("skins/skin_" + SkinID.ToString() + "/images/step_5.gif"); for (int i = 0; i < checkoutheadergraphic.HotSpots.Count; i++) { RectangleHotSpot rhs = (RectangleHotSpot)checkoutheadergraphic.HotSpots[i]; 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() || 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.Review, "page.checkoutshippingordersummary.xml.config", couponCode)); } if (AppLogic.AppConfigBool("ShowEditAddressLinkOnCheckOutReview")) { pnlEditBillingAddress.Visible = true; pnlEditShippingAddress.Visible = true; 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); } if (cart.HasMultipleShippingAddresses() || (cart.HasRegistryItems() && cart.CartItems.Count > 1)) { litShippingAddress.Text = "<br/>Multiple Ship Addresses"; } else { 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; shippingAddress = new Address() { Name = GetPayPalDetails.PayerInfo.Address.Name, Address1 = GetPayPalDetails.PayerInfo.Address.Street1 + (GetPayPalDetails.PayerInfo.Address.Street2 != String.Empty ? Environment.NewLine : String.Empty) + GetPayPalDetails.PayerInfo.Address.Street2, City = GetPayPalDetails.PayerInfo.Address.CityName, State = GetPayPalDetails.PayerInfo.Address.StateOrProvince, PostalCode = GetPayPalDetails.PayerInfo.Address.PostalCode, Country = AppLogic.ResolvePayPalAddressCode(GetPayPalDetails.PayerInfo.Address.CountryName.ToString()), CountryISOCode = AppLogic.ResolvePayPalAddressCode(GetPayPalDetails.PayerInfo.Address.Country.ToString()), Phone = GetPayPalDetails.PayerInfo.ContactPhone }; } } else { if (cart.OnlyShippingAddressIsNotCustomerDefault()) { var item = cart.FirstItem(); shippingAddress = Address.Get(ThisCustomer, AddressTypes.Shipping, item.m_ShippingAddressID, item.GiftRegistryID); } else { shippingAddress = ThisCustomer.PrimaryShippingAddress; } } litShippingAddress.Text = shippingAddress.DisplayString(true, true, true, "<br/>"); } 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); } AppLogic.GetButtonDisable(btnContinueCheckout1); CheckoutReviewPageHeader.SetContext = this; CheckoutReviewPageFooter.SetContext = this; }
protected void Page_Load(object sender, System.EventArgs e) { Response.CacheControl = "private"; Response.Expires = 0; Response.AddHeader("pragma", "no-cache"); _checkoutType = CommonLogic.QueryStringCanBeDangerousContent("checkoutType"); RequireSecurePage(); SectionTitle = AppLogic.GetString("checkoutanon.aspx.1", SkinID, ThisCustomer.LocaleSetting); // ----------------------------------------------------------------------------------------------- // 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... // ----------------------------------------------------------------------------------------------- ThisCustomer.RequireCustomerRecord(); cart = new InterpriseShoppingCart(base.EntityHelpers, SkinID, ThisCustomer, CartTypeEnum.ShoppingCart, String.Empty, false, true); 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))); } if (!cart.MeetsMinimumOrderAmount(AppLogic.AppConfigUSDecimal("CartMinOrderAmount"))) { Response.Redirect("shoppingcart.aspx?resetlinkback=1"); } if (!cart.MeetsMinimumOrderWeight(AppLogic.AppConfigUSDecimal("MinOrderWeight"))) { Response.Redirect("shoppingcart.aspx?resetlinkback=1"); } if (!cart.MeetsMinimumOrderQuantity(AppLogic.AppConfigUSInt("MinCartItemsBeforeCheckout"))) { Response.Redirect("shoppingcart.aspx?resetlinkback=1"); } CheckoutMap.HotSpots[0].AlternateText = AppLogic.GetString("checkoutanon.aspx.2", SkinID, ThisCustomer.LocaleSetting); Teaser.SetContext = this; if (AppLogic.AppConfigBool("PasswordIsOptionalDuringCheckout")) { PasswordOptionalPanel.Visible = true; } ErrorMsgLabel.Text = ""; if (!IsPostBack) { InitializePageContent(); } if (AppLogic.AppConfigBool("SecurityCodeRequiredOnStoreLogin")) { // Create a random code and store it in the Session object. SecurityImage.Visible = true; SecurityCode.Visible = true; trSecurityCodeText.Visible = true; trSecurityCodeImage.Visible = true; if (!IsPostBack) { SecurityImage.ImageUrl = "Captcha.ashx?id=1"; } else { SecurityImage.ImageUrl = "Captcha.ashx?id=2"; } } }