Let's say Product A is in categories_id 51 and has master_categories_id 51 and we want to charge $12.00 shipping ... so if 1 Product A is sold you get $12.00 shipping if 2 Product A then $24.00 etc.
Customize the Table Rate table shipping module by changing the code in:
/includes/modules/shipping/table.php
Near the top of the file change:
Code:
if (zen_get_shipping_enabled($this->code)) {
$this->enabled = ((MODULE_SHIPPING_TABLE_STATUS == 'True') ? true : false);
}
To read, so that the module is not disabled by Always Free Shipping:
Code:
// if (zen_get_shipping_enabled($this->code)) {
$this->enabled = ((MODULE_SHIPPING_TABLE_STATUS == 'True') ? true : false);
// }
Code:
// bof: give categories_id 51 a charge of $12.00 per quantity
global $cart;
$chk_cat_51 = $_SESSION['cart']->in_cart_check('master_categories_id','51');
$chk_cat_51_shipping = $chk_cat_51 * 12.00;
$this->quotes = array('id' => $this->code,
'module' => MODULE_SHIPPING_TABLE_TEXT_TITLE . $show_box_weight,
'methods' => array(array('id' => $this->code,
'title' => MODULE_SHIPPING_TABLE_TEXT_WAY,
'cost' => $chk_cat_51_shipping + $shipping + (MODULE_SHIPPING_TABLE_HANDLING_METHOD == 'Box' ? MODULE_SHIPPING_TABLE_HANDLING * $shipping_num_boxes : MODULE_SHIPPING_TABLE_HANDLING) ) ));
// eof: give categories_id 51 a charge of $12.00 per quantity
Now, just mark the Products in categories_id 51 to be Always Free Shipping and set the 12.00 to what ever amount you want to charge for shipping on Products in categories_id 51 ...
Also set on the Table Rate table shipping a 0:0; in front of the existing rates, example:
0:0; 25:1.00; 50:2.50; 75;3.75; 100:4.00, 500:10%