Jump to content
Sign in to follow this  
microchef2

Royal Mail Complete Postal Shipping Module

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

Share this post


Link to post
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 .

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×