Magento 2.1 Shopping Cart Price Rules – Free Shipping Setup

magento-2.1shopping-cart-price-rules

I've tried applying a free shipping rule to a brand of products if the order is over $50.
However, it doesn't seem to actually apply.
The rule I have is:

-No Coupon
-Conditions:   =if ALL of these cond. are TRUE:
    = Subtotal equal or greater than 50
    = If an item is FOUND in the cart with ALL of these conditions:
        = Manufacturer: is X
        = Quantity in Cart equals or greater than 1

Actions:
= Apply: Percent of product price discount
= Discount amount: 0
= Max Qty: 1000 Apply to Shipping Amount: Yes 
= Discard Subsequent rules: no 
= Free Shipping: For shipment with matching items:  
   = If ALL of these conditions are True:  
       = Manufacturer is: X  
       = Quantity in cart is equal or greater than 1

Not sure why this isnt working if I add 20 of an item from Manufacturer X and the value is over $50, this isnt getting applied at all.

My shipping setup is as follows:

Two websites, store and store_views:

1) WebsiteUSA, StoreUSA, USA (Default, US currency) [this is for US and International customers]
2) WebsiteCA, StoreCA, CA (CAD currency) [Canada customers only]

Default and USA shipping:

UPS: 
Enabled: Yes
Live Acccount: Yes
Free Method: Ground
Free Shipping Amount Threshold: Disabled
Specific Countries: Everywhere excluding Canada
Show Method if Not Applicable: Yes
Debug: Yes

Flat Rate, Free Shipping, Table Rates, USPS, FEDEX, DHL: Enabled: No

Canadian Store Shipping:

Flat Rate: Enable: YES
Title: City Location Only!
Method: In Store Pickup
Type: Per Order
Price: 0.00
Handling: 0
Specific Countries: Canada Only
Show Method if Not Applicable: Yes
Sort Order: 10

Free Shipping: Enable: No (for some odd reason, if I enable this, it appears ALL the time, regardless of settings)

UPS: Enabled: Yes
    Free Method: Ground
    Live Account: Yes
    Free Shipping Amount Threshold: Disabled
    Specific Countries: Canada Only
    Show Method if Not Applicable: Yes
    Debug: Yes

Table Rates, USPS, Fedex, DHL: Enable: No

We have the shipping setup slightly differently only because we get different rates per country.

Best Answer

Update With Full Instructions, Tested and Confirmed in Magento 2.1.6

Step One:

Create the a dropdown attribute and assign it to the product. Ensure that "Use for Promo Rule Conditions" is set to yes in the product attribute. For this example I'm calling mine "Brand" with Brand X, Brand Y, Brand Z as options.

Add the attribute to the attribute set that matches the product and save.

Step Two:

Enter the specific product and from the new "Brand" attribute select "Brand X" and save the product.

Step Three:

In Marketing>Cart Price Rules use the following settings.
Rule Information
Name: Free Shipping Brand X
Active: Yes
Websites: Select the websites that apply
Customer Groups: NOT LOGGED IN & General
Coupon: No Coupon
From: whatever date you want
To: whatever date you want

Actions
Apply: Precent of product price
Discount Amount: 0
Free Shipping: For shipment with matching items. ( This will make the entire order free shipping if Brand X is in cart )

Apply the rule only to cart items matching the following conditions (leave blank for all items).
If ALL  of these conditions are TRUE :
Quantity in cart  equals or greater than  1  
Brand  is  Brand X  
Save

Step Four:

Ensure you have a shipping method marked to use as Free Shipping. 
In System>Configuration go to the Sales>Shipping Methods and under the shipping method you want to update the "Free Method" field. Save and refresh your cache.

The free shipping rule will not apply unless it has a shipping method it can select for it.

Save, Refresh Cache and Test

Related Topic