private void LoadShippingMethods(Order o) { var rates = new SortableCollection <ShippingRateDisplay>(); if (!o.HasShippingItems) { var r = new ShippingRateDisplay { DisplayName = GlobalLocalization.GetString("NoShippingRequired"), ProviderId = string.Empty, ProviderServiceCode = string.Empty, Rate = 0, ShippingMethodId = "NOSHIPPING" }; rates.Add(r); } else { // Shipping Methods rates = HccApp.OrderServices.FindAvailableShippingRates(o); if (rates.Count < 1) { var result = new ShippingRateDisplay(); result.DisplayName = GlobalLocalization.GetString("ToBeDetermined"); result.ShippingMethodId = "TOBEDETERMINED"; result.Rate = 0; rates.Add(result); } } litShippingMethods.Text = HtmlRendering.ShippingRatesToRadioButtons(rates, 300, o.ShippingMethodUniqueKey); }
public ActionResult GetRatesAsRadioButtons(FormCollection form) { var result = new ShippingRatesJsonModel(); var country = form["country"] ?? string.Empty; var firstname = form["firstname"] ?? string.Empty; var lastname = form["lastname"] ?? string.Empty; var address = form["address"] ?? string.Empty; var city = form["city"] ?? string.Empty; var state = form["state"] ?? string.Empty; var zip = form["zip"] ?? string.Empty; var orderid = form["orderid"] ?? string.Empty; var order = HccApp.OrderServices.Orders.FindForCurrentStore(orderid); order.ShippingAddress.FirstName = firstname; order.ShippingAddress.LastName = lastname; order.ShippingAddress.Line1 = address; order.ShippingAddress.City = city; order.ShippingAddress.PostalCode = zip; var c = HccApp.GlobalizationServices.Countries.Find(country); if (c != null) { order.ShippingAddress.CountryBvin = country; var region = c.Regions. FirstOrDefault(r => r.Abbreviation == state); if (region != null) { order.ShippingAddress.RegionBvin = region.Abbreviation; } } var rates = HccApp.OrderServices.FindAvailableShippingRates(order); if (rates != null && rates.Count > 0) { var selectedRate = rates. OfType <ShippingRateDisplay>(). FirstOrDefault(r => r.UniqueKey == order.ShippingMethodUniqueKey); if (selectedRate == null) { selectedRate = rates[0]; } HccApp.OrderServices.OrdersRequestShippingMethod(selectedRate, order); } else { order.ClearShippingPricesAndMethod(); } result.rates = HtmlRendering.ShippingRatesToRadioButtons(rates, 300, order.ShippingMethodUniqueKey); HccApp.CalculateOrderAndSave(order); return(new PreJsonResult(Web.Json.ObjectToJson(result))); }
private void RenderProductOptions(Product p) { litProductInfo.Text = p.ProductName; phChoices.Controls.Clear(); HtmlRendering.ProductOptionsAsControls(p, phChoices); pnlUserPrice.Visible = p.IsUserSuppliedPrice; lblUserPrice.Text = p.UserSuppliedPriceLabel ?? "User Price"; }
private void SetProducts(ContentBlockSettingListItem data) { string bvin = data.Setting1; Product p = MyPage.MTApp.CatalogServices.Products.Find(bvin); StringBuilder sb = new StringBuilder(); UserSpecificPrice price = MyPage.MTApp.PriceProduct(p, MyPage.MTApp.CurrentCustomer, null); HtmlRendering.RenderSingleProduct(ref sb, p, false, false, this.Page, price); this.litMain.Text = sb.ToString(); }
//GET: /{*slug} public ActionResult Index(string slug) { // Basic Setup ProductPageViewModel model = IndexSetup(slug); // Load an line item specific values LoadLineItemValues(model); // Render Options model.PreRenderedOptions = HtmlRendering.ProductOptions(model.LocalProduct.Options, model.Selections); // Record and Return view PersonalizationServices.RecordProductViews(model.LocalProduct.Bvin, MTApp); return(View(model)); }
public List <HtmlTemplateTag> DefaultReplacementTags(HccRequestContext context) { var tags = new List <HtmlTemplateTag>(); var store = context.CurrentStore; var hccApp = new HotcakesApplication(context); var addressRepository = Factory.CreateRepo <AddressRepository>(context); tags.Add(new HtmlTemplateTag("[[Store.Address]]", addressRepository.FindStoreContactAddress().ToHtmlString())); tags.Add(new HtmlTemplateTag("[[Store.ContactEmail]]", store.Settings.MailServer.EmailForGeneral)); tags.Add(new HtmlTemplateTag("[[Store.Logo]]", HtmlRendering.Logo(hccApp, false))); tags.Add(new HtmlTemplateTag("[[Store.SecureUrl]]", store.RootUrlSecure())); tags.Add(new HtmlTemplateTag("[[Store.StoreName]]", store.Settings.FriendlyName)); tags.Add(new HtmlTemplateTag("[[Store.RawStoreName]]", store.StoreName)); tags.Add(new HtmlTemplateTag("[[Store.StandardUrl]]", store.RootUrl())); tags.Add(new HtmlTemplateTag("[[Store.CurrentLocalTime]]", DateTime.Now.ToString())); tags.Add(new HtmlTemplateTag("[[Store.CurrentUtcTime]]", DateTime.UtcNow.ToString())); return(tags); }
private void LoadShippingMethodsForOrder(Order o) { SortableCollection <ShippingRateDisplay> rates = MTApp.OrderServices.FindAvailableShippingRates(o, MTApp.CurrentStore); string rateKey = o.ShippingMethodUniqueKey; bool rateIsAvailable = false; // See if rate is available if ((rateKey.Length > 0)) { foreach (MerchantTribe.Commerce.Shipping.ShippingRateDisplay r in rates) { if ((r.UniqueKey == rateKey)) { rateIsAvailable = true; MTApp.OrderServices.OrdersRequestShippingMethod(r, o); } } } // if it's not availabe, pick the first one or default if ((rateIsAvailable == false)) { if ((rates.Count > 0)) { MTApp.OrderServices.OrdersRequestShippingMethod(rates[0], o); rateKey = rates[0].UniqueKey; } else { o.ClearShippingPricesAndMethod(); } } ViewBag.ShippingRates = HtmlRendering.ShippingRatesToRadioButtons(rates, 300, o.ShippingMethodUniqueKey); }
private void LoadShippingMethodsForOrder(Order o) { var rates = HccApp.OrderServices.FindAvailableShippingRates(o); var rateKey = o.ShippingMethodUniqueKey; var rateIsAvailable = false; // See if rate is available if (rateKey.Length > 0) { foreach (ShippingRateDisplay r in rates) { if (r.UniqueKey == rateKey) { rateIsAvailable = true; HccApp.OrderServices.OrdersRequestShippingMethod(r, o); } } } // if it's not availabe, pick the first one or default if (rateIsAvailable == false) { if (rates.Count > 0) { HccApp.OrderServices.OrdersRequestShippingMethod(rates[0], o); rateKey = rates[0].UniqueKey; } else { o.ClearShippingPricesAndMethod(); } } ViewBag.ShippingRates = HtmlRendering.ShippingRatesToRadioButtons(rates, 300, o.ShippingMethodUniqueKey); }
public ActionResult IndexPost(string slug) { ProductPageViewModel model = IndexSetup(slug); // see if we're editing a line item instead of a new add string lineItemString = Request.Form["lineitemid"]; if (!string.IsNullOrEmpty(lineItemString)) { if (model.LineItemId == string.Empty) { model.LineItemId = lineItemString; } } ParseSelections(model); if (Request.Form["savelaterbutton.x"] != null) { // Save for Later MTApp.CatalogServices.SaveProductToWishList(model.LocalProduct, model.Selections, 1, MTApp); return(Redirect("~/account/saveditems")); } else { // Add to Cart bool IsPurchasable = ValidateSelections(model); if ((IsPurchasable)) { DetermineQuantityToAdd(model); if (model.Quantity > 0) { LineItem li = MTApp.CatalogServices.ConvertProductToLineItem(model.LocalProduct, model.Selections, model.Quantity, MTApp); Order Basket = SessionManager.CurrentShoppingCart(MTApp.OrderServices, MTApp.CurrentStore); if (Basket.UserID != MTApp.CurrentCustomerId) { Basket.UserID = MTApp.CurrentCustomerId; } if (model.LineItemId.Trim().Length > 0) { long lineItemId = 0; long.TryParse(model.LineItemId, out lineItemId); var toRemove = Basket.Items.Where(y => y.Id == lineItemId).SingleOrDefault(); if (toRemove != null) { Basket.Items.Remove(toRemove); } } MTApp.AddToOrderWithCalculateAndSave(Basket, li); SessionManager.SaveOrderCookies(Basket, MTApp.CurrentStore); return(Redirect("~/cart")); } } } // Load Selections from form here // Do checks and add model.PreRenderedOptions = HtmlRendering.ProductOptions(model.LocalProduct.Options, model.Selections); return(View(model)); }
public ActionResult GetRatesAsRadioButtons(FormCollection form) { ShippingRatesJsonResponse result = new ShippingRatesJsonResponse(); string country = form["country"] ?? string.Empty; string firstname = form["firstname"] ?? string.Empty; string lastname = form["lastname"] ?? string.Empty; string address = form["address"] ?? string.Empty; string city = form["city"] ?? string.Empty; string state = form["state"] ?? string.Empty; string zip = form["zip"] ?? string.Empty; string orderid = form["orderid"] ?? string.Empty; Order o = MTApp.OrderServices.Orders.FindForCurrentStore(orderid); o.ShippingAddress.FirstName = firstname; o.ShippingAddress.LastName = lastname; o.ShippingAddress.Line1 = address; o.ShippingAddress.City = city; o.ShippingAddress.PostalCode = zip; Country c = Country.FindByBvin(country); if ((c != null)) { o.ShippingAddress.CountryBvin = country; o.ShippingAddress.CountryName = c.DisplayName; foreach (Region r in c.Regions) { if ((r.Abbreviation == state)) { o.ShippingAddress.RegionBvin = r.Abbreviation; o.ShippingAddress.RegionName = r.Name; } } } SortableCollection <ShippingRateDisplay> rates = MTApp.OrderServices.FindAvailableShippingRates(o); string rateKey = o.ShippingMethodUniqueKey; bool rateIsAvailable = false; // See if rate is available if ((rateKey.Length > 0)) { foreach (MerchantTribe.Commerce.Shipping.ShippingRateDisplay r in rates) { if ((r.UniqueKey == rateKey)) { rateIsAvailable = true; MTApp.OrderServices.OrdersRequestShippingMethod(r, o); } } } // if it's not availabe, pick the first one or default if ((rateIsAvailable == false)) { if ((rates.Count > 0)) { MTApp.OrderServices.OrdersRequestShippingMethod(rates[0], o); rateKey = rates[0].UniqueKey; } else { o.ClearShippingPricesAndMethod(); } } result.rates = HtmlRendering.ShippingRatesToRadioButtons(rates, 300, o.ShippingMethodUniqueKey); MTApp.CalculateOrderAndSave(o); SessionManager.SaveOrderCookies(o, MTApp.CurrentStore); result.totalsastable = o.TotalsAsTable(); //System.Threading.Thread.Sleep(500) return(new PreJsonResult(MerchantTribe.Web.Json.ObjectToJson(result))); }