Hi in the product editor of Craft Commerce by default there is a toggle switch for Free Shipping on the right side column. I have the base rate set up as a standard flat rate charge but wanted to know how to allow this toggle switch to remove the cost of shipping for that item. Can anyone point me to the documentation for it or let me know where I can access the functionality for this switch? Turning it on doesn't give me free shipping for that item and I cannot find anything in the official docs that helps me. Perhaps I'm looking in the wrong place?

Any help would be much appreciated. Thanks.

enter image description here


I have the base rate set up as a standard flat rate charge but wanted to know how to allow this toggle switch to remove the cost of shipping for that item.

Yeh that lightswitch isn't well named.

Unless you're using Commerce Lite you need to think about the cart as a whole not just a single product.

In general, only coupon codes and adjusters can remove shipping costs from items. What you want to do instead is make sure your store is setup so shipping doesn't apply in some cases but will in others. (More on this in a moment.)

What the lightswitch does

The free shipping toggle was documented in Commerce 1 (and seems to be missing in the current docs) but the info is still relevant - as far as I can tell:

Should the shipping calculator skip this product and its variants when adding costs to the order. This flag only works on shipping cost that is per item or weight based. Any order level base shipping costs in a shipping rule will be added to the order regardless of this checkbox.

The Free Shipping toggle only works for per item or weight-based shipping methods and you can't have a base rate set or it's going to use that rate as a minimum.

So when Commerce loops through the cart to figure out which shipping options it should spit out and how much, it's basically going to ignore any per item rules set for that item when that option is enabled however it won't zero any shipping rate already set as a base.

(You'd need to use an adjuster or coupon code to do that.)

This makes is handy for promotions in certain cases, maybe less so for general-purpose store management.

Free Shipping

In your case, if you want to provide free shipping for some products but not others, there's a few ways to do it depending on how your store is already setup:

  • Put that product in its own shipping category (eg free shipping) and restrict the methods it can use
  • Use weight-based shipping and set the products you want to have free shipping to be 0 weight and others to be more than .01.
  • Use per item shipping

In any case you want to set some rules so certain shipping methods would apply but not others.

  • 1
    Thanks very much for such a detailed response! When you say "per item" do you mean restricted to just buying 1 item at a time like in the lite version or do you mean each time someone adds something into the cart an extra shipping charge gets added and so on? Also is there a way to turn off the light switch if I'm not going to use it?
    – cannon303
    Nov 16 '21 at 1:15
  • @cannon303 - yeh per item means each item gets its own shipping charge applied (which could be a a percentage of the price of the item for example or a straight up amount.) So when you toggle the light switch it skips calculating for the item which could be useful or useless depending on your store. AFAIK there's not really a way to "turn off" the switch but you could hide it with something like control panel CSS and CSS that targets it. Nov 17 '21 at 0:21
  • 1
    thanks yes I've got that control panel css plugin and using it elsewhere in the cms so i guess I'll use that for this. Perhaps Craft CMS needs to overhaul or update some aspects of the commerce plugin.
    – cannon303
    Nov 17 '21 at 12:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.