Guest Posted September 10, 2005 Posted September 10, 2005 I installed the Multiple flat shipping rates based on Order Total mod, which has 3 tiers set. I however needed 5, as the shipping is based on the following: $0.01-19.99 = $4.99 $20.00-49.99 = $5.99 $50.00-74.99 = $6.99 $75.00-99.99 = $7.99 $100+ =$8.99 Being a newb I took a loook at the /includes/modules/shipping/tiered.php file and gathered the 3 places that would need editing: Lines 52-64 Lines 89-97 Line 105 Using my theory I did so and my tiered.php file ended up looking like the code I have posted at the end of my topic. At first it appeared to be working smoothly. Until I realised that anything ordered under the tier 2 minimum price was charged for tier 3's shipping cost. I would REALLY REALLY REALLY appreciate someone's help on this, or possibly someone knows of another mod that does the same thing? <?php /* $Id: tiered v 1.0 09/12/2004 Developed by Dave Ferrise ([email protected]) Based on: tiered.phps,v 2.2 2003/05/03 modified:WebyMaster-TWM dgw_ Exp $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2001,2002, 2003, 2004 osCommerce Released under the GNU General Public License */ class tiered { var $code, $title, $description, $icon, $enabled; // class constructor function tiered() { global $order; $this->code = 'tiered'; $this->title = MODULE_SHIPPING_TIERED_TEXT_TITLE; $this->description = MODULE_SHIPPING_TIERED_TEXT_DESCRIPTION; $this->sort_order = MODULE_SHIPPING_TIERED_SORT_ORDER; $this->icon = ''; $this->tax_class = MODULE_SHIPPING_TIERED_TAX_CLASS; $this->enabled = ((MODULE_SHIPPING_TIERED_STATUS == 'True') ? true : false); if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_TIERED_ZONE > 0) ) { $check_flag = false; $check_query = tep_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_SHIPPING_TIERED_ZONE . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id"); while ($check = tep_db_fetch_array($check_query)) { if ($check['zone_id'] < 1) { $check_flag = true; break; } elseif ($check['zone_id'] == $order->delivery['zone_id']) { $check_flag = true; break; } } if ($check_flag == false) { $this->enabled = false; } } } // class methods function quote($method = '') { global $order, $cart; if (MODULE_SHIPPING_TIERED_STATUS == 'True') { $order_total = $cart->show_total(); } if ($order_total < MODULE_SHIPPING_TIERED_LEVEL_2) { $shipping_tiered = MODULE_SHIPPING_TIERED_RATE_1; } if ($order_total < MODULE_SHIPPING_TIERED_LEVEL_3) { $shipping_tiered = MODULE_SHIPPING_TIERED_RATE_2; } if ($order_total < MODULE_SHIPPING_TIERED_LEVEL_4) { $shipping_tiered = MODULE_SHIPPING_TIERED_RATE_3; } else { if ($order_total < MODULE_SHIPPING_TIERED_LEVEL_5) { $shipping_tiered = MODULE_SHIPPING_TIERED_RATE_4; } else { $shipping_tiered = MODULE_SHIPPING_TIERED_RATE_5; } } $this->quotes = array('id' => $this->code, 'module' => MODULE_SHIPPING_TIERED_TEXT_TITLE, 'methods' => array(array('id' => $this->code, 'title' => MODULE_SHIPPING_TIERED_TEXT_WAY, 'cost' => $shipping_tiered))); 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); 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_TIERED_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 Tiered Shipping', 'MODULE_SHIPPING_TIERED_STATUS', 'True', 'Do you want to offer tiered 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, date_added) values ('Tier 1 Shipping Rate', 'MODULE_SHIPPING_TIERED_RATE_1', '15.00', 'The shipping cost for all orders totalling less than tier 2 Order Level.', '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 ('Tier 2 Order Total Level', 'MODULE_SHIPPING_TIERED_LEVEL_2', '50.00', 'Order total qualifying for second tier shipping rate.', '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 ('Tier 2 Shipping Rate', 'MODULE_SHIPPING_TIERED_RATE_2', '7.50', 'The shipping cost for all orders totalling more than tier 2 value and less than tier 3 value.', '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 ('Tier 3 Order Total Level', 'MODULE_SHIPPING_TIERED_LEVEL_3', '100.00', 'Order total qualifying for third tier shipping rate.', '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 ('Tier 3 Shipping Rate', 'MODULE_SHIPPING_TIERED_RATE_3', '0.00', 'The shipping cost for all orders totalling more than tier 3 value.', '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 ('Tier 4 Order Total Level', 'MODULE_SHIPPING_TIERED_LEVEL_4', '120.00', 'Order total qualifying for fourth tier shipping rate.', '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 ('Tier 4 Shipping Rate', 'MODULE_SHIPPING_TIERED_RATE_4', '0.00', 'The shipping cost for all orders totalling more than tier 4 value.', '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 ('Tier 5 Order Total Level', 'MODULE_SHIPPING_TIERED_LEVEL_5', '150.00', 'Order total qualifying for fifth tier shipping rate.', '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 ('Tier 5 Shipping Rate', 'MODULE_SHIPPING_TIERED_RATE_5', '0.00', 'The shipping cost for all orders totalling more than tier 5 value.', '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 ('Tax Class', 'MODULE_SHIPPING_TIERED_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, use_function, set_function, date_added) values ('Shipping Zone', 'MODULE_SHIPPING_TIERED_ZONE', '0', 'If a zone is selected, only enable this shipping method for that zone.', '6', '0', 'tep_get_zone_class_title', 'tep_cfg_pull_down_zone_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_TIERED_SORT_ORDER', '0', 'Sort order of display.', '6', '0', now())"); } function remove() { tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')"); } function keys() { return array('MODULE_SHIPPING_TIERED_STATUS', 'MODULE_SHIPPING_TIERED_RATE_1', 'MODULE_SHIPPING_TIERED_LEVEL_2', 'MODULE_SHIPPING_TIERED_RATE_2', 'MODULE_SHIPPING_TIERED_LEVEL_3', 'MODULE_SHIPPING_TIERED_RATE_3', 'MODULE_SHIPPING_TIERED_LEVEL_4', 'MODULE_SHIPPING_TIERED_RATE_4', 'MODULE_SHIPPING_TIERED_LEVEL_5', 'MODULE_SHIPPING_TIERED_RATE_5', 'MODULE_SHIPPING_TIERED_TAX_CLASS', 'MODULE_SHIPPING_TIERED_ZONE', 'MODULE_SHIPPING_TIERED_SORT_ORDER'); } } ?> Quote
SevenD Posted September 11, 2005 Posted September 11, 2005 Never tested, but try to replace the folowing part of your code: if (MODULE_SHIPPING_TIERED_STATUS == 'True') { $order_total = $cart->show_total(); } if ($order_total < MODULE_SHIPPING_TIERED_LEVEL_2) { $shipping_tiered = MODULE_SHIPPING_TIERED_RATE_1; } if ($order_total < MODULE_SHIPPING_TIERED_LEVEL_3) { $shipping_tiered = MODULE_SHIPPING_TIERED_RATE_2; } if ($order_total < MODULE_SHIPPING_TIERED_LEVEL_4) { $shipping_tiered = MODULE_SHIPPING_TIERED_RATE_3; } else { if ($order_total < MODULE_SHIPPING_TIERED_LEVEL_5) { $shipping_tiered = MODULE_SHIPPING_TIERED_RATE_4; } else { $shipping_tiered = MODULE_SHIPPING_TIERED_RATE_5; } } with this code: if (MODULE_SHIPPING_TIERED_STATUS == 'True') { $order_total = $cart->show_total(); } if ($order_total < MODULE_SHIPPING_TIERED_LEVEL_2) { $shipping_tiered = MODULE_SHIPPING_TIERED_RATE_1; } elseif ($order_total < MODULE_SHIPPING_TIERED_LEVEL_3) { $shipping_tiered = MODULE_SHIPPING_TIERED_RATE_2; } elseif ($order_total < MODULE_SHIPPING_TIERED_LEVEL_4) { $shipping_tiered = MODULE_SHIPPING_TIERED_RATE_3; } elseif ($order_total < MODULE_SHIPPING_TIERED_LEVEL_5) { $shipping_tiered = MODULE_SHIPPING_TIERED_RATE_4; } else { $shipping_tiered = MODULE_SHIPPING_TIERED_RATE_5; } Quote _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ (\__/) (O.o ) (> < )
Brunswick Posted December 2, 2007 Posted December 2, 2007 Hello All, Realize this is an old thread but I found the final corrected solution to be just what I needed. It works very well! Could I suggest this be added as an update to the original contribution http://www.oscommerce.com/community/contri...ltiple+shipping Might be helpful to a few more people. On a related issue, I've been trying to figure out how to combine this with a multiple zones module of some sort to allow say 2 zones, (Canada, USA, for example) to apply different shipping costs to the same tiers. Anybody have any ideas on this? Best, -Brunswick :) Quote
wkdwich Posted February 22, 2010 Posted February 22, 2010 I am having such a hard time with this one.. I really need to add at least 2 more levels also.. can someone point out where I went wrong??? Kicks errors: [code$order_total = $cart->show_total();}if ($order_total < MODULE_SHIPPING_TIERED_LEVEL_2) {$shipping_tiered = MODULE_SHIPPING_TIERED_RATE_1;}else ($order_total < MODULE_SHIPPING_TIERED_LEVEL_3) {$shipping_tiered = MODULE_SHIPPING_TIERED_RATE_2;}else ($order_total < MODULE_SHIPPING_TIERED_LEVEL_4) {$shipping_tiered = MODULE_SHIPPING_TIERED_RATE_3;}else ($order_total < MODULE_SHIPPING_TIERED_LEVEL_5) {$shipping_tiered = MODULE_SHIPPING_TIERED_RATE_4;}else {$shipping_tiered = MODULE_SHIPPING_TIERED_RATE_5;}[/code]Also Kicks errors: $order_total = $cart->show_total(); } if ($order_total < MODULE_SHIPPING_TIERED_LEVEL_2) { $shipping_tiered = MODULE_SHIPPING_TIERED_RATE_1; } elseif ($order_total < MODULE_SHIPPING_TIERED_LEVEL_3) { $shipping_tiered = MODULE_SHIPPING_TIERED_RATE_2; } elseif ($order_total < MODULE_SHIPPING_TIERED_LEVEL_4) { $shipping_tiered = MODULE_SHIPPING_TIERED_RATE_3; } elseif ($order_total < MODULE_SHIPPING_TIERED_LEVEL_5) { $shipping_tiered = MODULE_SHIPPING_TIERED_RATE_4; } else { $shipping_tiered = MODULE_SHIPPING_TIERED_RATE_5; } Quote Debbie DFranklin County, VA "Moonshine Capitol of the World"osCmax Mobile Template oscmaxtemplates.com
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.