Jump to content



Photo
- - - - -

checkout_shipping problem


This topic has been archived. This means that you cannot reply to this topic.
7 replies to this topic

#1   ianhaney

ianhaney
  • Members
  • 859 posts

Posted 16 September 2011 - 12:46

Hi

I have got oscommerce 2.3.1

Every time I click on the continue button in checkout_shipping, it dont go no further where it should go to checkout_payment page

How can I correct it so it works

Thank you

Ian

#2   mattjt83

mattjt83
  • Community Sponsor
  • 400 posts

Posted 16 September 2011 - 12:53

Ian,

Did the checkout USED to work? Did you make any recent changes to the shop? If you made any recent changes, try to backtrack through them until you find the offending mod.

#3   ianhaney

ianhaney
  • Members
  • 859 posts

Posted 16 September 2011 - 13:04

Hi

Yeah it used to work thats what I dont get

I have even copied the file from another website I did and still it dont work but it works on the site I did

I have not made any recent changes to that file, I cant work it out

Any Ideas

Here is the code in the checkout_shipping page


<?php
/*
$Id$

osCommerce, Open Source E-Commerce Solutions
http://www.oscommerce.com

Copyright © 2010 osCommerce

Released under the GNU General Public License
*/

require('includes/application_top.php');
require('includes/classes/http_client.php');

// if the customer is not logged on, redirect them to the login page
if (!tep_session_is_registered('customer_id')) {
$navigation->set_snapshot();
tep_redirect(tep_href_link(FILENAME_CREATE_ACCOUNT, '', 'SSL'));
}

// if there is nothing in the customers cart, redirect them to the shopping cart page
if ($cart->count_contents() < 1) {
tep_redirect(tep_href_link(FILENAME_SHOPPING_CART));
}

// if no shipping destination address was selected, use the customers own address as default
if (!tep_session_is_registered('sendto')) {
tep_session_register('sendto');
$sendto = $customer_default_address_id;
} else {
// verify the selected shipping address
if ( (is_array($sendto) && empty($sendto)) || is_numeric($sendto) ) {
$check_address_query = tep_db_query("select count(*) as total from " . TABLE_ADDRESS_BOOK . " where customers_id = '" . (int)$customer_id . "' and address_book_id = '" . (int)$sendto . "'");
$check_address = tep_db_fetch_array($check_address_query);

if ($check_address['total'] != '1') {
$sendto = $customer_default_address_id;
if (tep_session_is_registered('shipping')) tep_session_unregister('shipping');
}
}
}

require(DIR_WS_CLASSES . 'order.php');
$order = new order;

// register a random ID in the session to check throughout the checkout procedure
// against alterations in the shopping cart contents
if (!tep_session_is_registered('cartID')) tep_session_register('cartID');
$cartID = $cart->cartID;

// 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') {
if (!tep_session_is_registered('shipping')) tep_session_register('shipping');
$shipping = false;
$sendto = false;
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
}

$total_weight = $cart->show_weight();
$total_count = $cart->count_contents();

// load all enabled shipping modules
require(DIR_WS_CLASSES . 'shipping.php');
$shipping_modules = new shipping;

if ( defined('MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING') && (MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING == 'true') ) {
$pass = false;

switch (MODULE_ORDER_TOTAL_SHIPPING_DESTINATION) {
case 'national':
if ($order->delivery['country_id'] == STORE_COUNTRY) {
$pass = true;
}
break;
case 'international':
if ($order->delivery['country_id'] != STORE_COUNTRY) {
$pass = true;
}
break;
case 'both':
$pass = true;
break;
}

$free_shipping = false;
if ( ($pass == true) && ($order->info['total'] >= MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER) ) {
$free_shipping = true;

include(DIR_WS_LANGUAGES . $language . '/modules/order_total/ot_shipping.php');
}
} else {
$free_shipping = false;
}

// process the selected shipping method
if ( isset($HTTP_POST_VARS['action']) && ($HTTP_POST_VARS['action'] == 'process') && isset($HTTP_POST_VARS['formid']) && ($HTTP_POST_VARS['formid'] == $sessiontoken) ) {
if (!tep_session_is_registered('comments')) tep_session_register('comments');
if (tep_not_null($HTTP_POST_VARS['comments'])) {
$comments = tep_db_prepare_input($HTTP_POST_VARS['comments']);
}

if (!tep_session_is_registered('shipping')) tep_session_register('shipping');

if ( (tep_count_shipping_modules() > 0) || ($free_shipping == true) ) {
if ( (isset($HTTP_POST_VARS['shipping'])) && (strpos($HTTP_POST_VARS['shipping'], '_')) ) {
$shipping = $HTTP_POST_VARS['shipping'];

list($module, $method) = explode('_', $shipping);
if ( is_object($$module) || ($shipping == 'free_free') ) {
if ($shipping == 'free_free') {
$quote[0]['methods'][0]['title'] = FREE_SHIPPING_TITLE;
$quote[0]['methods'][0]['cost'] = '0';
} else {
$quote = $shipping_modules->quote($method, $module);
}
if (isset($quote['error'])) {
tep_session_unregister('shipping');
} else {
if ( (isset($quote[0]['methods'][0]['title'])) && (isset($quote[0]['methods'][0]['cost'])) ) {
$shipping = array('id' => $shipping,
'title' => (($free_shipping == true) ? $quote[0]['methods'][0]['title'] : $quote[0]['module'] . ' (' . $quote[0]['methods'][0]['title'] . ')'),
'cost' => $quote[0]['methods'][0]['cost']);

tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
}
}
} else {
tep_session_unregister('shipping');
}
}
} else {
$shipping = false;

tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
}
}

// get all available shipping quotes
$quotes = $shipping_modules->quote();

// 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 ( !tep_session_is_registered('shipping') || ( tep_session_is_registered('shipping') && ($shipping == false) && (tep_count_shipping_modules() > 1) ) ) $shipping = $shipping_modules->cheapest();

require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CHECKOUT_SHIPPING);

$breadcrumb->add(NAVBAR_TITLE_1, tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
$breadcrumb->add(NAVBAR_TITLE_2, tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));

require(DIR_WS_INCLUDES . 'template_top.php');
?>

<script type="text/javascript"><!--
var selected;

function selectRowEffect(object, buttonSelect) {
if (!selected) {
if (document.getElementById) {
selected = document.getElementById('defaultSelected');
} else {
selected = document.all['defaultSelected'];
}
}

if (selected) selected.className = 'moduleRow';
object.className = 'moduleRowSelected';
selected = object;

// one button is not an array
if (document.checkout_address.shipping[0]) {
document.checkout_address.shipping[buttonSelect].checked=true;
} else {
document.checkout_address.shipping.checked=true;
}
}

function rowOverEffect(object) {
if (object.className == 'moduleRow') object.className = 'moduleRowOver';
}

function rowOutEffect(object) {
if (object.className == 'moduleRowOver') object.className = 'moduleRow';
}
//--></script>

<h1><?php echo HEADING_TITLE; ?></h1>

<?php echo tep_draw_form('checkout_address', tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'), 'post', '', true) . tep_draw_hidden_field('action', 'process'); ?>

<div class="contentContainer">
<h2><?php echo TABLE_HEADING_SHIPPING_ADDRESS; ?></h2>

<div class="contentText">
<div class="ui-widget infoBoxContainer" style="float: right;">
<div class="ui-widget-header infoBoxHeading"><?php echo TITLE_SHIPPING_ADDRESS; ?></div>

<div class="ui-widget-content infoBoxContents">
<?php echo tep_address_label($customer_id, $sendto, true, ' ', '<br />'); ?>
</div>
</div>

<?php echo TEXT_CHOOSE_SHIPPING_DESTINATION; ?><br /><br /><?php echo tep_draw_button(IMAGE_BUTTON_CHANGE_ADDRESS, 'home', tep_href_link(FILENAME_CHECKOUT_SHIPPING_ADDRESS, '', 'SSL')); ?>
</div>

<div style="clear: both;"></div>

<?php
if (tep_count_shipping_modules() > 0) {
?>

<h2><?php echo TABLE_HEADING_SHIPPING_METHOD; ?></h2>

<?php
if (sizeof($quotes) > 1 && sizeof($quotes[0]) > 1) {
?>

<div class="contentText">
<div style="float: right;">
<?php echo '<strong>' . TITLE_PLEASE_SELECT . '</strong>'; ?>
</div>

<?php echo TEXT_CHOOSE_SHIPPING_METHOD; ?>
</div>

<?php
} elseif ($free_shipping == false) {
?>

<div class="contentText">
<?php echo TEXT_ENTER_SHIPPING_INFORMATION; ?>
</div>

<?php
}
?>

<div class="contentText">
<table border="0" width="100%" cellspacing="0" cellpadding="2">

<?php
if ($free_shipping == true) {
?>

<tr>
<td><strong><?php echo FREE_SHIPPING_TITLE; ?></strong> <?php echo $quotes[$i]['icon']; ?></td>
</tr>
<tr id="defaultSelected" class="moduleRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="selectRowEffect(this, 0)">
<td style="padding-left: 15px;"><?php echo sprintf(FREE_SHIPPING_DESCRIPTION, $currencies->format(MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER)) . tep_draw_hidden_field('shipping', 'free_free'); ?></td>
</tr>

<?php
} else {
$radio_buttons = 0;
for ($i=0, $n=sizeof($quotes); $i<$n; $i++) {
?>

<tr>
<td colspan="3"><strong><?php echo $quotes[$i]['module']; ?></strong> <?php if (isset($quotes[$i]['icon']) && tep_not_null($quotes[$i]['icon'])) { echo $quotes[$i]['icon']; } ?></td>
</tr>

<?php
if (isset($quotes[$i]['error'])) {
?>

<tr>
<td colspan="3"><?php echo $quotes[$i]['error']; ?></td>
</tr>

<?php
} else {
for ($j=0, $n2=sizeof($quotes[$i]['methods']); $j<$n2; $j++) {
// set the radio button to be checked if it is the method chosen
$checked = (($quotes[$i]['id'] . '_' . $quotes[$i]['methods'][$j]['id'] == $shipping['id']) ? true : false);

if ( ($checked == true) || ($n == 1 && $n2 == 1) ) {
echo ' <tr id="defaultSelected" class="moduleRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="selectRowEffect(this, ' . $radio_buttons . ')">' . "\n";
} else {
echo ' <tr class="moduleRow" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="selectRowEffect(this, ' . $radio_buttons . ')">' . "\n";
}
?>

<td width="75%" style="padding-left: 15px;"><?php echo $quotes[$i]['methods'][$j]['title']; ?></td>

<?php
if ( ($n > 1) || ($n2 > 1) ) {
?>

<td><?php echo $currencies->format(tep_add_tax($quotes[$i]['methods'][$j]['cost'], (isset($quotes[$i]['tax']) ? $quotes[$i]['tax'] : 0))); ?></td>
<td align="right"><?php echo tep_draw_radio_field('shipping', $quotes[$i]['id'] . '_' . $quotes[$i]['methods'][$j]['id'], $checked); ?></td>

<?php
} else {
?>

<td align="right" colspan="2"><?php echo $currencies->format(tep_add_tax($quotes[$i]['methods'][$j]['cost'], (isset($quotes[$i]['tax']) ? $quotes[$i]['tax'] : 0))) . tep_draw_hidden_field('shipping', $quotes[$i]['id'] . '_' . $quotes[$i]['methods'][$j]['id']); ?></td>

<?php
}
?>

</tr>

<?php
$radio_buttons++;
}
}
}
}
?>

</table>
</div>

<?php
}
?>

<h2><?php echo TABLE_HEADING_COMMENTS; ?></h2>

<div class="contentText">
<?php echo tep_draw_textarea_field('comments', 'soft', '60', '5'); ?>
</div>

<div class="contentText">
<div style="float: left; width: 60%; padding-top: 5px; padding-left: 15%;">
<div id="coProgressBar" style="height: 5px;"></div>

<table border="0" width="100%" cellspacing="0" cellpadding="2">
<tr>
<td align="center" width="33%" class="checkoutBarCurrent"><?php echo CHECKOUT_BAR_DELIVERY; ?></td>
<td align="center" width="33%" class="checkoutBarTo"><?php echo CHECKOUT_BAR_PAYMENT; ?></td>
<td align="center" width="33%" class="checkoutBarTo"><?php echo CHECKOUT_BAR_CONFIRMATION; ?></td>
</tr>
</table>
</div>

<div style="float: right;"><?php echo tep_draw_button(IMAGE_BUTTON_CONTINUE, 'triangle-1-e', null, 'primary'); ?></div>
</div>
</div>

<script type="text/javascript">
$('#coProgressBar').progressbar({
value: 33
});
</script>

</form>

<?php
require(DIR_WS_INCLUDES . 'template_bottom.php');
require(DIR_WS_INCLUDES . 'application_bottom.php');
?>

Thanks

Ian

#4   turbo5speed

turbo5speed
  • Members
  • 13 posts

Posted 23 September 2011 - 12:18

I am having the same problem... It seems that only some customers have this problem.

Any help would be appreciated.

Thx

#5   ujopajuk

ujopajuk
  • Members
  • 1 posts

Posted 27 September 2011 - 14:25

I have also the same problem. We desperately need help here...

Please....

#6   satish

satish
  • Members
  • 5,350 posts

Posted 27 September 2011 - 18:08

Check following:
1. Any product with no wt.
2. Any zone that does not have a shipping associated.


Satish
Ask/Skype for  Free osCommerce value addon/SEO suggestion tips for your site.

Check My About US For who am I and what My company does.

#7   bassmaga

bassmaga
  • Members
  • 29 posts

Posted 19 January 2012 - 23:20

What if I have 0 weight products and need to take adress form customer?

#8   letmein

letmein
  • Members
  • 7 posts

Posted 23 January 2012 - 04:54

I had this same problem. If you play around with the shipping details you can get stuck in the "Payments Information" page and can't progress any further. You also don't get payment method showing up as well. Took me a while to figure out if I tweaked the shipping in "Shipping" and "Order Total" under Modules in the admin section you will then get it working again. However, even though I can then get through this section there are no shipping details showing on the invoice. I used to see them before showing something like "Best Way" or similar name but I can't get that back.

As you guessed I'm new to this just started 2 days ago.