Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Royal Mail Complete Postal Shipping Module


Guest

Recommended Posts

Hi all

 

Ive downloaded this contribution Royal Mail Complete Postal Shipping Module.

 

And sucessfly updated the prices and weights which i will upload as a update, however i have tried to install a new part to this module, which is special delivery next day

 

Ive included the sample code, but i cant seam to install it :angry: , if some one could just spend five minutes taking a look at this to identify any problems :rolleyes: .

 

/includes/modules/shipping/

 

<?php

 

class SPECNEXT {

var $code, $title, $description, $enabled, $num_zones;

 

// class constructor

function SPECNEXT() {

$this->code = 'SPECNEXT';

$this->title = MODULE_SHIPPING_SPECNEXT_TEXT_TITLE;

$this->description = MODULE_SHIPPING_SPECNEXT_TEXT_DESCRIPTION;

$this->sort_order = MODULE_SHIPPING_SPECNEXT_SORT_ORDER;

$this->icon = '';

$this->tax_class = MODULE_SHIPPING_SPECNEXT_TAX_CLASS;

 

$this->enabled = ((MODULE_SHIPPING_SPECNEXT_STATUS == 'True') ? true : false);

 

// CUSTOMIZE THIS SETTING FOR THE NUMBER OF ZONES NEEDED

$this->num_zones = 1;

}

 

 

// class methods

function quote($method = '') {

global $order, $shipping_weight, $shipping_num_boxes;

 

$dest_country = $order->delivery['country']['iso_code_2'];

$dest_zone = 0;

$error = false;

 

for ($i=1; $i<=$this->num_zones; $i++) {

$countries_table = constant('MODULE_SHIPPING_SPECNEXT_COUNTRIES_' . $i);

$country_zones = split("[,]", $countries_table);

 

if (in_array($dest_country, $country_zones)) {

$dest_zone = $i;

break;

 

 

}

}

 

// ADDITINAL INSURANCE CHARGES - EDIT WHEN THEY PUT THEM UP!!

 

$ic = 0;

if ($order->info['total'] > 500) $ic = 0;

if ($order->info['total'] > 1000) $ic = 0;

 

// END OF ADDITIONAL INSURANCE CHARGES

 

if ($dest_zone == 0) {

$error = true;

} else {

$shipping = -1;

$zones_cost = constant('MODULE_SHIPPING_SPECNEXT_COST_' . $dest_zone);

 

$zones_table = split("[:,]" , $zones_cost);

$size = sizeof($zones_table);

for ($i=0; $i<$size; $i+=2) {

if ($shipping_weight <= $zones_table[$i]) {

$shipping = $zones_table[$i+1];

$shipping_method = 'Urgent or higher value - Insurance Included Upto £1000';

 

 

break;

}

}

 

 

 

 

 

if ($shipping == -1) {

$shipping_cost = 0;

$shipping_method = MODULE_SHIPPING_SPECNEXT_UNDEFINED_RATE;

$error = true;

}

 

if ($order->info['total'] > 2500) {

$error = true;

 

 

} else {

 

$shipping_cost = ($shipping * $shipping_num_boxes) + $ic + constant('MODULE_SHIPPING_SPECNEXT_HANDLING_' . $dest_zone);

 

}

}

 

$this->quotes = array('id' => $this->code,

'module' => MODULE_SHIPPING_SPECNEXT_TEXT_TITLE,

'methods' => array(array('id' => $this->code,

'title' => $shipping_method,

'cost' => $shipping_cost)));

 

if ($this->tax_class > 0) {

$this->quotes['tax'] = tep_get_tax_rate($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']);

}

 

if (tep_not_null($this->icon)) $this->quotes['icon'] = tep_image($this->icon, $this->title);

 

if ($error == true) $this->quotes['error'] = MODULE_SHIPPING_SPECNEXT_INVALID_ZONE;

 

return $this->quotes;

}

 

function check() {

if (!isset($this->_check)) {

$check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_SPECNEXT_STATUS'");

$this->_check = tep_db_num_rows($check_query);

}

return $this->_check;

}

 

function install() {

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) VALUES ('Enable Zones Method', 'MODULE_SHIPPING_SPECNEXT_STATUS', 'True', 'Do you want to offer zone rate shipping?', '6', '0', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Tax Class', 'MODULE_SHIPPING_SPECNEXT_TAX_CLASS', '0', 'Use the following tax class on the shipping fee.', '6', '0', 'tep_get_tax_class_title', 'tep_cfg_pull_down_tax_classes(', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Sort Order', 'MODULE_SHIPPING_SPECNEXT_SORT_ORDER', '0', 'Sort order of display.', '6', '0', now())");

for ($i = 1; $i <= $this->num_zones; $i++) {

$default_countries = '';

if ($i == 1) {

$default_countries = 'GB';

}

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Zone " . $i ." Countries', 'MODULE_SHIPPING_SPECNEXT_COUNTRIES_" . $i ."', '" . $default_countries . "', 'Comma separated list of two character ISO country codes that are part of Zone " . $i . ".', '6', '0', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Zone " . $i ." Shipping Table', 'MODULE_SHIPPING_SPECNEXT_COST_" . $i ."', '.1:11.55,.5:13.25,1:15.25,2:18.65,

 

 

', 'Shipping rates to Zone " . $i . " destinations based on a group of maximum order weights. Example: 3:8.50,7:10.50,... Weights less than or equal to 3 would cost 8.50 for Zone " . $i . " destinations.', '6', '0', now())");

tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Zone " . $i ." Handling Fee', 'MODULE_SHIPPING_SPECNEXT_HANDLING_" . $i."', '0', 'Handling Fee for this shipping zone', '6', '0', now())");

}

}

 

function remove() {

tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");

}

 

function keys() {

$keys = array('MODULE_SHIPPING_SPECNEXT_STATUS', 'MODULE_SHIPPING_SPECNEXT_TAX_CLASS', 'MODULE_SHIPPING_SPECNEXT_SORT_ORDER');

 

for ($i=1; $i<=$this->num_zones; $i++) {

$keys[] = 'MODULE_SHIPPING_SPECNEXT_COUNTRIES_' . $i;

$keys[] = 'MODULE_SHIPPING_SPECNEXT_COST_' . $i;

$keys[] = 'MODULE_SHIPPING_SPECNEXT_HANDLING_' . $i;

}

 

return $keys;

}

}

?>

 

/includes/lanagues/english/modules/shipping/

 

<?php

/*

$Id: zones.php,v 1.3 2002/11/19 01:48:08 dgw_ Exp $

 

osCommerce, Open Source E-Commerce Solutions

http://www.oscommerce.com

 

Copyright © 2002 osCommerce

 

Released under the GNU General Public License

*/

 

define('MODULE_SHIPPING_SPECNEXT_TEXT_TITLE', 'Royal Mail Special Delivery Next Day');

define('MODULE_SHIPPING_SPECNEXT_TEXT_DESCRIPTION', 'Zone Based Rates');

define('MODULE_SHIPPING_SPECNEXT_TEXT_WAY', '');

define('MODULE_SHIPPING_SPECNEXT_TEXT_UNITS', '');

define('MODULE_SHIPPING_SPECNEXT_INVALID_ZONE', 'Sorry, this shipping option is not available for this order');

define('MODULE_SHIPPING_SPECNEXT_UNDEFINED_RATE', 'The shipping rate cannot be determined at this time');

?>

 

many thanks

Link to comment
Share on other sites

The First and second part of this code is specnext.php located in the directories i previously mentioned.

 

If you just save the code as a php file and load up You can get a better idea of whats going on .

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...