protected void btnAddToCart_Click(object sender, EventArgs e) { if (Session["ClientOrderData"] == null) { clientData = new ClientCartContext(); clientData.CartInfo = new Cart(); } else { clientData = (ClientCartContext)Session["ClientOrderData"]; if (clientData.CartInfo == null) { clientData.CartInfo = new CSBusiness.ShoppingManagement.Cart(); clientData.CartInfo.ShippingAddress = new CSBusiness.CustomerManagement.Address(); } } bool showPopUP = false; if (Session["skuID_AddtoCart"] != null && Session["skuID_AddtoCart"].ToString() != "") // adding dynamic product to cart based on selected size of product { var id = Convert.ToInt32(Session["skuID_AddtoCart"].ToString()); if (OrderHelper.AutoshipCart() && id == 120) { showPopUP = true; } else { clientData.CartInfo.AddItem(id, Convert.ToInt32(ddlQuantity.SelectedValue), true, false); } } else if (SkuId > 0) { clientData.CartInfo.AddItem(SkuId, Convert.ToInt32(ddlQuantity.SelectedValue), true, false); } else if (skuID > 0) { clientData.CartInfo.AddItem(skuID, Convert.ToInt32(ddlQuantity.SelectedValue), true, false); } //clientData.CartInfo.ShippingMethod = UserShippingMethodType.Rush; SiteBasePage.SetCatalogShipping(); clientData.CartInfo.Compute(); clientData.CartInfo.ShowQuantity = false; Session["ClientOrderData"] = clientData; if (showPopUP) { mpePopup.Show(); } else { mpeMiniCart.Show(); ucMiniCart.CallBindControl(); //Response.Redirect("cart.aspx"); } }
private void BindData(DateTime?dte1, DateTime?dte2, int versionId, int pathId) { List <Triplet <string, string, string> > itemList = new List <Triplet <string, string, string> >(); using (SqlDataReader drresult1 = new SiteBasePage().GetOrderBookSummary(dte1, dte2, versionId, pathId)) { while (drresult1.Read()) { ltBookRebate.Text = drresult1["TotalOrders"].ToString(); } } using (SqlDataReader drResult = new OrderManager().GetOrderSummary(dte1, dte2, versionId, pathId)) { while (drResult.Read()) { decimal totalRevenue = Convert.ToDecimal(drResult["TotalRevenue"]); totalCount = Convert.ToInt32(drResult["TotalOrders"].ToString()); decimal averageOrderVal = 0; if (totalCount > 0) { averageOrderVal = Math.Round(totalRevenue / Convert.ToInt32(totalCount), 2); } itemList.Add(new Triplet <string, string, string>("<span style='color:red;font-weight:bold'>Total Revenue</span>", "<span style='color:red;font-weight:bold'>" + String.Format("{0:C}", drResult["TotalRevenue"]) + "</span>", String.Empty)); itemList.Add(new Triplet <string, string, string>("Total Orders", string.Format("{0:##,##}", totalCount), String.Empty)); itemList.Add(new Triplet <string, string, string>("Average Order Value", String.Format("{0:C}", averageOrderVal), String.Empty)); itemList.Add(new Triplet <string, string, string>(" ", " ", "  ")); itemList.Add(new Triplet <string, string, string>("Product Revenue", String.Format("{0:C}", drResult["ProductRevenue"]), GetPercentage(Convert.ToDecimal(drResult["ProductRevenue"]), totalRevenue))); itemList.Add(new Triplet <string, string, string>("Shipping Revenue", String.Format("{0:C}", drResult["ShippingRevenue"]), GetPercentage(Convert.ToDecimal(drResult["ShippingRevenue"]), totalRevenue))); itemList.Add(new Triplet <string, string, string>("Sales Tax Revenue", String.Format("{0:C}", drResult["SalesTaxRevenue"]), GetPercentage(Convert.ToDecimal(drResult["SalesTaxRevenue"]), totalRevenue))); itemList.Add(new Triplet <string, string, string>("Orders With Upsells", string.Format("{0:##,##}", drResult["UpsellItems"]), GetPercentage(Convert.ToDecimal(drResult["UpsellItems"]), decimal.Parse(totalCount.ToString())))); itemList.Add(new Triplet <string, string, string>(" ", " ", "  ")); itemList.Add(new Triplet <string, string, string>("Orders w/ 1 Upsell", string.Format("{0:##,##}", drResult["oneUpSellCount"]), GetPercentage(Convert.ToDecimal(drResult["oneUpSellCount"]), decimal.Parse(totalCount.ToString())))); itemList.Add(new Triplet <string, string, string>("Orders w/ 2 Upsell", string.Format("{0:##,##}", drResult["TwoUpSellCount"]), GetPercentage(Convert.ToDecimal(drResult["TwoUpSellCount"]), decimal.Parse(totalCount.ToString())))); itemList.Add(new Triplet <string, string, string>("Orders w/ 3 Upsell", string.Format("{0:##,##}", drResult["ThreeUpSellCount"]), GetPercentage(Convert.ToDecimal(drResult["ThreeUpSellCount"]), decimal.Parse(totalCount.ToString())))); itemList.Add(new Triplet <string, string, string>("Orders w/ 4 Upsell", string.Format("{0:##,##}", drResult["FourUpSellCount"]), GetPercentage(Convert.ToDecimal(drResult["FourUpSellCount"]), decimal.Parse(totalCount.ToString())))); itemList.Add(new Triplet <string, string, string>("Orders w/ 5 Upsell", string.Format("{0:##,##}", drResult["FiveUpSellCount"]), GetPercentage(Convert.ToDecimal(drResult["FiveUpSellCount"]), decimal.Parse(totalCount.ToString())))); itemList.Add(new Triplet <string, string, string>("Orders w/ 6 Upsell", string.Format("{0:##,##}", drResult["SixUpSellCount"]), GetPercentage(Convert.ToDecimal(drResult["SixUpSellCount"]), decimal.Parse(totalCount.ToString())))); } //end of while loop rptTotals.DataSource = itemList; rptTotals.DataBind(); drResult.NextResult(); rptTotalsItem.DataSource = drResult; rptTotalsItem.DataBind(); }//end of using }
protected void rptProducts3_ItemCommand(object sender, RepeaterCommandEventArgs e) { Sku cartItem = e.Item.DataItem as Sku; switch (e.CommandName) { case "ViewProduct": { int skuId = Convert.ToInt32(e.CommandArgument); DropDownList ddlQuantity = e.Item.FindControl("ddlQuantity") as DropDownList; LinkButton product_anchor = e.Item.FindControl("product_anchor") as LinkButton; if (skuId == 161) { Response.Redirect(product_anchor.PostBackUrl); } else { if (Session["ClientOrderData"] == null) { clientData = new ClientCartContext(); clientData.CartInfo = new Cart(); } else { clientData = (ClientCartContext)Session["ClientOrderData"]; if (clientData.CartInfo == null) { clientData.CartInfo = new CSBusiness.ShoppingManagement.Cart(); clientData.CartInfo.ShippingAddress = new CSBusiness.CustomerManagement.Address(); } } clientData.CartInfo.AddItem(skuId, 1, true, false); //clientData.CartInfo.ShippingMethod = UserShippingMethodType.Rush; SiteBasePage.SetCatalogShipping(); clientData.CartInfo.Compute(); clientData.CartInfo.ShowQuantity = false; Session["ClientOrderData"] = clientData; //Response.Redirect("Cart.aspx"); mpeMiniCart.Show(); ucMiniCart.CallBindControl(); } } break; default: break; } }
protected void rptShoppingCart_OnItemCommand(object sender, RepeaterCommandEventArgs e) { switch (e.CommandName) { case "delete": { int skuToRemove = Convert.ToInt32(e.CommandArgument); CartContext.CartInfo.UpdateSku(skuToRemove); Sku sku = new SkuManager().GetSkuByID(skuToRemove); sku.LoadAttributeValues(); var removeSkus = sku.GetAttributeValue <string>("removeSku", string.Empty).Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (string removeSku in removeSkus) { if (CartContext.CartInfo.SkuExists(int.Parse(removeSku))) { CartContext.CartInfo.UpdateSku(int.Parse(removeSku)); Sku skuRemove = new SkuManager().GetSkuByID(int.Parse(removeSku)); skuRemove.LoadAttributeValues(); var replaceSkus = skuRemove.GetAttributeValue <string>("replaceSku", string.Empty).Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (string replaceSku in replaceSkus) { OrderHelper.ChangeCart(replaceSku); } } } bool flag = false; foreach (Sku sku1 in ClientOrderData.CartInfo.CartItems) { if ((sku1.SkuId >= 138 && sku1.SkuId <= 152) || sku1.SkuId == 161) // g2 individual products { flag = true; } } if (flag) { SiteBasePage.SetCatalogShipping(); } BindControls(); if (UpdateCart != null) { UpdateCart(sender, e); } Response.Redirect(Request.RawUrl); } break; default: break; } }
public void SaveData() { if (Page.IsValid) { //Set Customer Information Address shippingAddress = new Address(); shippingAddress.FirstName = CommonHelper.fixquotesAccents(txtShippingFirstName.Text); shippingAddress.LastName = CommonHelper.fixquotesAccents(txtShippingLastName.Text); shippingAddress.Address1 = CommonHelper.fixquotesAccents(txtShippingAddress1.Text); shippingAddress.Address2 = CommonHelper.fixquotesAccents(txtShippingAddress2.Text); shippingAddress.City = CommonHelper.fixquotesAccents(txtShippingCity.Text); shippingAddress.StateProvinceId = Convert.ToInt32(ddlShippingState.SelectedValue); shippingAddress.CountryId = Convert.ToInt32(ddlShippingCountry.SelectedValue); shippingAddress.ZipPostalCode = txtShippingZipCode.Text; Customer CustData = new Customer(); CustData.FirstName = CommonHelper.fixquotesAccents(txtShippingFirstName.Text); CustData.LastName = CommonHelper.fixquotesAccents(txtShippingLastName.Text); CustData.PhoneNumber = txtPhoneNumber.Text; CustData.Email = CommonHelper.fixquotesAccents(txtEmail.Text); CustData.Username = CommonHelper.fixquotesAccents(txtEmail.Text); CustData.BillingAddress = shippingAddress; CustData.ShippingAddress = shippingAddress; //Set the Client Order objects //Set the Client Order objects ClientCartContext contextData = (ClientCartContext)Session["ClientOrderData"]; if (SiteBasePage.IsPOBoxAddress(shippingAddress.Address1 + " " + shippingAddress.Address2)) { if (contextData.OrderAttributeValues == null) { contextData.OrderAttributeValues = new Dictionary <string, CSBusiness.Attributes.AttributeValue>(); } contextData.OrderAttributeValues.AddOrUpdateAttributeValue("IsPOBoxShipping", new AttributeValue(true)); } if (contextData == null) // indicates session timeout { Response.Redirect("CheckoutSessionExpired.aspx?page=index.aspx", true); } contextData.CustomerInfo = CustData; contextData.CartAbandonmentId = CSResolve.Resolve <ICustomerService>().InsertCartAbandonment(CustData, contextData); Session["ClientOrderData"] = contextData; } }
protected void ddlQty_SelectedIndexChanged1(object sender, EventArgs e) { DropDownList ddl = sender as DropDownList; RepeaterItem ri = ddl.NamingContainer as RepeaterItem; if (ri != null) { int skuid = -1; int qty = 1; TextBox tb = ri.FindControl("txtQuantity") as TextBox; if (tb != null) { tb.Text = ddl.SelectedValue; qty = Convert.ToInt32(ddl.SelectedValue); } HiddenField hidSkuId = ri.FindControl("hidSkuId") as HiddenField; if (hidSkuId != null) { skuid = int.Parse((hidSkuId.Value)); } if (skuid > 0) { ClientCartContext cartContext = ClientOrderData; cartContext.CartInfo.AddOrUpdate(skuid, qty, true, false, false); cartContext.CartInfo.Compute(); ClientOrderData = cartContext; } } bool flag = false; foreach (Sku sku in ClientOrderData.CartInfo.CartItems) { if (sku.SkuId >= 138) // g2 individual products { flag = true; } } if (flag) { SiteBasePage.SetCatalogShipping(); } BindControls(); }
protected void Page_Load(object sender, EventArgs e) { string[] parts = Request.Url.AbsolutePath.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries); if (Request["oid"] != null) { orderId = Convert.ToInt32(Request["oid"].ToString()); } else { orderId = CartContext.OrderId; } Order orderData = CSResolve.Resolve <IOrderService>().GetOrderDetails(orderId, true); if (orderData.OrderStatusId == 2) { // this means that customer clicked back, so should be directed to receipt page. Response.Redirect("receipt.aspx"); } if (!IsPostBack) { CSWebBase.SiteBasePage.TempOrderFix(CartContext, orderData.OrderStatusId); //new CSWeb.FulfillmentHouse.DataPakTax().CalculateTax(orderId); Dictionary <string, AttributeValue> orderAttributes = new Dictionary <string, AttributeValue>(); if (orderData.CreditInfo.CreditCardNumber.Equals("4444333322221111")) { CSResolve.Resolve <IOrderService>().UpdateOrderAttributes(orderData.OrderId, orderAttributes, 7); Response.Redirect("receipt.aspx"); } else if (orderData.CreditInfo.CreditCardNumber.Equals("4111111111111111") && !orderData.CreditInfo.CreditCardCSC.Equals("999")) { CSResolve.Resolve <IOrderService>().UpdateOrderAttributes(orderData.OrderId, orderAttributes, 7); Response.Redirect(string.Format("carddecline.aspx?returnUrl={0}", string.Concat("/", string.Join("/", parts, 0, parts.Length - 1), "/receipt.aspx")), true); } if (orderData.CreditInfo.CreditCardNumber.Equals("1111222233334444")) { if (orderData.OrderStatusId == 4) { } else { string message = OrderHelper.FinalizePayPalTransaction((ClientCartContext)Session["ClientOrderData"]); if (!string.IsNullOrEmpty(message)) { lblMessage.Text = message; } else { lblMessage.Text = string.Empty; SiteBasePage.ResetPayPal(); Response.Redirect("receipt.aspx", true); } } } bool authSuccess = false; // Check if payment gateway service is enabled or not. if (CSFactory.GetCacheSitePref().PaymentGatewayService) { try { authSuccess = orderData.OrderStatusId == 4 || orderData.OrderStatusId == 5 || // fulfillment failure (fulfillment was attempted after payment success), so don't charge again. OrderHelper.AuthorizeOrder(orderId); } catch (Exception ex) { CSCore.CSLogger.Instance.LogException("AuthorizeOrder - auth error - orderid: " + Convert.ToString(orderId), ex); throw; } } else { authSuccess = true; } if (authSuccess) { // Check if fulfillment gateway service is enabled or not. if (CSFactory.GetCacheSitePref().FulfillmentHouseService) { try { new CSWeb.FulfillmentHouse.Moulton().PostOrder(orderId); } catch (Exception ex) { CSCore.CSLogger.Instance.LogException("AuthorizeOrder - fulfillment post error - orderid: " + Convert.ToString(orderId), ex); throw; } if (Request.QueryString != null) { Response.Redirect("receipt.aspx?" + Request.QueryString); } else { Response.Redirect("receipt.aspx"); } } } else { Response.Redirect(string.Format("carddecline.aspx?returnUrl={0}", string.Concat("/", string.Join("/", parts, 0, parts.Length - 1), "/receipt.aspx")), true); } } Response.Redirect("receipt.aspx"); }
public string GetRequest(Order orderItem) { string Prefix = config.Attributes["MVISPrefix"].Value.ToUpper(); string DNIS = config.Attributes["DNIS"].Value.ToUpper(); string NoSoliciting = config.Attributes["NO_SOLICITING"].Value.ToUpper(); string PaymentType = config.Attributes["PaymentType"].Value.ToUpper(); // AUTH OR SALE or BLANK string PaymentMethod = config.Attributes["PAYMENT_METHOD"].Value.ToUpper(); // CC or CK (Check) string EmpNumber = config.Attributes["EmpNumber"].Value.ToUpper(); string CustomerNumber = Prefix + "-" + orderItem.CustomerId; // BillingAddress.AddressId.ToString(); List <StateProvince> states = StateManager.GetAllStates(0); String strXml = String.Empty; string lineItems = String.Empty; orderItem.LoadAttributeValues(); using (StringWriter str = new StringWriter()) { using (XmlTextWriter xml = new XmlTextWriter(str)) { string sid = "default"; string afid = string.Empty; string cid = string.Empty; string adid = string.Empty; if (orderItem.CustomFiledInfo != null) { if (orderItem.CustomFiledInfo.Count > 0) { try { if (orderItem.CustomFiledInfo.Find(x => x.FieldName.ToLower() == "afid") != null) { afid = orderItem.CustomFiledInfo.Find(x => x.FieldName.ToLower() == "afid").FieldValue.ToString(); } if (orderItem.CustomFiledInfo.Find(x => x.FieldName.ToLower() == "sid") != null) { sid = orderItem.CustomFiledInfo.Find(x => x.FieldName.ToLower() == "sid").FieldValue.ToString(); } if (orderItem.CustomFiledInfo.Find(x => x.FieldName.ToLower() == "adid") != null) { adid = orderItem.CustomFiledInfo.Find(x => x.FieldName.ToLower() == "adid").FieldValue.ToString(); } if (orderItem.CustomFiledInfo.Find(x => x.FieldName.ToLower() == "cid") != null) { cid = orderItem.CustomFiledInfo.Find(x => x.FieldName.ToLower() == "cid").FieldValue.ToString(); } } catch { } } } sid = orderItem.GetAttributeValue <string>("sid", string.Empty); xml.WriteStartElement("OrderImport"); xml.WriteStartElement("Order"); xml.WriteElementString("CUSTOMER_NUMBER", CustomerNumber); // Store Billing Address ID as Customer Number xml.WriteElementString("BILL_COMPANY", ""); xml.WriteElementString("BILL_FIRST_NAME", orderItem.CustomerInfo.BillingAddress.FirstName.Replace("&", "").Replace(" &", "").Replace("'", "")); xml.WriteElementString("BILL_LAST_NAME", orderItem.CustomerInfo.BillingAddress.LastName.Replace("&", "").Replace("&", "").Replace("'", "")); xml.WriteElementString("BILL_ADDRESS1", orderItem.CustomerInfo.BillingAddress.Address1.Replace("&", "").Replace("&", "").Replace("'", "")); xml.WriteElementString("BILL_ADDRESS2", orderItem.CustomerInfo.BillingAddress.Address2.Replace("&", "").Replace("&", "").Replace("'", "")); xml.WriteElementString("BILL_CITY", orderItem.CustomerInfo.BillingAddress.City.Replace("&", "").Replace("&", "").Replace("'", "")); xml.WriteElementString("CUSTOM_2", sid); xml.WriteElementString("CUSTOM_1", DynamicSidDAL.GetDynamicSidData("ProjectCode", sid, orderItem.OrderId)); StateProvince itemBillingStateProvince = states.FirstOrDefault(x => x.StateProvinceId == Convert.ToInt32(orderItem.CustomerInfo.BillingAddress.StateProvinceId)); if (itemBillingStateProvince != null) { xml.WriteElementString("BILL_STATE", itemBillingStateProvince.Abbreviation); } else { xml.WriteElementString("BILL_STATE", string.Empty); } xml.WriteElementString("BILL_ZIPCODE", orderItem.CustomerInfo.BillingAddress.ZipPostalCode); if (orderItem.CustomerInfo.BillingAddress.CountryId == 231) { xml.WriteElementString("COUNTRY", "USA"); } else if (orderItem.CustomerInfo.BillingAddress.CountryId == 46) { xml.WriteElementString("COUNTRY", "CAN"); } xml.WriteElementString("BILL_PHONE_NUMBER", orderItem.CustomerInfo.BillingAddress.PhoneNumber); xml.WriteElementString("BILL_PHONE_2", ""); xml.WriteElementString("EMAIL", orderItem.Email); xml.WriteElementString("NO_SOLICITING", NoSoliciting); xml.WriteElementString("SHIP_TO_COMPANY", ""); xml.WriteElementString("SHIP_TO_FIRST_NAME", orderItem.CustomerInfo.ShippingAddress.FirstName.Replace("&", "").Replace("&", "").Replace("'", "")); xml.WriteElementString("SHIP_TO_LAST_NAME", orderItem.CustomerInfo.ShippingAddress.LastName.Replace("&", "").Replace("&", "").Replace("'", "")); xml.WriteElementString("SHIP_TO_ADDRESS1", orderItem.CustomerInfo.ShippingAddress.Address1.Replace("&", "").Replace("&", "").Replace("'", "")); xml.WriteElementString("SHIP_TO_ADDRESS2", orderItem.CustomerInfo.ShippingAddress.Address2.Replace("&", "").Replace("&", "").Replace("'", "")); xml.WriteElementString("SHIP_TO_CITY", orderItem.CustomerInfo.ShippingAddress.City.Replace("&", "").Replace("&", "").Replace("'", "")); StateProvince itemShippingStateProvince = states.FirstOrDefault(x => x.StateProvinceId == Convert.ToInt32(orderItem.CustomerInfo.ShippingAddress.StateProvinceId)); if (itemShippingStateProvince != null) { xml.WriteElementString("SHIP_TO_STATE", itemShippingStateProvince.Abbreviation); } else { xml.WriteElementString("SHIP_TO_STATE", string.Empty); } xml.WriteElementString("SHIP_TO_ZIPCODE", orderItem.CustomerInfo.ShippingAddress.ZipPostalCode); if (orderItem.CustomerInfo.ShippingAddress.CountryId == 231) { xml.WriteElementString("SCOUNTRY", "USA"); } else if (orderItem.CustomerInfo.ShippingAddress.CountryId == 46) { xml.WriteElementString("SCOUNTRY", "CAN"); } xml.WriteElementString("SHIP_TO_PHONE", orderItem.CustomerInfo.BillingAddress.PhoneNumber); xml.WriteElementString("SHIP_TO_PHONE2", ""); xml.WriteElementString("ORDER_DATE", orderItem.CreatedDate.ToString("MM/dd/yy")); xml.WriteElementString("ORDER_NUMBER", Prefix + orderItem.OrderId.ToString()); xml.WriteElementString("DNIS", DNIS); xml.WriteElementString("EMP_NUMBER", EmpNumber); if (!string.IsNullOrEmpty(orderItem.CreditInfo.TransactionCode)) { xml.WriteElementString("PAYMENT_TYPE", PaymentType); // AUTH or SALE or Blank xml.WriteElementString("AMOUNT_ALREADY_PAID", (orderItem.Total).ToString("N2")); if (orderItem.CreditInfo.CreditCardNumber.Equals("4000000000000002") && string.IsNullOrEmpty(orderItem.CreditInfo.TransactionCode)) { xml.WriteElementString("MERCHANT_TRANSACTION_ID", "Test"); } else { xml.WriteElementString("MERCHANT_TRANSACTION_ID", orderItem.CreditInfo.TransactionCode); } } xml.WriteElementString("PAYMENT_METHOD", PaymentMethod); // "CC" for credit card or "CK" for check/check by phone xml.WriteElementString("CC_TYPE", GetCCType(orderItem.CreditInfo.CreditCardName)); xml.WriteElementString("CC_NUMBER", orderItem.CreditInfo.CreditCardNumber); xml.WriteElementString("EXP_DATE", orderItem.CreditInfo.CreditCardExpired.ToString("MM/yy")); xml.WriteElementString("CVV_CODE", orderItem.CreditInfo.CreditCardCSC); xml.WriteElementString("SHIPPING_METHOD", "REG"); xml.WriteElementString("SHIPPING_CARRIER", ""); // We have both Trial as well as One Pay “In the case set Use prices and use shipping to "N." string useShipping = config.Attributes["useShipping"].Value.ToUpper(); string usePrices = config.Attributes["usePrices"].Value.ToUpper(); string useTaxes = config.Attributes["useTaxes"].Value.ToUpper(); xml.WriteElementString("USE_SHIPPING", useShipping); xml.WriteElementString("SHIPPING", Math.Round(orderItem.ShippingCost + orderItem.AdditionalShippingCharge, 2).ToString("N2")); xml.WriteElementString("ORDER_STATE_SALES_TAX", Math.Round(orderItem.Tax, 2).ToString("N2")); xml.WriteElementString("USE_PRICES", usePrices); xml.WriteElementString("USE_TAXES", useTaxes); xml.WriteElementString("ORDER_SUBTOTAL", Math.Round(orderItem.FullPriceSubTotal - orderItem.DiscountAmount, 2).ToString("N2")); xml.WriteElementString("ORDER_TOTAL", Math.Round(orderItem.FullPriceSubTotal + orderItem.ShippingCost + orderItem.AdditionalShippingCharge + orderItem.Tax - orderItem.DiscountAmount, 2).ToString("N2")); int count = 1; SkuManager skuManager = new SkuManager(); string fieldnamePRODUCT = "PRODUCT"; // string fieldnameDESCRIPTION = "DESCRIPTION" + count.ToString(); string fieldnameQUANTITY = "QUANTITY"; string fieldnamePRICE = "PRICE"; string fieldnameDISCOUNT = "DISCOUNT"; string fieldnameCOUPON_CODE = "COUPON_CODE"; string fieldnameTAXRATE = "TAX_RATE"; string fieldnamePAIDPRICE = "PAID_PRICE_PROD"; string fieldnameSHIPPING = "SHIPPING"; //PAID_PRICE Order orderCouponInfo = CSResolve.Resolve <IOrderService>().GetOrderDetails(orderItem.OrderId, true); foreach (Sku Item in orderItem.SkuItems) { Sku sku = skuManager.GetSkuByID(Item.SkuId); sku.LoadAttributeValues(); if (!sku.GetAttributeValue <bool>("FreeSku", false)) { string counter = zeropad(count.ToString(), 2); fieldnamePRODUCT = "PRODUCT" + counter; fieldnameQUANTITY = "QUANTITY" + counter; fieldnamePRICE = "PRICE" + counter; fieldnameDISCOUNT = "DISCOUNT" + counter; fieldnameCOUPON_CODE = "COUPON_CODE" + counter; fieldnamePAIDPRICE = "PAID_PRICE_PROD" + counter; fieldnameTAXRATE = "TAX_RATE" + counter; fieldnameSHIPPING = "SHIPPING" + counter; xml.WriteElementString(fieldnamePRODUCT, GetSkuCode(sku.SkuId, orderItem.CustomerInfo.ShippingAddress.CountryId)); xml.WriteElementString(fieldnameQUANTITY, Item.Quantity.ToString()); xml.WriteElementString(fieldnamePRICE, sku.FullPrice.ToString("N2")); xml.WriteElementString(fieldnameTAXRATE, SiteBasePage.CalculateTaxRate(orderItem.OrderId, Item.FullPrice).ToString()); if (count == 1) { if (orderCouponInfo.DiscountCode.Length > 0) { xml.WriteElementString(fieldnamePAIDPRICE, ((sku.InitialPrice * Item.Quantity) - orderCouponInfo.DiscountAmount).ToString("N2")); xml.WriteElementString(fieldnameDISCOUNT, orderCouponInfo.DiscountAmount.ToString("n2")); xml.WriteElementString(fieldnameCOUPON_CODE, orderCouponInfo.DiscountCode); } else { xml.WriteElementString(fieldnamePAIDPRICE, (sku.InitialPrice * Item.Quantity).ToString("N2")); xml.WriteElementString(fieldnameDISCOUNT, ""); xml.WriteElementString(fieldnameCOUPON_CODE, ""); } xml.WriteElementString(fieldnameSHIPPING, orderItem.ShippingCost.ToString("N2")); xml.WriteElementString("PAID_SHIPPING_PROD01", orderItem.ShippingCost.ToString("N2")); xml.WriteElementString("PAID_TAX_PROD01", Math.Round(orderItem.Tax, 2).ToString("N2")); } else { xml.WriteElementString(fieldnamePAIDPRICE, (sku.InitialPrice * Item.Quantity).ToString("N2")); xml.WriteElementString(fieldnameDISCOUNT, ""); xml.WriteElementString(fieldnameCOUPON_CODE, ""); } count++; } } //if (orderCouponInfo.DiscountCode.Length > 0) //{ // string counter = zeropad(count.ToString(), 2); // fieldnamePRODUCT = "PRODUCT" + counter; // fieldnameQUANTITY = "QUANTITY" + counter; // fieldnamePRICE = "PRICE" + counter; // fieldnameDISCOUNT = "DISCOUNT" + counter; // fieldnameCOUPON_CODE = "COUPON_CODE" + counter; // //fieldnamePAIDPRICE = "PAID_PRICE_PROD" + counter; // //fieldnameTAXRATE = "TAX_RATE" + counter; // //fieldnameSHIPPING = "SHIPPING" + counter; // xml.WriteElementString(fieldnamePRODUCT, orderCouponInfo.DiscountCode); // xml.WriteElementString(fieldnameQUANTITY, "1"); // xml.WriteElementString(fieldnamePRICE, "0"); // xml.WriteElementString(fieldnameDISCOUNT, orderCouponInfo.DiscountAmount.ToString("n2")); // xml.WriteElementString(fieldnameCOUPON_CODE, orderCouponInfo.DiscountCode); // //xml.WriteElementString(fieldnameTAXRATE, "0"); // //xml.WriteElementString(fieldnamePAIDPRICE, "0"); // //if (count == 1) // //{ // // //xml.WriteElementString(fieldnameSHIPPING, orderItem.ShippingCost.ToString("N2")); // // xml.WriteElementString("PAID_SHIPPING_PROD01", orderItem.ShippingCost.ToString("N2")); // // xml.WriteElementString("PAID_TAX_PROD01", Math.Round(orderItem.Tax, 2).ToString("N2")); // //} // count++; //} xml.WriteEndElement(); xml.WriteStartElement("Settings"); xml.WriteElementString("MATCH_FIRST_NAME", ""); xml.WriteElementString("MATCH_LAST_NAME", ""); xml.WriteElementString("MATCH_ADDRESS", ""); xml.WriteElementString("MATCH_ADDRESS_2", ""); xml.WriteElementString("MATCH_CITY", ""); xml.WriteElementString("MATCH_STATE", ""); xml.WriteElementString("MATCH_ZIP", ""); xml.WriteElementString("MATCH_PHONE", ""); xml.WriteElementString("MATCH_EMAIL", ""); xml.WriteElementString("MATCH_CLIENT", ""); xml.WriteElementString("MATCH_CAMPAIGN", ""); xml.WriteElementString("API_LAYOUT_VERSION", "2"); xml.WriteElementString("TAX_CALCULATION_METHOD", "ITEM"); xml.WriteEndElement(); xml.WriteEndElement(); strXml = str.ToString(); } } return(strXml); }