You could use the Free Shipping Options freeoptions for Hammock and customize the two shipping modules ...
Customize the Zone Rates zones shipping module with the code in RED:
Code:
// disable only when entire cart is free shipping
if (zen_get_shipping_enabled($this->code)) {
$this->enabled = ((MODULE_SHIPPING_ZONES_STATUS == 'True') ? true : false);
}
// bof: disable if products_id 12 is in cart
if (!IS_ADMIN_FLAG) {
$chk_product = 0;
$chk_product = $_SESSION['cart']->in_cart_check('products_id','12');
if ($chk_product > 0) {
$this->enabled = false;
}
}
// eof: disable if products_id 12 is in cart
// CUSTOMIZE THIS SETTING FOR THE NUMBER OF ZONES NEEDED
$this->num_zones = 3;
and reverse the logic for the Free Shipping Options freeoptions where you can set the Total >= 0 to manage that shipping module, customized with the code above, but reversed ...
Code:
if ($chk_product == 0) {
$this->enabled = false;
}