I have my own template. But I use default tempaltes for all checkout process. There is no customization on the checkout process.
I also tested on a demo site, http://demo.opensourcecms.com/zencart/ , and I got the same result.
I looked at the header.php of checkout_shipping page, but I couldn't find any code that sends out error. Not sure if I look at the right place...
While waiting for the fix, I am planing to make a hack to it. I am thinking that if the selected shipping module is no longer exist, I will default to the cheapest one. (This is what my client wants.):
on line 172 of /includes/modules/pages/checkout_shipping/header.php.
Code:
// if no shipping method has been selected, automatically select the cheapest method.
// if the modules status was changed when none were available, to save on implementing
// a javascript force-selection method, also automatically select the cheapest shipping
// method if more than one module is now enabled
if ( !$_SESSION['shipping'] || ( $_SESSION['shipping'] && ($_SESSION['shipping'] == false) && (zen_count_shipping_modules() > 1) ) ) {
$_SESSION['shipping'] = $shipping_modules->cheapest();
} else {
$x3 = false;
foreach ($quotes as $x1) {
if ($x1["id"] == $_SESSION['shipping']['module']) {
$x3 = true;
}
}
if (!$x3) {
$_SESSION['shipping'] = $shipping_modules->cheapest();
}
}
Does it look ok? Is it the right place to do the hack?
Thanks