Hi Ray, I'm looking at a fresh approach (as before I was overthinking and confusing different approaches).
I'm almost there, I just need a little help finishing of the logic.
Here is what I have done
(1) In my products table in the database I have I have 2 fields;ProductFreeDelivery and ProductCollectionOnly (these are both tinyint value of 0 or 1)
(2) in my eCart object I have added 2 columns: ProductFreeDelivery and ProductCollectionOnly (im using Output type: Number)
(3) In my eCart object for Calculations I have included:
(A) TotalWeight = [Weight] * [Quantity] * [ProductCollectionOnly] * [ProductFreeDelivery]
(B) TotalSize = ([Width] * [Height] * [Depth]) * [Quantity] * [ProductCollectionOnly] * [ProductFreeDelivery]
(4) On my product page the Add to cart server behaviour I have matched the bindings for both ProductCollectionOnly and ProductFreeDelivery
So from the above setup the the weight is calculated with any products with a value of 1 in the products table fields.
Its a little backwards, because the logic suggests that if 1 is set for (ProductCollection or ProductFreeDelivery) in the products table then include that product in the weight/size calculation) So I would need to reverse the 0 or 1 value in my admin page when admin is setting for those. Does that make sense? I guess I should have used your naming convention that you suggested with "ChargeShipping" since then any product with value of 1 would mean charge shipping. But even though my naming convention is backwards, it still works I assume. I'm just seeing if there are any issues i haven't thought of?