below is one of the downloads i was able to edit and shows in shipping under module. but is a php file
<?php /* $Id: Royal Mail First Class Standard by Stuart Newton 21 August 2006 Demo: http://www.almatcomputers.co.uk Rates: .1:1,.25:1.27,.5:1.7,.75:2.2,1:2.7,1.25:4.74,1.5:5.59,1.75:6.44,2:7.29,2.25:8.14,2.5:8.99,2.75:9.84,3:10.69 Limits Applied: 3.00Kg orders over this value will not be shown this method. */ /* Release date: 29th of May 2009 Modified contribution by: Alexander Dimelow Email: customer.service@@web-project.co.uk Website: http://oscommerce.web-project.co.uk */ class rmfirst { var $code, $title, $description, $enabled, $num_zones; // class constructor function rmfirst() { global $order, $total_weight; $this->code = 'rmfirst'; $this->title = MODULE_SHIPPING_RMFIRST_TEXT_TITLE; $this->description = MODULE_SHIPPING_RMFIRST_TEXT_DESCRIPTION; $this->sort_order = MODULE_SHIPPING_RMFIRST_SORT_ORDER; $this->icon = DIR_WS_ICONS . 'shipping_rmuk.jpg'; // upload icon to catalog/images/icon directory $this->tax_class = MODULE_SHIPPING_RMFIRST_TAX_CLASS; $this->enabled = ((MODULE_SHIPPING_RMFIRST_STATUS == 'True') ? true : false); $this->num_zones = 1; if ($total_weight > 3) { // If total ship weight is over 3.00Kg do not show this shipping method $this->enabled = false; // Anything over 3Kg its not economically wise to use this method } // To remove this 3.00Kg limit, simply delete these 3 lines. } // class methods function quote($method = '') { global $cart, $order, $shipping_weight, $shipping_num_boxes; $dest_country = $order->delivery['country']['iso_code_2']; $dest_zone = 0; $error = false; if ($order->delivery['country']['iso_code_2'] == 'GB') { // Only UK Customers to see shipping method. Hide everbody else. for ($i=1; $i<=$this->num_zones; $i++) { $countries_table = constant('MODULE_SHIPPING_RMFIRST_COUNTRIES_' . $i); $country_zones = split("[,]", $countries_table); if (in_array($dest_country, $country_zones)) { $dest_zone = $i; break; } } if ($dest_zone == 0) { $error = true; } else { $shipping = -1; $zones_cost = constant('MODULE_SHIPPING_RMFIRST_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]; if(tep_not_null($method) ) // Text shown on Checkout_Confirmation $shipping_method = ''; // Leaving this entry blank causes only the shipping title to show i.e Royal Mail 1st Class Std else // Text shown on Checkout_shipping - Delivery Weight : 0.7 Kg's (Ships normally within 1 to 3 days) $shipping_method = MODULE_SHIPPING_RMFIRST_TEXT_WAY . ' : ' . $shipping_weight . ' ' . MODULE_SHIPPING_RMFIRST_TEXT_UNITS . ' ' . MODULE_SHIPPING_RMFIRST_DELIVERY_TIMES; break; } } if ($shipping == -1) { $shipping_cost = 0; $shipping_method = MODULE_SHIPPING_RMFIRST_UNDEFINED_RATE; } else { $shipping_cost = ($shipping * $shipping_num_boxes) + constant('MODULE_SHIPPING_RMFIRST_HANDLING_' . $dest_zone); } } //extra $cats_array = explode(',',MODULE_SHIPPING_RMFIRST_PER_CATS_CATEGORIES); $cat_names = ''; for($i=0, $x=sizeof($cats_array); $i<$x; $i++){ $cats_array[$i] = (int)$cats_array[$i]; $cat_names .= tep_get_categories_name($cats_array[$i]).', '; } $cat_names = substr($cat_names, 0,-2); $pID_list = $cart->get_product_id_list(); $pID_list = explode(',',$pID_list); for($i=0, $x=sizeof($pID_list); $i<$x; $i++){ $pID_list[$i] = (int)$pID_list[$i]; } $pID_list = implode(',',$pID_list); if (MODULE_SHIPPING_RMFIRST_PER_CATS_ALL_OR_ONE == 'One'){ $products = $cart->get_products(); for($i=0, $x=sizeof($products); $i<$x; $i++){ $check_query = tep_db_query('select * from '.TABLE_PRODUCTS_TO_CATEGORIES.' where categories_id in ('.implode(',',$cats_array).') and products_id="'.(int)$products[$i]['id'].'"'); if (tep_db_num_rows($check_query)) $enable_rates = 1; } } elseif (MODULE_SHIPPING_RMFIRST_PER_CATS_ALL_OR_ONE == 'All'){ $count = 0; for($i=0, $x=sizeof($cats_array); $i<$x; $i++){ $check_query = tep_db_query('select * from '.TABLE_PRODUCTS_TO_CATEGORIES.' where categories_id="'.$cats_array[$i].'" and products_id in ('.$pID_list.')'); if (tep_db_num_rows($check_query)) $count++; } if ($count == sizeof($cats_array)) $enable_rates = 1; } else { $this->enabled = false; return false; } if ( MODULE_SHIPPING_RMFIRST_PER_CATS_ONLY_OR_ANY == 'Only' ){ $check_query = tep_db_query('select * from '.TABLE_PRODUCTS_TO_CATEGORIES.' where categories_id not in ('.MODULE_SHIPPING_RMFIRST_PER_CATS_CATEGORIES.') and products_id in ('.$pID_list.')'); if (tep_db_num_rows($check_query)) $enable_rates = 0; } //end extra if($enable_rates==1){ $this->quotes = array('id' => $this->code, 'module' => MODULE_SHIPPING_RMFIRST_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_RMFIRST_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_RMFIRST_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 RM First Class Postage', 'MODULE_SHIPPING_RMFIRST_STATUS', 'True', 'Do you want to offer this shipping option?', '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_RMFIRST_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_RMFIRST_SORT_ORDER', '1', 'Sort order of display (1 shown first 99 etc shown last to customer)', '6', '0', 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 ('Categories List', 'MODULE_SHIPPING_RMFIRST_PER_CATS_CATEGORIES', '', 'For what categories do you want to offer shipping?<br />NOTE! not recurcive - select all subcategories if you need it.', '6', '0', 'tep_cfg_show_multicategories', 'tep_cfg_select_multicategories(', now())"); 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 ('All or One', 'MODULE_SHIPPING_RMFIRST_PER_CATS_ALL_OR_ONE', 'All', 'Do you want to offer a shipping for orders with products from all mentioned categories, or with at least from one of them?', '6', '0', 'tep_cfg_select_option(array(\'All\', \'One\'), ', now())"); 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 ('Only or Any', 'MODULE_SHIPPING_RMFIRST_PER_CATS_ONLY_OR_ANY', 'Only', 'Do you want to offer a shipping for orders with products only from mentioned categories, or with products from any categories (including mentioned)?', '6', '0', 'tep_cfg_select_option(array(\'Only\', \'Any\'), ', 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 ('ISO Country Code', 'MODULE_SHIPPING_RMFIRST_COUNTRIES_" . $i ."', '" . $default_countries . "', 'Enter the two digit ISO code for which this shipping method applies too. (Default: GB)', '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 ('RM First Class Rates', 'MODULE_SHIPPING_RMFIRST_COST_" . $i ."', '.1:1,.25:1.4,.5:1.8,.75:2.7,1:3.7,1.25:4.74,1.5:5.59,1.75:6.44,2:8.90,2.25:9.14,2.5:9.99,2.75:10.84,3:11.69', 'Enter values upto 5,2 decimal places. (12345.67) Example: .1:1,.25:1.27 - Weights less than or equal to 0.1Kg would cost \A31.00, Weights less than or equal to 0.25g but more than 0.1Kg will cost \A31.27. Do not enter KG or \A3 symbols.', '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 ('Packaging / Handling Fee', 'MODULE_SHIPPING_RMFIRST_HANDLING_" . $i."', '0', 'If you want to add extra costs to customers for jiffy bags etc, the cost can be entered below (eg enter 1.50 for a value of \A31.50)', '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_RMFIRST_STATUS', 'MODULE_SHIPPING_RMFIRST_TAX_CLASS', 'MODULE_SHIPPING_RMFIRST_SORT_ORDER', 'MODULE_SHIPPING_RMFIRST_PER_CATS_CATEGORIES', 'MODULE_SHIPPING_RMFIRST_PER_CATS_ALL_OR_ONE', 'MODULE_SHIPPING_RMFIRST_PER_CATS_ONLY_OR_ANY'); for ($i=1; $i<=$this->num_zones; $i++) { $keys[] = 'MODULE_SHIPPING_RMFIRST_COUNTRIES_' . $i; $keys[] = 'MODULE_SHIPPING_RMFIRST_COST_' . $i; $keys[] = 'MODULE_SHIPPING_RMFIRST_HANDLING_' . $i; } return $keys; } } ?>