Maybe you're a small local store or restaurant, or pizza place; you want to offer local pickup at one of your two locations, or you will deliver nearby. Here's an example using State, but could also check ShippingAddress.ZipPostalCode or ShippingAddress.City
Order | Active | Type | Name | Expression | Rate Expression | Surcharge Expression | Name Expression | Description Expression |
10 |
| ErrorExit | No State Entered | ShippingAddress.StateProvince = null |
|
|
| "Please enter Country, State, and Zip" |
20 |
| ErrorExit | No Zip Entered | ShippingAddress.ZipPostalCode = null |
|
|
| "Please enter Country, State, and Zip" |
50 |
| String | ShippingState | ShippingAddress.StateProvince.Name |
|
|
|
|
100 |
| Option | In Store A Pickup | true | 0 |
|
|
|
110 |
| Option | In Store B Pickup | true | 0 |
|
|
|
200 |
| OptionExit | Local Delvery | [ShippingState] = "local 1" | 10 |
|
|
|
210 |
| OptionExit | Local Delivery | [ShippingState] = "local 2" | 20 |
|
|
|
300 |
| ErrorExit | Out of Area |
|
|
|
| "Sorry, we can’t deliver to that area" |
Also, this example shows fixed Rates, but you can also calculate some percentage of the cost, or fixed rate plus percentage, etc. using
[$SubTotalWithoutDiscounts]
[$SubTotalWithDiscounts]e.g. Rate = 5 + ( [$SubTotalWithDiscounts] * 0.05 )
(Note that only US and Canada have StateProvince configured by default in nopCommerce, so adjust/remove the above ErrorExit if needed)