Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

[CONTRIB] UK Royal Mail & Overseas Shipping Methods


Guest

Recommended Posts

The problem you are reporting was evident in v2.02 and reportedly fixed in v2.03, see message #213 on this forum thread.

 

Please check that you have the correct files installed. The installed files should have a version line of 'Version 2.03 - 29 April 2009' in the comments near the top of the files.

 

I have checked the uploaded v2.03 archive at UK Royal Mail & Overseas Shipping Methods 21st Aug Prices, and it matches the source I have on my development machine which does not display the results you have reported.

 

Hello and thank you for the quick response. You are right and I had installed before the wrong version.

The contribution works fine but I still have a problem with RM standard parcels. When I put 1 product in with 1.3kg it works perfect but when I put 2 products in with a total weight of 2.6kg and this is under the 3kg limit the price from RM standard parcels shows zero. I have also installed citylink and parcel force

 

Royal Mail Standard Parcels

The shipping rate cannot be determined at this time £0,00

 

Royal Mail Special Delivery

Delivery Weight : 2.6 Kg's (Insured upto £500, ships Nextday) £21,65

 

Parcelforce 48

Delivery Weight : 2.6 Kg's (Insured upto £500, ships within 48 Hours) £27,99

 

Do you have a solution that can help me fix this problem

 

regards

Pascal

Link to comment
Share on other sites

Hello and thank you for the quick response. You are right and I had installed before the wrong version.

The contribution works fine but I still have a problem with RM standard parcels.

 

I'm glad to hear that it was a simple error in version that was causing the behaviour you were experiencing.

 

When I put 1 product in with 1.3kg it works perfect but when I put 2 products in with a total weight of 2.6kg and this is under the 3kg limit the price from RM standard parcels shows zero. I have also installed citylink and parcel force

 

Royal Mail Standard Parcels

The shipping rate cannot be determined at this time £0,00

 

Royal Mail Special Delivery

Delivery Weight : 2.6 Kg's (Insured upto £500, ships Nextday) £21,65

 

Parcelforce 48

Delivery Weight : 2.6 Kg's (Insured upto £500, ships within 48 Hours) £27,99

 

Do you have a solution that can help me fix this problem

Yes I see what you mean...

 

I have gone through the code and corrected the error, so it should now work as intended.

 

I also found another problem, when deciding if a shipment was over the method maximum I was checking on total weight from the order rather than the actual weight of packages being shipped when calculated in line with the variables entered at Admin->Configuration->Shipping/Packaging. In rare circumstances where the total weight of products was close to the maximum shipping weight of a method, when the shipping weight was calculated it exceeded the methods maximum weight and caused the methods _UNDEFINED_RATE language text to be displayed.

 

The methods have all been updated so that they are enabled if packages being shipped are within the methods weight restrictions. Additional language constants have been added and code to Display the number of packages along with the average weight during the checkout.

 

I have uploaded a complete archive as v2.06 to UK Royal Mail & Overseas Shipping Methods 21st Aug Prices

LABBS Web Services

Link to comment
Share on other sites

Hello,

 

The support you have given has been fantastic. Thank you very much for this contribution. Everything works perfect now. The only problem I have now come across is parcel force shows the module text aswell as the package details.

 

Royal Mail Standard Parcels

Delivery Weight : 1 package of 5.2 Kg's (Insured upto £500, ships within 3 to 5 days) £13,08

 

Royal Mail Special Delivery

Delivery Weight : 1 package of 5.2 Kg's (Insured upto £500, ships Nextday) £21,65

 

Initial Citylink

Delivery Weight : 5.2 Kg's (Ordered before 3pm, Ships Nextday) £11,60

 

Parcelforce 48

Delivery Weight : 1 MODULE_SHIPPING_PARCELFORCE48_TEXT_ITEM 5.2 Kg's (Insured upto £500, ships within 48 Hours) £27,99

 

regards

 

Pascal

Link to comment
Share on other sites

The support you have given has been fantastic. Thank you very much for this contribution. Everything works perfect now.

Thank you for the compliments, it is always good to hear good news!

 

The only problem I have now come across is parcel force shows the module text aswell as the package details.

 

Royal Mail Standard Parcels

Delivery Weight : 1 package of 5.2 Kg's (Insured upto £500, ships within 3 to 5 days) £13,08

 

Royal Mail Special Delivery

Delivery Weight : 1 package of 5.2 Kg's (Insured upto £500, ships Nextday) £21,65

 

Initial Citylink

Delivery Weight : 5.2 Kg's (Ordered before 3pm, Ships Nextday) £11,60

 

Parcelforce 48

Delivery Weight : 1 MODULE_SHIPPING_PARCELFORCE48_TEXT_ITEM 5.2 Kg's (Insured upto £500, ships within 48 Hours) £27,99

Thanks for pointing that out, I have found the error in the language file for parcelforce48 both of the new constants in that file that were introduced in v2.06 had been misspelled (a product of cut & paste and being rushed off my feet :wacko: ), just have look at ..../includes/languages/english/modules/shipping/parcelforce48.php, and edit line#18 and line#19 so they both have the correct constant name (just delete the RM in front of the PARCELFORCE48).

 

I'll post a ZIP with the patch over the next day or two, when I get time.

LABBS Web Services

Link to comment
Share on other sites

Hi Chris,

 

I dont know if its just me or is it actually a feature of this module? And though its one of the best produced mods that I have come across, it for some reason puts me off when it comes to using it and I end up using Table based shipping mod in the end.

 

Well, the issue is that, if we take the scenario below:

 

Royal Mail Standard Parcels

The shipping rate cannot be determined at this time £0.00

 

Royal Mail Special Delivery

Delivery Weight : 5 Kg's (Insured upto £500, ships Nextday) £21.65

 

Parcelforce 48

Delivery Weight : 5 Kg's (Insured upto £500, ships within 48 Hours) £27.99

 

Now, I am fine with package not being able to be shipped by Royal Mail Standard Parcels method because of weight restrictions. But if Royal Mail Standard Parcels method is not suitable for this package, then why does it appear or why does it still offer the customer the option to select it and checkout with £0.00 on delivery.

 

Can't the options which cannot handle the increased weights be disabled or something? So, only those options appear in the frontend which can either handle the delivery weight or atleast have the radio buttons disabled, so customer cant select them Or is it actually me doing something wrong and havnt understood the mod correctly?

 

Please, let me know. Thanks.

Link to comment
Share on other sites

I dont know if its just me or is it actually a feature of this module? And though its one of the best produced mods that I have come across, it for some reason puts me off when it comes to using it and I end up using Table based shipping mod in the end.

Thank you for your feedback.

 

I'm sorry to hear you don't have enough confidence to use the modules on your store at the moment, but I hope with the help of you and others these shipping methods can become more robust.

 

 

Well, the issue is that, if we take the scenario below:

 

Royal Mail Standard Parcels

The shipping rate cannot be determined at this time £0.00

 

Royal Mail Special Delivery

Delivery Weight : 5 Kg's (Insured upto £500, ships Nextday) £21.65

 

Parcelforce 48

Delivery Weight : 5 Kg's (Insured upto £500, ships within 48 Hours) £27.99

The behavior you reported above is similar to that reported in v2.03 of 'rmstandardparcels' ( see message #228 above), a coding error was fixed and a new archive published as v2.06 (download from here).

 

 

Now, I am fine with package not being able to be shipped by Royal Mail Standard Parcels method because of weight restrictions. But if Royal Mail Standard Parcels method is not suitable for this package, then why does it appear or why does it still offer the customer the option to select it and checkout with £0.00 on delivery.

 

Can't the options which cannot handle the increased weights be disabled or something? So, only those options appear in the frontend which can either handle the delivery weight or atleast have the radio buttons disabled, so customer cant select them Or is it actually me doing something wrong and havnt understood the mod correctly?

In v2.06 the individual methods should only display in the checkout if a number of criteria are met, as follows:-

 

1. The method is enabled.

 

2a. The shipping destination is in the UK for national methods

 

2b. The shipping destination is out of the UK for international methods (rmintsig).

 

3a. The cart value does not exceed the methods maximum value.

 

3b. Methods with insurance provide enough insurance to cover the cart value.

 

4. Package weight being shipped is less than the maximum weight for the method.

 

I have been trying to trap all the out of specification cart and shipping variables so that a method is only displayed to the user when appropriate, and we don't end up with the undefined rate error message when the quote is being calculated.

 

Q. Should a high shipping cost be set (e.g. 999) to deter people from selecting a method that is displaying 'The shipping rate cannot be determined at this time' error message?

 

 

If you do find the error message coming up when testing your store then if you can PM me with the following information I'll have a better chance of tracking down why it is happening, and improve the checks in the method.

 

1. The settings in Admin->Configuration->Shipping/Packaging for; Maximum Package Weight, Package Tare weight, and Larger packages - percentage increase. These settings affect the splitting of shipments into multiple packages and are used in calculating the weight of packages being shipped.

 

2. The total value and total weight of products in the cart.

LABBS Web Services

Link to comment
Share on other sites

Hi Chris,

 

Yes, I had been using v2.03 and just tested the new v2.06 and I am quite happy to say that it is a much more mature and up-to-the-standards version. Not to mention that it has resolved the problem of users being able to select the £0.00 shipping option for overweighted products.

 

So, I guess you dont have to worry about:

 

Q. Should a high shipping cost be set (e.g. 999) to deter people from selecting a method that is displaying 'The shipping rate cannot be determined at this time' error message?

Thanks for the new version, now I can happily move back to using this contribution.

 

Regards,

Muhammad Barki.

Link to comment
Share on other sites

This is without a doubt the best Uk shipping module I've come across so far ... and as said before, the support has been second to non - thank you for all your hard work. i'm going to be a bit cheeky and ask a couple of questions. :rolleyes:

 

The first is with regards to multiple packages. Is there any way to get the various options to take into account insurance the way they do weight when calculating multiple packages. For example i sell a lot of small items that are just below the £39 mark ... when a customer picks two and the value goes over £39 pound, although they are well within the weight limitations the first class option disappears. Could it be set up so that if the value of a shipping option reached the insurance limit, it would simply start a second parcel and show a price based on the two, as it does with weight? or should it already do that and I'm doing something wrong?

 

My second question relates to oversees options. I like the Int signed for package but i would also like to have standard airmail as i often ship small, light items below the £39 mark - how easy would it be to add this?

 

Again thanks for all your sterling efforts so far.

Link to comment
Share on other sites

This is without a doubt the best Uk shipping module I've come across so far ... and as said before, the support has been second to non - thank you for all your hard work
Thank you for the compliment.

 

i'm going to be a bit cheeky and ask a couple of questions. :rolleyes:
Ask away, as ever development is driven by user requests.

 

The first is with regards to multiple packages. Is there any way to get the various options to take into account insurance the way they do weight when calculating multiple packages. For example i sell a lot of small items that are just below the £39 mark ... when a customer picks two and the value goes over £39 pound, although they are well within the weight limitations the first class option disappears. Could it be set up so that if the value of a shipping option reached the insurance limit, it would simply start a second parcel and show a price based on the two, as it does with weight? or should it already do that and I'm doing something wrong?
osCommerce in it's vanilla install splits shipments by starting with the cart weight, and then doing a calculation using variables entered at Admin->Configuration->Shipping/Packaging to calculate shipping weight and number of boxes. I haven't yet come across any code that splits a shipment by value.

 

Splitting shipments by weight can result in somewhat bizarre behavior when a product weighs more than the store's maximum shipping weight, e.g. as an extreme I set my sandbox to have a max ship weight of 1.0, package tare of 0.2, and a test product with weight 2.0, the result was that shipping options were showing 3 packages of 0.73333333333333 each!

 

I'll have a think about how to incorporate splitting shipments on value, and try a few ideas out. Who knows I may just be able to get something working reliably.

 

My second question relates to oversees options. I like the Int signed for package but i would also like to have standard airmail as i often ship small, light items below the £39 mark - how easy would it be to add this?
Since you asked, I have had a go and created rmairmail, you will find it in the v2.06-v2.07 patch here.

 

Thank you for your feedback and encouragement.

LABBS Web Services

Link to comment
Share on other sites

Chris,

 

Thank you, I'll have a go with the airmail over the weekend and see how I get on. I thought there was probably a good reason why no module seems to include the ability to be configured the way I described, like life, things are never as simple as they seem.

 

It wasn't in any way a criticism of your work, this is the first shipping module I've tried that I've been happy with and its obvious that you've put a lot of work into this so thanks again.

Link to comment
Share on other sites

Help! Hi Guys!

 

I have installed the contribution by making the changes in the checkout_shipping.php and uploading all the files.

When I test a purchase in my store there is no shipping option showing at checkout so customer pays without paying for shipping.

 

This is a great contribution and I would like to get it to work with my store.

 

Thanks in advance!

Link to comment
Share on other sites

I have installed the contribution by making the changes in the checkout_shipping.php and uploading all the files.

When I test a purchase in my store there is no shipping option showing at checkout so customer pays without paying for shipping.

 

This is a great contribution and I would like to get it to work with my store.

Once you have uploaded the modules you will need to 'Install' them in Admin->Modules->Shipping to activate them.

 

Look at message #232 on this forum thread, and your store configuration, to get a better idea of when each shipping method will show to a customer.

 

If you still can't get things working then PM me providing more information about cart contents, shipping destination, and store configuration which would help in analysing your problem, again see message #232 on this forum thread for what information would be useful.

LABBS Web Services

Link to comment
Share on other sites

The Sort Order being set to '10' is totally arbitrary on my part, and AFAIK only affects the order that the active shipping methods are displayed within the checkout process. From what I understand you could set the Sort Order to '100' and it would display with the appropriate ranking on your store within the checkout.

 

Overall when the method is installed correctly you can edit the Sort Order to suit your store.

 

 

 

The problem you have reported is not something I am currently able to replicate on my sandbox with rmintsig v2.05, please ensure that you have the rmintsig v2.05 package from UK Royal Mail & Overseas Shipping Methods 21st Aug Prices installed, as the v2.05 release was intended to remove the errors you have reported.

 

In all events please follow these basic steps:-

 

1. 'Remove' the shipping method (if you are able to)

 

2. CLEAR your browser's cache (and maybe even close down and restart your browser to ensure a new session has been started!)

 

3. Upload the latest version of the shipping method to your store's site (see UK Royal Mail & Overseas Shipping Methods 21st Aug Prices for the latest package)

 

4. 'Install' the method

 

5. Report how it worked for you here, so we can all benefit from your experience.

 

Thank You for your feedback about these shipping methods it is useful, and with your continued help everyone can benefit from a more robust collection of shipping methods for their UK store.

 

Thanks for all your help. I followed your instructions and the errors I reported earlier are gone. However the pricing seems to be incorrect. Based on the pricing you already entered for the airmail I get:

Delivery Weight : 1 package of 0.671 Kg's (Ships within 3 to 5 days) $8.58

 

Any ideas why the shipping fee is so high?

Link to comment
Share on other sites

Thanks for all your help. I followed your instructions and the errors I reported earlier are gone. However the pricing seems to be incorrect. Based on the pricing you already entered for the airmail I get:

Delivery Weight : 1 package of 0.671 Kg's (Ships within 3 to 5 days) $8.58

 

Any ideas why the shipping fee is so high?

I expect you are using an old version of the methods, please have a the look at latest files available ( as of 17th May 2009, v2.06 - and patch to v2.07) from UK Royal Mail & Overseas Shipping Methods 21st Aug Prices, you may find that your problem has already been resolved.

 

If you continue to have problems then the more information you can give us, the better we will be able to test your particular scenario and find the bug that is plaguing you!

LABBS Web Services

Link to comment
Share on other sites

I am very thankful for all the help you have provided. I think my problem is all fixed after reinstalling the modules again. Thanks a million! Keeping my fingers crossed for further testing.

Link to comment
Share on other sites

Is it possible to have this work with the one page checkout contribution?

 

After installing it my totals do not come up. Here is my checkout_shipping.php file:

 

 <?php
/*
 $Id: checkout_shipping.php,v 1.16 2003/06/09 23:03:53 hpdl Exp $

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

 Copyright (c) 2003 osCommerce

 Released under the GNU General Public License
*/

 require('includes/application_top.php');
 /* One Page Checkout - BEGIN */
if (ONEPAGE_CHECKOUT_ENABLED == 'True'){
	tep_redirect(tep_href_link(FILENAME_CHECKOUT, $_SERVER['QUERY_STRING']));
}
/* One Page Checkout - END */
 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_LOGIN, '', '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
$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') ) {
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'));
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
<title><?php echo TITLE; ?></title>
<base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>">
<link rel="stylesheet" type="text/css" href="stylesheet.css">
<script language="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>
</head>
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0">
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->

<!-- body //-->
<table border="0" width="100%" cellspacing="3" cellpadding="3">
 <tr>
<td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
</table></td>
<!-- body_text //-->
<td width="100%" valign="top"><?php echo tep_draw_form('checkout_address', tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL')) . tep_draw_hidden_field('action', 'process'); ?><table border="0" width="100%" cellspacing="0" cellpadding="0">
  <tr>
	<td><table border="0" width="100%" cellspacing="0" cellpadding="0">
	  <tr>
		<td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
		<td class="pageHeading" align="right"><?php echo tep_image(DIR_WS_IMAGES . 'table_background_delivery.gif', HEADING_TITLE, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
  </tr>
  <tr>
	<td><table border="0" width="100%" cellspacing="0" cellpadding="2">
	  <tr>
		<td class="main"><b><?php echo TABLE_HEADING_SHIPPING_ADDRESS; ?></b></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
	  <tr class="infoBoxContents">
		<td><table border="0" width="100%" cellspacing="0" cellpadding="2">
		  <tr>
			<td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
			<td class="main" width="50%" valign="top"><?php echo TEXT_CHOOSE_SHIPPING_DESTINATION . '<br><br><a href="' . tep_href_link(FILENAME_CHECKOUT_SHIPPING_ADDRESS, '', 'SSL') . '">' . tep_image_button('button_change_address.gif', IMAGE_BUTTON_CHANGE_ADDRESS) . '</a>'; ?></td>
			<td align="right" width="50%" valign="top"><table border="0" cellspacing="0" cellpadding="2">
			  <tr>
				<td class="main" align="center" valign="top"><?php echo '<b>' . TITLE_SHIPPING_ADDRESS . '</b><br>' . tep_image(DIR_WS_IMAGES . 'arrow_south_east.gif'); ?></td>
				<td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
				<td class="main" valign="top"><?php echo tep_address_label($customer_id, $sendto, true, ' ', '<br>'); ?></td>
				<td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
			  </tr>
			</table></td>
		  </tr>
		</table></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
  </tr>
<?php
 if (tep_count_shipping_modules() > 0) {
?>
  <tr>
	<td><table border="0" width="100%" cellspacing="0" cellpadding="2">
	  <tr>
		<td class="main"><b><?php echo TABLE_HEADING_SHIPPING_METHOD; ?></b></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
	  <tr class="infoBoxContents">
		<td><table border="0" width="100%" cellspacing="0" cellpadding="2">
<?php
if (sizeof($quotes) > 1 && sizeof($quotes[0]) > 1) {
?>
		  <tr>
			<td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
			<td class="main" width="50%" valign="top"><?php echo TEXT_CHOOSE_SHIPPING_METHOD; ?></td>
			<td class="main" width="50%" valign="top" align="right"><?php echo '<b>' . TITLE_PLEASE_SELECT . '</b><br>' . tep_image(DIR_WS_IMAGES . 'arrow_east_south.gif'); ?></td>
			<td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
		  </tr>
<?php
} elseif ($free_shipping == false) {
?>
		  <tr>
			<td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
			<td class="main" width="100%" colspan="2"><?php echo TEXT_ENTER_SHIPPING_INFORMATION; ?></td>
			<td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
		  </tr>
<?php
}

if ($free_shipping == true) {
?>
		  <tr>
			<td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
			<td colspan="2" width="100%"><table border="0" width="100%" cellspacing="0" cellpadding="2">
			  <tr>
				<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
				<td class="main" colspan="3"><b><?php echo FREE_SHIPPING_TITLE; ?></b> <?php echo $quotes[$i]['icon']; ?></td>
				<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
			  </tr>
			  <tr id="defaultSelected" class="moduleRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="selectRowEffect(this, 0)">
				<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
				<td class="main" width="100%"><?php echo sprintf(FREE_SHIPPING_DESCRIPTION, $currencies->format(MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER)) . tep_draw_hidden_field('shipping', 'free_free'); ?></td>
				<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
			  </tr>
			</table></td>
			<td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
		  </tr>
<?php
} else {
  $radio_buttons = 0;
  for ($i=0, $n=sizeof($quotes); $i<$n; $i++) {
?>
		  <tr>
			<td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
			<td colspan="2"><table border="0" width="100%" cellspacing="0" cellpadding="2">
			  <tr>
				<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
				<td class="main" colspan="3"><b><?php echo $quotes[$i]['module']; ?></b> <?php if (isset($quotes[$i]['icon']) && tep_not_null($quotes[$i]['icon'])) { echo $quotes[$i]['icon']; } ?></td>
				<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
			  </tr>
<?php
	if (isset($quotes[$i]['error'])) {
?>
			  <tr>
				<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
				<td class="main" colspan="3"><?php echo $quotes[$i]['error']; ?></td>
				<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></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="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
				<td class="main" width="75%"><?php echo $quotes[$i]['methods'][$j]['title']; ?></td>
<?php
		if ( ($n > 1) || ($n2 > 1) ) {
?>
				<td class="main"><?php echo $currencies->format(tep_add_tax($quotes[$i]['methods'][$j]['cost'], (isset($quotes[$i]['tax']) ? $quotes[$i]['tax'] : 0))); ?></td>
				<td class="main" align="right"><?php echo tep_draw_radio_field('shipping', $quotes[$i]['id'] . '_' . $quotes[$i]['methods'][$j]['id'], $checked); ?></td>
<?php
		} else {
?>
				<td class="main" align="right" colspan="2"><?php echo $currencies->format(tep_add_tax($quotes[$i]['methods'][$j]['cost'], $quotes[$i]['tax'])) . tep_draw_hidden_field('shipping', $quotes[$i]['id'] . '_' . $quotes[$i]['methods'][$j]['id']); ?></td>
<?php
		}
?>
				<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
			  </tr>
<?php
		$radio_buttons++;
	  }
	}
?>
			</table></td>
			<td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
		  </tr>
<?php
  }
}
?>
		</table></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
  </tr>
<?php
 }
?>
  <tr>
	<td><table border="0" width="100%" cellspacing="0" cellpadding="2">
	  <tr>
		<td class="main"><b><?php echo TABLE_HEADING_COMMENTS; ?></b></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
	  <tr class="infoBoxContents">
		<td><table border="0" width="100%" cellspacing="0" cellpadding="2">
		  <tr>
			<td><?php echo tep_draw_textarea_field('comments', 'soft', '60', '5'); ?></td>
		  </tr>
		</table></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
  </tr>
  <tr>
	<td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
	  <tr class="infoBoxContents">
		<td><table border="0" width="100%" cellspacing="0" cellpadding="2">
		  <tr>
			<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
			<td class="main"><?php echo '<b>' . TITLE_CONTINUE_CHECKOUT_PROCEDURE . '</b><br>' . TEXT_CONTINUE_CHECKOUT_PROCEDURE; ?></td>
			<td class="main" align="right"><?php echo tep_image_submit('button_continue.gif', IMAGE_BUTTON_CONTINUE); ?></td>
			<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
		  </tr>
		</table></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
  </tr>
  <tr>
	<td><table border="0" width="100%" cellspacing="0" cellpadding="0">
	  <tr>
		<td width="25%"><table border="0" width="100%" cellspacing="0" cellpadding="0">
		  <tr>
			<td width="50%" align="right"><?php echo tep_image(DIR_WS_IMAGES . 'checkout_bullet.gif'); ?></td>
			<td width="50%"><?php echo tep_draw_separator('pixel_silver.gif', '100%', '1'); ?></td>
		  </tr>
		</table></td>
		<td width="25%"><?php echo tep_draw_separator('pixel_silver.gif', '100%', '1'); ?></td>
		<td width="25%"><?php echo tep_draw_separator('pixel_silver.gif', '100%', '1'); ?></td>
		<td width="25%"><table border="0" width="100%" cellspacing="0" cellpadding="0">
		  <tr>
			<td width="50%"><?php echo tep_draw_separator('pixel_silver.gif', '100%', '1'); ?></td>
			<td width="50%"><?php echo tep_draw_separator('pixel_silver.gif', '1', '5'); ?></td>
		  </tr>
		</table></td>
	  </tr>
	  <tr>
		<td align="center" width="25%" class="checkoutBarCurrent"><?php echo CHECKOUT_BAR_DELIVERY; ?></td>
		<td align="center" width="25%" class="checkoutBarTo"><?php echo CHECKOUT_BAR_PAYMENT; ?></td>
		<td align="center" width="25%" class="checkoutBarTo"><?php echo CHECKOUT_BAR_CONFIRMATION; ?></td>
		<td align="center" width="25%" class="checkoutBarTo"><?php echo CHECKOUT_BAR_FINISHED; ?></td>
	  </tr>
	</table></td>
  </tr>
</table></form></td>
<!-- body_text_eof //-->
<td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">
<!-- right_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_right.php'); ?>
<!-- right_navigation_eof //-->
</table></td>
 </tr>
</table>
<!-- body_eof //-->

<!-- footer //-->
<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
<!-- footer_eof //-->
<br>
</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>

Link to comment
Share on other sites

Some more info for my problem with shipping amount showing as 0:

 

Here is what is shown during checkout:

 

 

This is currently the only shipping method available to use on this order.

 

Royal Mail International Signed For Royal Mail International Signed For

The shipping rate cannot be determined at this time $0.00

 

Any ideas??

Link to comment
Share on other sites

Some more info for my problem with shipping amount showing as 0:

 

Here is what is shown during checkout:

 

This is currently the only shipping method available to use on this order.

 

Royal Mail International Signed For Royal Mail International Signed For

The shipping rate cannot be determined at this time $0.00

 

 

Any ideas??

The version line in the comments at the top of the file for the latest release of rmintsig should read 'Version 2.07 - 14 May 2009', if needed update your installation using v2.06 and patch v2.06-v2.07.

 

In v2.07 the method is only displayed when:-

 

1. The destination is not in the UK.

 

2. The order value does not exceed 250.

 

3. The shipping weight does not exceed 2

 

N.B. Shipping weight is not the same as the weight of the products in your cart, as the shipping weight is calculated using parameters from Admin-Configuration->Shipping/Packaging which may result in an order being split into multiple boxes.

 

Does your test cart fall within the basic criteria above?

LABBS Web Services

Link to comment
Share on other sites

UK Royal Mail & Overseas Shipping Methods

 

Version 2.1.0 - 26 May 2009

 

Created by Chris Lander from an original contribution

by Stuart Newton (http://addons.oscommerce.com/info/4473).

 

This contribution is for UK Stores ONLY. What it will do is add several shipping zones to your osCommerce store. If your customer is UK based, it will not show any of the International Shipping Options, and vice versa, if your customer is International it will not show any UK based shipping methods.

 

Shipping Methods Added:

 

(1) Royal Mail First Class Standard Post

(2) Royal Mail First Class Recorded Post

(3) Royal Mail Second Class Standard Post

(4) Royal Mail Second Class Recorded Post

(5) Royal Mail Standard Parcels

(6) Royal Mail Airmail

(7) Royal Mail International Signed for

(8) Parcelforce 48

(9) Citylink Next Day

 

 

All the Royal Mail methods along with the Parcelforce 48 method now allow you to set minimum and maximum delivery weight/value for use of the shipping method. Shipment methods now enable the splitting of shipments using the method's maximum weight/value.

 

==========

 

Changelog:

 

+ Royal Mail Airmail

+ Minimum shipping weight to all methods

+ Minimum shipping value to all methods

+ Splitting shipments by methods maximum weight

+ Splitting shipments by methods maximum value

+ Splitting by any combination of the methods weight and value

+ Version number now displayed in Admin panel

+ Updated language files so that they all have consistent text

- Debug statements in rmsecondrec echoing information to the screen removed

* Fixed incorrect zone shipping costs tables in rmintsig

* Fixed incorrect program flow in rmintsig class method causing a PHP error when referencing a zone costs table constant

 

Available from UK Royal Mail & Overseas Shipping Methods 21st Aug Prices, development at LABBS Subversion Repository

LABBS Web Services

Link to comment
Share on other sites

Hi Chris,

 

I have just attempted to update your contribution to the new v2.1.0 release from v2.0.6+v2.06pl1+v2.06-v2.07 patches by rdropping the files within the v2.1.0 release on top of those I have on my store but I get an error returned as stated bleow when I access the shipping tool within the admin control panel:

 

Fatal error: Cannot redeclare class rmfirstrec in C:\Program Files\EasyPHP 3.0\www\xxxxx\includes\modules\shipping\rmfirstrec.php on line 32

 

Line 32 reads:

 

class rmfirstrec {

 

Have I gone about upgrading in the wrong way? Or do you have nay ideas on a fix/work around?

 

Thanks in advance for your help,

 

James

Link to comment
Share on other sites

I have just attempted to update your contribution to the new v2.1.0 release from v2.0.6+v2.06pl1+v2.06-v2.07 patches by rdropping the files within the v2.1.0 release on top of those I have on my store but I get an error returned as stated bleow when I access the shipping tool within the admin control panel:

 

Fatal error: Cannot redeclare class rmfirstrec in C:\Program Files\EasyPHP 3.0\www\xxxxx\includes\modules\shipping\rmfirstrec.php on line 32

 

Line 32 reads:

 

class rmfirstrec {

 

Have I gone about upgrading in the wrong way? Or do you have nay ideas on a fix/work around?

Sounds like there are two files in your .../includes/modules/shipping directory that both try and create a class of rmfirstec.

 

Check through the files you have and make certain each .php file in the directory declares a unique class. If you do find more than one .php files declaring class rmfirstrec then rename the offending file so it does not end in .php to see if that fixes your problem.

 

e.g.

 

Windows/DOS

ren filename.php filename.old

or

 

Linux/Unix

mv filename.php filename.old

LABBS Web Services

Link to comment
Share on other sites

Sounds like there are two files in your .../includes/modules/shipping directory that both try and create a class of rmfirstec.

 

Check through the files you have and make certain each .php file in the directory declares a unique class. If you do find more than one .php files declaring class rmfirstrec then rename the offending file so it does not end in .php to see if that fixes your problem.

 

e.g.

 

Windows/DOS

ren filename.php filename.old

or

 

Linux/Unix

mv filename.php filename.old

 

Yep - have got exactly the same prob on a vanilla install.

Link to comment
Share on other sites

Hi Chris,

 

I have tried the updgrade/re-install again and found the same error, so ran a 'site wide' search for the class firstrec and can only find one instance of it in catalog/includes/modules/shipping/rmfistrec.php on line 32 - so I'm a little bit puzzled!

 

I think I may tackle this again in the morning when my brain is less tired! I'll report back with any findings..

 

Thanks for your help thus far,

 

James

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...