I am having a heck of a time trying to get this setup. I have scoured the forums and found several solutions but NONE seem to work correctly. I'm hoping that I am either doing something wrong or that someone will be gracious enough to take a few minutes to help.
In short, how do I setup ubercart to only charge shipping if certain attribute options are added to the shopping cart?
The issue:
I have 6 attributes and a total of 16 total options. These are going to be pretty static so I'm willing to manually set this all up in CA. I need to provide free shipping (technically they are non-shippable but I don't think there is a way to set that on the option level, which is kinda dumb if you ask me...) for 8 of the options while the other 8 are flat rate shipping based on country. I have the country based charges setup and working just fine. Obviously, if the user adds two shippable products and 1 non-shippable product to their cart it should charge them shipping.
The solutions I've tried that don't work:
Attempt #1. I setup a Domestic and Non-Shippable Product flat rate shipping method. The Domestic would charge a flat rate of $5 per product and the Non-Shippable would charge nothing. My CA would use "Order has product with particular attribute option" and then I would setup 8 conditions with the shippable attribute options OR'ed together in a condition group. I would then do the same thing for the Non-Shippable CA but would negate all the conditions. This results in the Non-Shippable Product shipping method ALWAYS being chosen regardless of what type of product I add to the cart.
Attempt #2. I then tried to use the weight setting for each option to handle the shipping charge. This client does not have a need to use the weight settings so I was going to repurpose it. I set all the options that needed a shipping charge as "1" in their weight field on the options page. The options without shipping stayed at 0 or null. Then using CA I chose "Check an order's total weight". I set the Domestic shipping method CA to quote if the total weight was "equal to or greater than" 1. And then I did the same for the Non-Shippable Product CA only negated it.
In addition to the above issues (both #1 and #2), I receive this error 27 times on the cart page AND on the product page when I go from the cart page to the product page. Refreshing the page normally gets rid of the error but it consistently errors. warning: key() [function.key]: Passed variable is not an array or object in /var/www/sites/all/modules/contrib/ubercart/uc_attribute/uc_attribute.ca.inc on line 47.

