How do I handle shipping when I have shippable and non shippable products

Hi, I'm wondering if there is a strategy for handling non-shippable products, I have installed commerce shipping and used the screencast by rfay to add extra shipping per item, but I also have non shipable products which need to always be ignored by the shipping module. In UC there was a "product is shipable" checkbox for this on the node creation form.

Is there something to do this in commerce so that commerce shipping doesn't look at non shippable product types when calculating rather than trying to remove shipping already calculated on non shipable products through rules.

Apologies in advance if there is something simple I am missing here.


Posted: Jan 19, 2012


BernieCram on January 19, 2012

I am looking at using the product type. Installed Commerce Extra Rules Conditions and I have added a 'Total product of type quantity comparison' condition to the collect rates: flat rates rule. Which works to a point. It falls down when you add additional per item shipping as per the screencast.

Works fine if you add a shippable products only. Works fine if you add non shippable products only. When you have shippable and non shippable products the additional per item shipping rule kicks in and makes a calculation on all the line items rather than just the shippable.

Any thoughts on how to modify the per item shipping calculation to only count shippable items?

I'll keep going as it is nearly there but any input is really appreciated.

Thanks for the screencasts too, very helpful!


BernieCram on January 25, 2012

I added some of the concepts used in the calculate shipping by weight video.


I have added a boolean checkbox to the shippable product type and added a rules component which calculates the quantity of shippable items. This component gets added to the loop in the additional items calculation rule and reordered before the calculate a value action. the calculate a value action can then use the new variable as input one.

Clear as mud, good. :)