Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

checkout_shipping problem


Guest

Recommended Posts

Posted

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

Posted

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.

Matt

Posted

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

Posted

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

 

Any help would be appreciated.

 

Thx

Posted

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.

  • 3 months later...
Posted

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.

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...