-
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?
-
Re: S & H extra charge for some items
Here is the shipping screen: No echo of that line. There are 2 of this item in the cart.
Step 1 of 3 - Delivery Information
Shipping Information:
Change Address
marvin schwarzber
48 morgan dr
edison, NJ 08817
United States
Your order will be shipped to the address at the left or you may change the shipping address by clicking the Change Address button.
Shipping Method:
Please select the preferred shipping method to use on this order.
Table Rate
$6.49
Best Way
Zone Rates
$6.49
Shipping to US
Special Instructions or Comments About Your Order
Continue to Step 2
- choose your payment method.
-
Re: S & H extra charge for some items
Below is what is on the shipping selection screen. NO echo. The next screen - Payment Selection - has no echo either.
-----------------------------------------------------
Step 1 of 3 - Delivery Information
Shipping Information:
Change Address
marvin schwarzber
48 morgan dr
edison, NJ 08817
United States
Your order will be shipped to the address at the left or you may change the shipping address by clicking the Change Address button.
Shipping Method:
Please select the preferred shipping method to use on this order.
Table Rate
$6.49
Best Way
Zone Rates
$6.49
Shipping to US
Special Instructions or Comments About Your Order
Continue to Step 2
- choose your payment method.
-
Re: S & H extra charge for some items
Are you sure that file is getting copied to:
/includes/shipping/table.php
on the server?
I see the echo both in the Shipping estimator and the checkout_shipping page ...
Make sure your FTP is working on the site where you are testing as this does not make a lot of sense ... :lookaroun
-
Re: S & H extra charge for some items
Just discovered that the line shows up in my page source above the head tag in my - https://www.herbschina.com/zen/index...ckout_shipping - but does not show on the page itself. Very confusing. Seems I'm missing something in my coding.
---------------------------------
Table Extra charges $chk_cart: 0 $extra_charge: 0<br><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en">
<head>
-
Re: S & H extra charge for some items
-
Re: S & H extra charge for some items
Do you want to see the code for the COMPLETE table.php file?
-
Re: S & H extra charge for some items
More or less just this section of code:
Code:
default:
$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','10');
$chk_cart += $_SESSION['cart']->in_cart_check('products_id','12');
$chk_cart += $_SESSION['cart']->in_cart_check('products_id','15');
$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>';
$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) ) ));
if ($this->tax_class > 0) {
-
Re: S & H extra charge for some items
default:
$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;
echo 'Table Extra charges $chk_cart: ' . $chk_cart . ' $extra_charge: ' . $extra_charge . '<br>';
$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) {
-
Re: S & H extra charge for some items
Do any of these products exist:
Code:
$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');
on your site?
-
Re: S & H extra charge for some items
Items 540 and 3734 are currently on site (I have inventory)
-
Re: S & H extra charge for some items
I go here:
zen/index.php?main_page=product_info&products_id=3734
and get sorry no products ...
-
Re: S & H extra charge for some items
-
Re: S & H extra charge for some items
Just cause I am not seeing the problem based on your code ... does anything change if you turn off that mapping?
-
Re: S & H extra charge for some items
When I add that to the cart and mouse over it, that shows the link to be:
/zen/index.php?main_page=product_info&products_id=282
282 does not show in your table.php code ... :lookaroun
-
Re: S & H extra charge for some items
Are you sure that you are using the:
products_id
in the code or are you using the:
products_model
You want to be using the:
products_id
-
Re: S & H extra charge for some items
I turned off Ceon mapping and the same happens.
On the page https://www.herbschina.com/zen/index...ckout_shipping the echo code shows at top of source code.
-
Re: S & H extra charge for some items
Problem resolved.
I was using the "model" number (my real item number) as I have always thought of the "product ID" as being just a sequence number for the order in which an item was added to my e-store.
-
Re: S & H extra charge for some items
Thanks for the update that this is working with the right products_id values ... :smile:
You'd be amazed how often thing like this happen ...
-
Re: S & H extra charge for some items
And thanks for your help. Your knowledge and patience (with occasional dense heads like me) are amazing.
-
Re: S & H extra charge for some items
Hi Ajeh,
Another question.
Will this code work on a 1.3.9h version store.
Thanks
-
Re: S & H extra charge for some items
While you really should be upgrading that old version as you may also be fighting php issues ... I believe this should work for you in v1.3.9 ...