Dear Oysterrgirl,
Regarding your question about beers not requiring this packaging, you can use evaluate_for_categories to get the actual amount of bottles (i.e. the total number of articles in the order minus the number of packs of beer):
Variable=Bottles; Value=Articles-evaluate_for_categories(Articles, 1234)
Here, 1234 is the ID of the beer category. You can then use the variable Bottles later on just like any other variable.
Your extra shipping charge for bottles can also be implemented much easier using ExtraShippingCharge:
Variable=Box12; Value=round(Bottles/12-0.0001)
Variable=Box6; Value=round((Bottles-12*Box12)/6-0.0001)
Variable=Box3; Value=ceil((Bottles-12*Box12-6*Box6)/3)
ExtraShippingCharge=8*Box12+4*Box6+2.55*Box3
Place this at the top of your shipping rules, and the extra charge will be added to whatever rule matches later on.
This saves you a lot of duplicated rules...
Best regards,
Reinhold