S & H extra charge for some items
I have several items that are heavier than all my other items and I want to charge an additional $1.00 per item for shipping.
I am using a table rate based on merchandise total:
Up to $40.00 $6.49
$40.01 to $75.00 $7.49
$75.01 to $100.00 $8.49
The extra charge should be per HEAVY item ordered: 3 x 1.00= 3.00 + table rate.
Have searched the forum but can't find what I need.
Please help.
Thanks
Re: S & H extra charge for some items
About how many of these Heavy items do you have?
Re: S & H extra charge for some items
Hi,
About 8 - 12 depending on inventory levels.
Thanks
Re: S & H extra charge for some items
You could check the cart and calculate the extra charge adding the code in RED:
/includes/modules/shipping/table.php
Code:
// bof: Add extra charge for heavy items in cart
$chk_cart = 0;
$chk_cart += $_SESSION['cart']->in_cart_check('products_id','57');
$chk_cart += $_SESSION['cart']->in_cart_check('products_id','112');
$chk_cart += $_SESSION['cart']->in_cart_check('products_id','10');
$chk_cart += $_SESSION['cart']->in_cart_check('products_id','12');
$extra_charge = $chk_cart * 1.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' => $extra_charge + $shipping + (MODULE_SHIPPING_TABLE_HANDLING_METHOD == 'Box' ? MODULE_SHIPPING_TABLE_HANDLING * $shipping_num_boxes : MODULE_SHIPPING_TABLE_HANDLING) ) ));
// eof: Add extra charge for heavy items in cart
if ($this->tax_class > 0) {
Just set the products_id on the lines for:
Code:
$chk_cart += $_SESSION['cart']->in_cart_check('products_id','12');
and change the number example 12 to what ever products_id you need ... for additional products just continue to add additional lines of:
Code:
$chk_cart += $_SESSION['cart']->in_cart_check('products_id','12');
Then, set the amount to charge per item where 1.00 is the charge I put in:
Code:
$extra_charge = $chk_cart * 1.00;
Re: S & H extra charge for some items
Thank you that's simple enough.
But is all code added to the /includes/modules/shipping/table.php file?
Re: S & H extra charge for some items
The first section of code is the changes for table.php ...
The other sections just explain how that code is used to identify the products_id that need to be checked or counted to calculate the extra charge ...
The code I posted shows 4 products_id being checked and then the total number of products in the cart for those products_id are multiplied by 1.00 to get the extra charge which is added to the Table Rate charges ...
Re: S & H extra charge for some items
Oops for my dense head.
Thanks a million for your help.
Re: S & H extra charge for some items
You are most welcome ... let us know if you have success or any other problems with this ...
Re: S & H extra charge for some items
Hi Ajeh,
Just got back from a week away and have tried your suggestion. But it does not work. No errors detected. Code is below.
Where did I go wrong?
$show_box_weight = ' (' . $shipping_num_boxes . ' x ' . number_format($shipping_weight,2) . TEXT_SHIPPING_WEIGHT . ')';
break;
}
}
// bof: Add extra charge for heavy items in cart
$chk_cart = 0;
$chk_cart += $_SESSION['cart']->in_cart_check('products_id','540');
$chk_cart += $_SESSION['cart']->in_cart_check('products_id','3772');
$chk_cart += $_SESSION['cart']->in_cart_check('products_id','3734');
$chk_cart += $_SESSION['cart']->in_cart_check('products_id','3736');
$extra_charge = $chk_cart * .75;
$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' => $extra_charge + $shipping + (MODULE_SHIPPING_TABLE_HANDLING_METHOD == 'Box' ? MODULE_SHIPPING_TABLE_HANDLING * $shipping_num_boxes : MODULE_SHIPPING_TABLE_HANDLING) ) ));
// eof: Add extra charge for heavy items in cart
if ($this->tax_class > 0) {
$this->quotes['tax'] = zen_get_tax_rate($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']);
}
Re: S & H extra charge for some items
As a test, add this echo line in Red:
Code:
// bof: Add extra charge for heavy items in cart
$chk_cart = 0;
$chk_cart += $_SESSION['cart']->in_cart_check('products_id','540');
$chk_cart += $_SESSION['cart']->in_cart_check('products_id','3772');
$chk_cart += $_SESSION['cart']->in_cart_check('products_id','3734');
$chk_cart += $_SESSION['cart']->in_cart_check('products_id','3736');
$extra_charge = $chk_cart * .75;
echo 'Table Extra charges $chk_cart: ' . $chk_cart . ' $extra_charge: ' . $extra_charge . '<br>';
When you test your cart in the shipping, you should see that line on the screen, what is in the cart and what does the line read?