public Collection <ShippingRateDisplay> GetRates(List <ShippingGroup> groups) { Accounts.Store currentStore = RequestContext.GetCurrentRequestContext().CurrentStore; Collection <ShippingRateDisplay> result = new Collection <ShippingRateDisplay>(); MerchantTribe.Shipping.IShippingService p = Shipping.AvailableServices.FindById(this.ShippingProviderId, currentStore); if (p != null) { p.BaseSettings.Clear(); p.BaseSettings.Merge(this.Settings); List <IShippingRate> tempRates = p.RateShipment(ConvertGroupsToShipments(groups)); if (tempRates != null) { for (int i = 0; i <= tempRates.Count - 1; i++) { ShippingRateDisplay r = new ShippingRateDisplay(tempRates[i]); r.ShippingMethodId = this.Bvin; if (r.DisplayName == string.Empty) { r.DisplayName = this.Name; } AdjustRate(r); result.Add(r); } } } return(result); }
private void AdjustRate(ShippingRateDisplay r) { switch (this.AdjustmentType) { case ShippingMethodAdjustmentType.Amount: r.Rate = r.Rate + this.Adjustment; break; case ShippingMethodAdjustmentType.None: // Do Nothing break; case ShippingMethodAdjustmentType.Percentage: r.Rate = r.Rate + (r.Rate * (this.Adjustment / 100m)); break; } }
public Collection<ShippingRateDisplay> GetRates(List<ShippingGroup> groups) { Accounts.Store currentStore = RequestContext.GetCurrentRequestContext().CurrentStore; Collection<ShippingRateDisplay> result = new Collection<ShippingRateDisplay>(); MerchantTribe.Shipping.IShippingService p = Shipping.AvailableServices.FindById(this.ShippingProviderId, currentStore); if (p != null) { p.BaseSettings.Clear(); p.BaseSettings.Merge(this.Settings); List<IShippingRate> tempRates = p.RateShipment(ConvertGroupsToShipments(groups)); if (tempRates != null) { for (int i = 0; i <= tempRates.Count - 1; i++) { ShippingRateDisplay r= new ShippingRateDisplay(tempRates[i]); r.ShippingMethodId = this.Bvin; if (r.DisplayName == string.Empty) { r.DisplayName = this.Name; } AdjustRate(r); result.Add(r); } } } return result; }
private ShippingRateDisplay FindSelectedRate(string uniqueKey, Order o) { ShippingRateDisplay result = null; if (o.HasShippingItems == false) { result = new ShippingRateDisplay(); result.DisplayName = "No Shipping Required"; result.ProviderId = "NOSHIPPING"; result.ProviderServiceCode = "NOSHIPPING"; result.Rate = 0m; result.ShippingMethodId = "NOSHIPPING"; } else { MerchantTribe.Commerce.Utilities.SortableCollection<ShippingRateDisplay> rates = SessionManager.LastShippingRates; if ((rates == null) | (rates.Count < 1)) { rates = MTApp.OrderServices.FindAvailableShippingRates(o, MTApp.CurrentStore); } foreach (ShippingRateDisplay r in rates) { if (r.UniqueKey == uniqueKey) { result = r; break; } } } return result; }
private void LoadShippingMethods(Order o) { SortableCollection<ShippingRateDisplay> Rates = new SortableCollection<ShippingRateDisplay>(); if (o.HasShippingItems == false) { ShippingRateDisplay r = new ShippingRateDisplay(); r.DisplayName = SiteTerms.GetTerm(SiteTermIds.NoShippingRequired); r.ProviderId = ""; r.ProviderServiceCode = ""; r.Rate = 0; r.ShippingMethodId = "NOSHIPPING"; Rates.Add(r); } else { // Shipping Methods Rates = MTApp.OrderServices.FindAvailableShippingRates(o, MTApp.CurrentStore); if ((Rates.Count < 1)) { ShippingRateDisplay result = new ShippingRateDisplay(); result.DisplayName = "Shipping can not be calculated at this time. We will contact you after receiving your order with the exact shipping charges."; result.ShippingMethodId = "TOBEDETERMINED"; result.Rate = 0; Rates.Add(result); } } this.litShippingMethods.Text = MerchantTribe.Commerce.Utilities.HtmlRendering.ShippingRatesToRadioButtons(Rates, 300, o.ShippingMethodUniqueKey); }