Example - Free ground shipping on orders over $50, but want the customer to still have the option to pick the quicker options from Fedex at the regular price.

Use the Surcharge Expression to negate the rate if the shipping option name contains the word “Ground”.

Add new 'Shipping Director' record

Type

Option

Name

FedEx Free ground shipping only on orders over X

Expression

true

Rate Expression

Shipping.FedEx

Surcharge Expression

[$SubTotalWithDiscounts] > 50 and [$Name].Contains("Ground") ? -[$Rate] : 0

Name Expression

[$SubTotalWithDiscounts] > 50 and [$Name].Contains("Ground") ? "Free Ground Shipping" : [$Name]

Description Expression

 



Tags :  FreeShipping
Comments
Leave your comment
:
andy@chasecomputerservices.com
Created on: 4/9/2013 2:16 PM
I'd like to be able to utilize this scenario except instead of basing it on 'orders over x amount' I need to do it for a specific product.  For example, book A is free ground only shipping but all other overnight/priority are available at full cost.  Is this possible?
support@nopTools.com
Created on: 4/9/2013 3:48 PM
Andy

See this blog
http://www.noptools.com/blog/22/packing-removes-free-shipping-items

If you still have any questions, email support@noptools.com
thalia@myfootshop.com
Created on: 1/17/2014 12:54 PM
Hi Dennis-

You helped me set up my Free Shipping scenario a couple weeks back and it worked great until today:

[$SubTotalWithDiscounts] > 75 and [$Name].Contains("Priority Mail 2-Day") ? -[$Rate] : 0

The problem that we discovered today is that USPS SOMETIMES passes back an option called
"Priority Mail 3 day" for the customer to choose...and this value doesn't get caught by our condition.

How can I make an "or" clause to check for this other string value that might get returned from USPS?

Thanks!
Steve
thalia@myfootshop.com
Created on: 1/17/2014 12:55 PM
Oh...and I tried just whittling it down to "Priority Mail", but because their Express service now contains that same string, we'd end up giving away Express shipping...
support@nopTools.com
Created on: 1/17/2014 8:26 PM
You can use Regex.IsMatch to do a pattern match.  The "." will match  any single character:

[$SubTotalWithDiscounts] > 75 and Regex.IsMatch([$Name], "Priority Mail .-Day") ? -[$Rate] : 0