If a customer has a cart with a free shipping item included after previously getting to the checkout_payment screen with an item that is to be shipped, the cost of shipping is not reset to 0.00 when returning to checkout with only free shipping (no cost shipping) other than store pickup.


In includes/modules/pages/checkout_shipping/header_php.php

the following code:
Code:
// if the order contains only virtual products, forward the customer to the billing page as
// a shipping address is not needed
if ($order->content_type == 'virtual') {
$_SESSION['shipping']['id'] = 'free_free';
$_SESSION['shipping']['title'] = 'free_free';
$_SESSION['sendto'] = false;
zen_redirect(zen_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
}
Doesn't clear the cost before redirecting to the Checkout_payment page..

Add the following to correct this:
$_SESSION['shipping']['cost'] = '0.00'; to read:

Code:
 // if the order contains only virtual products, forward the customer to the billing page as
// a shipping address is not needed
if ($order->content_type == 'virtual') {
$_SESSION['shipping']['id'] = 'free_free';
$_SESSION['shipping']['title'] = 'free_free';
$_SESSION['shipping']['cost'] = '0.00';
$_SESSION['sendto'] = false;
zen_redirect(zen_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
}