private void LoadShippingMethodsForOrder(Order o) { 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(); } } ViewBag.ShippingRates = HtmlRendering.ShippingRatesToRadioButtons(rates, 300, o.ShippingMethodUniqueKey); }
public bool OrdersRequestShippingMethod(Shipping.ShippingRateDisplay r, Order o) { bool result = false; if (r != null) { o.ClearShippingPricesAndMethod(); o.ShippingMethodId = r.ShippingMethodId; o.ShippingProviderId = r.ProviderId; o.ShippingProviderServiceCode = r.ProviderServiceCode; result = true; } return result; }