Rackandgo Posted December 12, 2007 Posted December 12, 2007 my shipping table wont come up with the correct shippinh prices to reflect customer order price. it just selected the first price for everything my code now looks like this <?php /* $Id: table.php,v 1.27 2003/02/05 22:41:52 hpdl Exp $ osCommerce, Open Source E-Commerce Solutions [url="http://www.oscommerce.com"]http://www.oscommerce.com[/url] Copyright © 2003 osCommerce Released under the GNU General Public License */ class table { var $code, $title, $description, $icon, $enabled; // class constructor function table() { global $order; $this->code = 'table'; $this->title = MODULE_SHIPPING_TABLE_TEXT_TITLE; $this->description = MODULE_SHIPPING_TABLE_TEXT_DESCRIPTION; $this->sort_order = MODULE_SHIPPING_TABLE_SORT_ORDER; // $this->icon = DIR_WS_ICONS . 'shipping_ups.gif'; //$this->icon = ''; $this->tax_class = MODULE_SHIPPING_TABLE_TAX_CLASS; $this->enabled = ((MODULE_SHIPPING_TABLE_STATUS == 'True') ? true : false); if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_TABLE_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_TABLE_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, $shipping_weight, $shipping_num_boxes; if (MODULE_SHIPPING_TABLE_MODE == 'price') { $order_total = $cart->show_total(); } else { $order_total = $shipping_weight; } $availableMethods = array(); for ($methodNum = 1; $methodNum <= MODULE_SHIPPING_TABLE_NUMBER_OF_METHODS; $methodNum++) { $table_cost_name = 'MODULE_SHIPPING_TABLE_COST_METHOD_' . $methodNum; $table_text_name = 'MODULE_SHIPPING_TABLE_TEXT_METHOD_' . $methodNum; $table_cost = split("[:,]", constant($table_cost_name)); for ($i = 0; $i < sizeof($table_cost); $i += 2) { if (($table_cost[$i] == "infinity") || ($table_cost[$i] >= $order_total)) { $shipping = $table_cost[$i+1]; break; } } if ($i == sizeof($table_cost)) continue; if (MODULE_SHIPPING_TABLE_MODE == 'weight') { $shipping *= $shipping_num_boxes; } if ( ($method == '') || ($method == $methodNum) ) { $availableMethods[] = array('id' => $methodNum, 'title' => constant($table_text_name), 'cost' => $shipping + MODULE_SHIPPING_TABLE_HANDLING); } } if (sizeof($availableMethods)) { $this->quotes = array('id' => $this->code, 'module' => $this->title, 'methods' => $availableMethods); } else { return false; } 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_TABLE_STATUS'"); $this->_check = tep_db_num_rows($check_query); } return $this->_check; } function install() { global $language; require(DIR_FS_CATALOG_LANGUAGES . "$language/modules/shipping/table.php"); 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 Table Method', 'MODULE_SHIPPING_TABLE_STATUS', 'True', 'Do you want to offer table rate shipping?', '1', '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, set_function, date_added) values ('Table Method', 'MODULE_SHIPPING_TABLE_MODE', 'weight', 'The shipping cost is based on the order total or the total weight of the items ordered.', '6', '0', 'tep_cfg_select_option(array(\'Weight\', \'Price\'), ', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Handling Fee', 'MODULE_SHIPPING_TABLE_HANDLING', '0', 'Handling fee for this shipping method.', '1', '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_TABLE_TAX_CLASS', '0', 'Use the following tax class on the shipping fee.', '1', '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_TABLE_ZONE', '0', 'If a zone is selected, only enable this shipping method for that zone.', '1', '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_TABLE_SORT_ORDER', '0', 'Sort order of display.', '1', '0', now())"); if (0) { for ($methodNum = 1; $methodNum <= MODULE_SHIPPING_TABLE_NUMBER_OF_METHODS; $methodNum++) { $method = 'METHOD_' . $methodNum; $table_cost_name = 'MODULE_SHIPPING_TABLE_COST_' . $method; $table_text_name = 'MODULE_SHIPPING_TABLE_TEXT_' . $method; $sql = "insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('" . constant($table_text_name) . " Shipping Table', '" . $table_cost_name . "', '25:8.50,50:5.50,10000:0.00', 'The shipping cost is based on the total cost or weight of items. Example: 25:8.50,50:5.50,etc.. Up to 25 charge 8.50, from there to 50 charge 5.50, etc', '6', '0', now())"; //echo $sql . '<br>'; tep_db_query($sql); } } else { $methodNum = 0; do { $methodNum++; $table_cost_name = "MODULE_SHIPPING_TABLE_COST_METHOD_$methodNum"; $table_text_name = "MODULE_SHIPPING_TABLE_TEXT_METHOD_$methodNum"; if (!defined($table_text_name)) { $methodNum--; break; } $sql = "insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('" . constant($table_text_name) . " Shipping Table', '" . $table_cost_name . "', '25:8.50,50:5.50', 'The shipping cost is based on the total cost or weight of items. Example: 25:8.50,50:5.50. Up to 25 charge 8.50, from there to 50 charge 5.50, past 50 and this option is not allowed. Can also specify \"infinity\" to avoid a cap (25:8.50,50:5.50,infinity:4.75)', '6', '0', now())"; tep_db_query($sql); } while (1); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Number of Methods', 'MODULE_SHIPPING_TABLE_NUMBER_OF_METHODS', '$methodNum', 'Number of registered shipping methods.', '1', '0', now())"); } } function remove() { tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key like 'MODULE_SHIPPING_TABLE%'"); } function keys() { $retval = array('MODULE_SHIPPING_TABLE_STATUS', 'MODULE_SHIPPING_TABLE_MODE', 'MODULE_SHIPPING_TABLE_HANDLING', 'MODULE_SHIPPING_TABLE_TAX_CLASS', 'MODULE_SHIPPING_TABLE_ZONE', 'MODULE_SHIPPING_TABLE_SORT_ORDER'); $result = tep_db_query("select configuration_key from " . TABLE_CONFIGURATION . " where configuration_key like 'MODULE_SHIPPING_TABLE_COST_METHOD%' order by configuration_key"); while ($row = tep_db_fetch_array($result)) { $retval[] = $row['configuration_key']; } return $retval; } } ?> i want it to be up to 100.00ProductTotal = $20.00Shippping $200.00=$25.00 $250.00=$30.00 $300.00=$35.00 $400.00=$40.00 $450.00+=$50.00 Flat also, how can i force a $90.00 Oversized Fee on certain items plus addl rates if other products are purchased?
photofxplus Posted December 12, 2007 Posted December 12, 2007 See this topic: http://www.oscommerce.com/forums/index.php?showtopic=286466 Lloyd
Rackandgo Posted December 12, 2007 Author Posted December 12, 2007 See this topic:http://www.oscommerce.com/forums/index.php?showtopic=286466 some info i needed there. but he is running with % shipping, not acutal product cost.
Rackandgo Posted December 12, 2007 Author Posted December 12, 2007 nvm i see it in there, thanks Photofx
Recommended Posts
Archived
This topic is now archived and is closed to further replies.