Most common carriers don't handle packages that weigh more than 150lbs. Or, if they do, they have special freight rates. Usually, you get the best rate by negotiating with an LTL trucking service. Unfortunately, most don't have an API that can be called from an eCommerce system, and if they do, nopCommerce does not have any out-of-the-box. (Also, Freight Rates can be a little tricky, because they sometimes require a Freight Class, but we won't go into that here)
In a previous blog, I showed how Shipping Director can deal with Freight scenarios by using your own rate lookup tables . Here's another way that has a carrier's freight rates entered using the Shipping.ByWeight plugin, and then use Shipping Director to handle using Fedex plugin if weight is <= 150 lbs, or use ByWeight plugin to get freight rate if weight is > 150 lbs
Type | Name | Expression | Rate Expression | Surcharge Expression |
Decimal | Freight Fuel Surcharge % | 30.7 |
|
|
OptionExit | FedEx | [$TotalWeight] <= 150 | Shipping.Fedex |
|
String | State | ShippingAddress.StateProvince.Abbreviation |
|
|
ErrorExit | No Freight State | "AK,HI,ID,MT,NM,ND,SD,TX,WY".Contains([State]) |
|
|
Option | Freight | true | Shipping.ByWeight | [$Rate] * ([Freight Fuel Surcharge %] / 100.0) |
The freight rates don't change that often, but Fuel Surcharge % does, so it can be easily adjusted.
Also, you can prevent customers from shipping freight to the states that your carrier does not handle - Use the Decription Expression to show them a friendly message.