Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

ecommunlimited

Pioneers
  • Posts

    263
  • Joined

  • Last visited

  • Days Won

    7

Everything posted by ecommunlimited

  1. @@raiwa The "Install Now" was the link I was talking about that would not install in beta 2. I had to use the Install button to the right. Store Mode " Header Tag module is not installed or not enabled. It is required, please install and enable. Install Now ---------------------------------------------------------------------------------------------------------------- There is NOT a 500 Internal Error with beta 3 but there was with beta 2 at: includes/modules/header_tags/ht_store_mode.php I may not have uninstalled the beta 1 and that could have been some of the problem. ---------------------------------------------------------------------------------------------------------------- The problem with Twitter Typeahead Autocomplete Search is on my and and NOT with your mod. I still had a problem after uninstalling your mod. Desktop works but mobile is giving me this error. It never use to. 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'or hts.keyword like '%cd%'(pd.products_name like '%cd%' or p.products_model like' at line 1 select count(distinct p.products_id) as total from products p left join products_to_products_extra_fields p2pef on p.products_id=p2pef.products_id left join manufacturers m on p.manufacturers_id=m.manufacturers_id left join specials s on p.products_id = s.products_id, products_description pd, categories c, products_to_categories p2c where p.products_status = '1' and p.products_id = pd.products_id and pd.language_id = '1' and p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and ( or hts.keyword like '%cd%'(pd.products_name like '%cd%' or p.products_model like '%cd%' or m.manufacturers_name like '%cd%' or p2pef.products_extra_fields_value like '%cd%') ) [TEP STOP] ---------------------------------------------------------------------------------------------------------------- Even when I remove my IP address I can't see the Store Closed info. Is there something I'm missing? I even cleared the cache. Take care Bill
  2. @@raiwa I forgot to mention the beta2 stops Twitter Typeahead Autocomplete Search from working. Take care Bill
  3. @@raiwa For your second beta version: The link to install in includes/modules/content/header/cm_header_store_mode.php didn't work. https://mystore.com/my-admin/modules_content.php?action=configure&module=cm_header_store_mode#section_header I had to use my button. https://mystore.com/my-admin/modules.php?set=header_tags&module=ht_store_mode&action=install The includes/modules/header_tags/ht_store_mode.php wouldn't install. Kept giving me a 500 Internal Error The ht_store_mode.php from your first version installed just fine. https://mystore.com/my-admin/modules.php?set=header_tags&module=ht_store_mode Take care Bill
  4. @@danil0 That sitemap creator only indexes 500 URL's for free and the rest will cost you. Many people have thousands upon thousands of URL's. The one by Jack_mcs is free, it's for osC and it can handle all the URL's you got. It works beautifully. Take cake Bill
  5. @@mttdl Jack_mcs is the one who can help you that module. Take care Bill
  6. @@raiwa I found what my issue was caused by, or at least I believe it to be. I was using Discount Codes 3.6 BS with the Modular Shopping Cart and Ship In Cart BS options. They were not compatible with it because when I was updating the Discount Codes I did NOT update the others along with it. I believe that was the issue. Once I updated all 3 it worked fine. Since then I have updated to Discount_Codes_4.1_BS and the other 2 are updated as well. They work as intended. Take care Bill
  7. @@GlenPig For your statement "Also, if they are £0.00 shouldn't they not be visible too?" the fix is below. I had the same problem and Rainer fixed it for me for a small fee. Below the codeare examples of tables that work. They are pound:cost not kgs. Hopefully this helps. <?php/* $Id: mzmt.php, v2.1a 20140125 Kymation Exp $ $Portions From: mzmt.php,v 1.000 2004-10-29 Josh Dechant Exp $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2014 osCommerce Protions Copyright (c) 2004 Josh Dechant Released under the GNU General Public License*/ class mzmt { var $version = '2.1a'; var $code = ''; var $title = ''; var $description = ''; var $icon = ''; var $enabled = false; var $num_tables = 0; var $num_geozones = 0; var $delivery_geozone = 0; var $geozone_mode = 'weight'; var $order_total = 0; var $languages_array = array(); var $quotes = array(); //// // Set up all of the default values available at this time function mzmt() { global $order; $this->code = 'mzmt'; $this->sort_order = @MODULE_SHIPPING_MZMT_SORT_ORDER; $this->tax_class = @MODULE_SHIPPING_MZMT_TAX_CLASS; $this->enabled = ( ( @MODULE_SHIPPING_MZMT_STATUS == 'True' ) ? true : false ); // When the language file has been included if( defined( 'MODULE_SHIPPING_MZMT_TEXT_TITLE' ) ) { $this->title = MODULE_SHIPPING_MZMT_TEXT_TITLE; $this->description = MODULE_SHIPPING_MZMT_TEXT_DESCRIPTION; } // Second pass and later, when the number of geo zones and tables have been set if( defined( 'MODULE_SHIPPING_MZMT_NUMBER_GEOZONES' ) ) { $this->num_geozones = MODULE_SHIPPING_MZMT_NUMBER_GEOZONES; $this->num_tables = MODULE_SHIPPING_MZMT_NUMBER_TABLES; if ($this->enabled == true) { $this->enabled = false; for($n = 1; $n <= $this->num_geozones; $n ++) { if ((( int ) constant ( 'MODULE_SHIPPING_MZMT_GEOZONE_' . $n . '_ID' ) > 0) && (( int ) constant ( 'MODULE_SHIPPING_MZMT_GEOZONE_' . $n . '_ID' ) == $this->getGeoZoneID ( $order->delivery ['country'] ['id'], $order->delivery ['zone_id'] ))) { $this->enabled = true; $this->delivery_geozone = $n; break; } elseif ((( int ) constant ( 'MODULE_SHIPPING_MZMT_GEOZONE_' . $n . '_ID' ) == 0) && ($n == ( int ) $this->num_geozones)) { $this->enabled = true; $this->delivery_geozone = $n; break; } } } } // Set the languages_array to the current store languages $this->get_languages(); } //// // Get a quote or all quotes for a geo zone function quote( $method = '' ) { global $order, $shipping_weight, $shipping_num_boxes, $language; // determine the mode first, so that $weight_string can be prevented from displaying if the mode isn't "weight" $this->determineTableMethod ( constant ( 'MODULE_SHIPPING_MZMT_GEOZONE_' . $this->delivery_geozone . '_MODE' ) ); $combined_quote_weight = $shipping_num_boxes * $shipping_weight; $weight_string = ''; // weight is not displayed if the weight unit entry is left blank or the mode is not weight if( tep_not_null( MODULE_SHIPPING_MZMT_WEIGHT_UNITS ) && $this->geozone_mode == 'weight' ) { $weight_string = ' : ' . $combined_quote_weight . ' ' . MODULE_SHIPPING_MZMT_WEIGHT_UNITS; } $this->quotes = array ( 'id' => $this->code, 'module' => constant ( 'MODULE_SHIPPING_MZMT_GEOZONE_' . $this->delivery_geozone . '_TEXT_TITLE_' . strtoupper( $language ) ), 'methods' => array () ); if ( $method != '' ) { // Single quote $table_number = substr ( $method, 5 ); $shipping = $this->determineShipping ( preg_split ( "/[:,]/", constant ( 'MODULE_SHIPPING_MZMT_GEOZONE_' . $this->delivery_geozone . '_TABLE_' . $table_number ) ) ); if ( $shipping > 0 ) { // hide shipping if quote is zero BEGIN $this->quotes ['methods'] [] = array ( 'id' => 'table' . $table_number, 'title' => constant ( 'MODULE_SHIPPING_MZMT_GEOZONE_' . $this->delivery_geozone . '_TABLE_' . $table_number . '_TEXT_WAY_' . strtoupper( $language ) ) . $weight_string, 'cost' => $shipping + constant ( 'MODULE_SHIPPING_MZMT_GEOZONE_' . $this->delivery_geozone . '_HANDLING' ) ); } // hide shipping if quote is zero END } else { // All applicable quotes for( $table_number = 1; $table_number <= $this->num_tables; $table_number ++ ) { if (! tep_not_null ( constant ( 'MODULE_SHIPPING_MZMT_GEOZONE_' . $this->delivery_geozone . '_TABLE_' . $table_number ) )) continue; $shipping = $this->determineShipping ( preg_split ( "/[:,]/", constant ( 'MODULE_SHIPPING_MZMT_GEOZONE_' . $this->delivery_geozone . '_TABLE_' . $table_number ) ) ); if ( $shipping > 0 ) { // hide shipping if quote is zero BEGIN $this->quotes ['methods'] [] = array ( 'id' => 'table' . $table_number, 'title' => constant ( 'MODULE_SHIPPING_MZMT_GEOZONE_' . $this->delivery_geozone . '_TABLE_' . $table_number . '_TEXT_WAY_' . strtoupper( $language ) ) . $weight_string, 'cost' => $shipping + constant ( 'MODULE_SHIPPING_MZMT_GEOZONE_' . $this->delivery_geozone . '_HANDLING' ) ); } // hide shipping if quote is zero END } } // If shipping is set as taxable, add the appropriate tax if ($this->tax_class > 0) { $this->quotes ['tax'] = tep_get_tax_rate ( $this->tax_class, $order->delivery ['country'] ['id'], $order->delivery ['zone_id'] ); } // Add the icon if there is one if (tep_not_null ( constant ( 'MODULE_SHIPPING_MZMT_GEOZONE_' . $this->delivery_geozone . '_ICON' ) )) $this->quotes ['icon'] = tep_image ( DIR_WS_ICONS . constant ( 'MODULE_SHIPPING_MZMT_GEOZONE_' . $this->delivery_geozone . '_ICON' ), $this->title ); return $this->quotes; } // function quote //// // Return the module status function check() { if (! isset ( $this->_check ) ) { $check_query = tep_db_query ( "select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_MZMT_STATUS'" ); $this->_check = tep_db_num_rows ( $check_query ); } return $this->_check; } //// // Second pass of the initial edit, or the Update box has been checked. // This method is executed by modified code in admin/modules.php // It adds the Configuration table entries for the number of // Zones and Tables set in the first pass, and modifies // existing entries to allow for later updates. function update( $vars_array ) { // Check that we are actually in the second stage install process or later if( ( is_array( $vars_array ) && array_key_exists( 'MODULE_SHIPPING_MZMT_NUMBER_GEOZONES', $vars_array ) && $vars_array['MODULE_SHIPPING_MZMT_NUMBER_GEOZONES'] > 0 && ( array_key_exists( 'MODULE_SHIPPING_MZMT_NUMBER_TABLES', $vars_array ) && $vars_array['MODULE_SHIPPING_MZMT_NUMBER_TABLES'] > 0 ) ) ) { $this->num_geozones = $vars_array['MODULE_SHIPPING_MZMT_NUMBER_GEOZONES']; $this->num_tables = $vars_array['MODULE_SHIPPING_MZMT_NUMBER_TABLES']; // Add, remove, or modify the database entries for the selected number of Zones/Tables $this->zones_tables( $vars_array ); // This part is only done on the second pass of the initial install if( $vars_array['MODULE_SHIPPING_MZMT_UPDATE_ZONES_TABLES'] != 'True' ) { // Modify these two entries to add an update warning message // Update must be run if the first two are changed as they make changes to the number of geo zones/tables $sql_data_array[] = array( 'configuration_key' => 'MODULE_SHIPPING_MZMT_NUMBER_GEOZONES', 'configuration_array' => array( 'configuration_description' => 'The number of shipping geo zones you want to use. ' . MODULE_SHIPPING_MZMT_UPDATE_WARNING ) ); $sql_data_array[] = array( 'configuration_key' => 'MODULE_SHIPPING_MZMT_NUMBER_TABLES', 'configuration_array' => array( 'configuration_description' => 'The number of shipping tables per geo zone. ' . MODULE_SHIPPING_MZMT_UPDATE_WARNING ) ); // Remove the second install message and replace it with the update checkbox $sql_data_array[] = array( 'configuration_key' => 'MODULE_SHIPPING_MZMT_UPDATE_ZONES_TABLES', 'configuration_array' => array( 'configuration_title' => 'Update', 'configuration_description' => 'Check if you want to change the number of geo zones or tables. <span style="color:red;"><b>WARNING:</b> This will remove all of the settings below.</span>', 'configuration_value' => '', 'set_function' => 'tep_cfg_mzmt_update( ', 'use_function' => '' ) ); // Use the above arrays to update the configuration table with the tables etc. foreach( $sql_data_array as $configuration_data ) { tep_db_perform( TABLE_CONFIGURATION, $configuration_data['configuration_array'], 'update', "configuration_key = '" . $configuration_data['configuration_key'] . "'"); } } // if( $vars_array } // if( array_key_exists } // function update //// // Update existing, add new, and/or remove unwanted zones/tables function zones_tables( $vars_array ) { // Check whether an update has been requested // This is always the case for the first pass if( ! array_key_exists( 'MODULE_SHIPPING_MZMT_UPDATE_ZONES_TABLES', $vars_array ) || ( array_key_exists( 'MODULE_SHIPPING_MZMT_UPDATE_ZONES_TABLES', $vars_array ) && $vars_array ['MODULE_SHIPPING_MZMT_UPDATE_ZONES_TABLES'] == 'True' ) ) { // loop an arbitrary number of times, breaking out when we are done for( $zone = 1; $zone < 999; $zone ++ ) { switch (true) { case (! array_key_exists ( 'MODULE_SHIPPING_MZMT_GEOZONE_' . $zone . '_ID', $vars_array ) && $zone <= $this->num_geozones) : // If the Zone does not exist, and we have less than the selected number of zones, we add the Zone 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 ('<hr />Geo Zone " . $zone . "', 'MODULE_SHIPPING_MZMT_GEOZONE_" . $zone . "_ID', '', 'Enable this method for the following geo zone.', '6', '0', 'tep_get_zone_class_title', 'tep_cfg_pull_down_geozones(', 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 ('Geo Zone " . $zone . " Table Mode', 'MODULE_SHIPPING_MZMT_GEOZONE_" . $zone . "_MODE', 'weight', 'The shipping cost is based on the total weight, total price, or total count of the items ordered.', '6', '0', 'tep_cfg_select_option(array(\'weight\', \'price\', \'count\'), ', now())" ); tep_db_query ( "insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Geo Zone " . $zone . " Table Icon', 'MODULE_SHIPPING_MZMT_GEOZONE_" . $zone . "_ICON', '', 'The icon of the shipping method. Leave blank if none.', '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 ('Geo Zone " . $zone . " Handling Fee', 'MODULE_SHIPPING_MZMT_GEOZONE_" . $zone . "_HANDLING', '0', 'Handling Fee for this geo zone.', '6', '0', now())" ); foreach ( $this->languages_array as $language ) { $lang = '_' . strtoupper ( $language ); $language_name = ucfirst ( $language ); tep_db_query ( "insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Geo Zone " . $zone . " Table Title in " . $language_name . "', 'MODULE_SHIPPING_MZMT_GEOZONE_" . $zone . "_TEXT_TITLE" . $lang . "', '', 'The title of the shipping method in " . $language_name . ".', '6', '0', now())" ); } // Update the tables for this zone $this->update_tables ( $vars_array, $zone ); break; case (array_key_exists ( 'MODULE_SHIPPING_MZMT_GEOZONE_' . $zone . '_ID', $vars_array ) && $zone <= $this->num_geozones) : // The Zone data exists, and we are still within the selected number of zones, // so we just need to fix the Tables (if required) $this->update_tables ( $vars_array, $zone ); break; case (array_key_exists ( 'MODULE_SHIPPING_MZMT_GEOZONE_' . $zone . '_ID', $vars_array ) && $zone > $this->num_geozones) : // The zone data exists and we no longer want it, so remove the entries tep_db_query ( "delete from " . TABLE_CONFIGURATION . " where configuration_key like 'MODULE_SHIPPING_MZMT_GEOZONE_" . $zone . "%'" ); $this->update_tables ( $vars_array, $zone ); break; default : case (! array_key_exists ( 'MODULE_SHIPPING_MZMT_GEOZONE_' . $zone . '_ID', $vars_array ) && $zone > $this->num_geozones) : // The zone does not already exist and we do not need it. We're done here. // Break out of the loop and return. break 2; } } } } // function zones_tables //// // Update existing, add new, and/or remove unwanted tables // Done here so that we don't have to repeat this code multiple times in the zones_tables() method function update_tables( $vars_array, $zone ) { // loop an arbitrary number of times, breaking out when we are done for( $tables = 1; $tables < 999; $tables ++ ) { switch( true ) { case ( ! array_key_exists( 'MODULE_SHIPPING_MZMT_GEOZONE_' . $zone . '_TABLE_' . $tables, $vars_array ) && $tables <= $this->num_tables ) : // The table does not already exist and we need to create it tep_db_query ( "insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Geo Zone " . $zone . " Shipping Table " . $tables . "', 'MODULE_SHIPPING_MZMT_GEOZONE_" . $zone . "_TABLE_" . $tables . "', '', 'Shipping table " . $tables . " for this geo zone', '6', '0', now())" ); foreach( $this->languages_array as $language ) { $lang = '_' . strtoupper( $language ); $language_name = ucfirst( $language ); tep_db_query ( "insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Geo Zone " . $zone . " Shipping Table " . $tables . " Name', 'MODULE_SHIPPING_MZMT_GEOZONE_" . $zone . "_TABLE_" . $tables . "_TEXT_WAY" . $lang . "', '', 'Shipping table " . $tables . " name for this geo zone in " . $language_name . "', '6', '0', now())" ); } break; case ( array_key_exists( 'MODULE_SHIPPING_MZMT_GEOZONE_' . $zone . '_TABLE_' . $tables, $vars_array ) && $tables <= $this->num_tables ) : // The table already exists and we only need to update it // The normal update process handles this, so nothering to do here break; case ( array_key_exists( 'MODULE_SHIPPING_MZMT_GEOZONE_' . $zone . '_TABLE_' . $tables, $vars_array ) && $tables > $this->num_tables ) : // The table already exists and we no longer want it, so remove the entries tep_db_query ( "delete from " . TABLE_CONFIGURATION . " where configuration_key like 'MODULE_SHIPPING_MZMT_GEOZONE_" . $zone . "_TABLE_" . $tables . "%'" ); break; default : case ( ! array_key_exists( 'MODULE_SHIPPING_MZMT_GEOZONE_' . $zone . '_TABLE_' . $tables, $vars_array ) && $tables > $this->num_tables ) : // The table does not already exist and we do not need it. We're done here. // Break out of the loop and quit. break 2; } // switch( true ) } // for( $tables = 1 } // function update_tables //// // Initial install 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 ( 'Module Version', 'MODULE_SHIPPING_MZMT_VERSION', '" . $this->version . "', 'The version of this module that you are running', '6', '0', 'tep_cfg_disabled(', now() ) "); tep_db_query ( "insert into " . TABLE_CONFIGURATION . " ( configuration_key, configuration_group_id, sort_order, use_function, set_function ) values ( 'MODULE_SHIPPING_MZMT_LANGUAGE_FILE_TEST', '6', '0', 'tep_cfg_mzmt_language_file_check', 'tep_cfg_do_nothing(' ) "); tep_db_query ( "insert into " . TABLE_CONFIGURATION . " ( configuration_key, configuration_group_id, sort_order, use_function, set_function ) values ( 'MODULE_SHIPPING_MZMT_MODULE_MODS_TEST', '6', '0', 'tep_cfg_mzmt_modules_mod_test', 'tep_cfg_do_nothing(' ) "); 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 Multi-Geo Zone Multi-Table Shipping', 'MODULE_SHIPPING_MZMT_STATUS', 'True', 'Do you want to offer multi-region multi-table 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_MZMT_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 ('Prefix', 'MODULE_SHIPPING_MZMT_PREFIX', 'shp', 'Use only geo zones that start with this string. Leave blank to show all geo zones, including tax zones.', '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 ('Weight Units', 'MODULE_SHIPPING_MZMT_WEIGHT_UNITS', 'lbs.', 'Show these units after the weight. If blank, no weight will be shown.', '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 ('Sort Order', 'MODULE_SHIPPING_MZMT_SORT_ORDER', '0', 'Sort order of display.', '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 ('Number of Geo Zones', 'MODULE_SHIPPING_MZMT_NUMBER_GEOZONES', '0', 'The number of shipping geo zones you want to use.', '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 ('Number of Tables/Geo Zone', 'MODULE_SHIPPING_MZMT_NUMBER_TABLES', '0', 'The number of shipping tables per geo zone.', '6', '0', now())" ); tep_db_query ( "insert into " . TABLE_CONFIGURATION . " ( configuration_key, configuration_value, configuration_group_id, sort_order, use_function, set_function ) values ( 'MODULE_SHIPPING_MZMT_UPDATE_ZONES_TABLES', 'True', '6', '0', 'tep_cfg_mzmt_warning_second_install', 'tep_cfg_do_nothing(' ) "); // The remaining configuration values will be added by the Update function once the numbers of geo zones and tables are known. } //// // Uninstall function remove() { tep_db_query ( "delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode ( "', '", $this->keys () ) . "')" ); } //// // Keys match the database configuration table's configuration_key field function keys() { $keys = array (); $keys [] = 'MODULE_SHIPPING_MZMT_VERSION'; $keys [] = 'MODULE_SHIPPING_MZMT_LANGUAGE_FILE_TEST'; $keys [] = 'MODULE_SHIPPING_MZMT_MODULE_MODS_TEST'; $keys [] = 'MODULE_SHIPPING_MZMT_STATUS'; $keys [] = 'MODULE_SHIPPING_MZMT_TAX_CLASS'; $keys [] = 'MODULE_SHIPPING_MZMT_PREFIX'; $keys [] = 'MODULE_SHIPPING_MZMT_WEIGHT_UNITS'; $keys [] = 'MODULE_SHIPPING_MZMT_SORT_ORDER' ; $keys [] = 'MODULE_SHIPPING_MZMT_NUMBER_GEOZONES'; $keys [] = 'MODULE_SHIPPING_MZMT_NUMBER_TABLES'; $keys [] = 'MODULE_SHIPPING_MZMT_UPDATE_ZONES_TABLES'; for( $zone = 1; $zone <= $this->num_geozones; $zone ++ ) { $keys [] = 'MODULE_SHIPPING_MZMT_GEOZONE_' . $zone . '_ID'; $keys [] = 'MODULE_SHIPPING_MZMT_GEOZONE_' . $zone . '_MODE'; $keys [] = 'MODULE_SHIPPING_MZMT_GEOZONE_' . $zone . '_ICON'; foreach( $this->languages_array as $language ) { $lang = strtoupper( $language ); $keys [] = 'MODULE_SHIPPING_MZMT_GEOZONE_' . $zone . '_TEXT_TITLE_' . $lang; } $keys [] = 'MODULE_SHIPPING_MZMT_GEOZONE_' . $zone . '_HANDLING'; for( $tables = 1; $tables <= $this->num_tables; $tables ++ ) { $keys [] = 'MODULE_SHIPPING_MZMT_GEOZONE_' . $zone . '_TABLE_' . $tables; foreach( $this->languages_array as $language ) { $lang = strtoupper( $language ); $keys [] = 'MODULE_SHIPPING_MZMT_GEOZONE_' . $zone . '_TABLE_' . $tables . '_TEXT_WAY_' . $lang; } } } return $keys; } //// // Get an array of installed languages function get_languages() { if( !class_exists( 'language' ) ) { include_once DIR_WS_CLASSES . 'language.php'; } $language_class = new language; $languages = $language_class->catalog_languages; foreach( $languages as $this_language ) { $this->languages_array[$this_language['id']] = $this_language['directory']; } } //// // Set the correct order total value for the selected shipping basis function determineTableMethod($geozone_mode) { global $total_count, $shipping_weight; $this->geozone_mode = $geozone_mode; if ($this->geozone_mode == 'price') { // when mode is 'price', use $this->getShippableTotal() (function further below) to get "order_total". Shipping cost will be adjusted accordingly when there are virtual products in a mixed cart. $this->order_total = $this->getShippableTotal(); } elseif ($this->geozone_mode == 'count') { // when mode is 'count', use $this->getNumberOfItems() (function further below) to get "order_total". Shipping cost will be adjusted accordingly when there are virtual products in a mixed cart. $this->order_total = $this->getNumberOfItems(); } else { $this->order_total = $shipping_weight; } return true; } //// // Return the shipping cost based on the table function determineShipping( $table_cost ) { global $shipping_num_boxes; for($i = 0, $n = sizeof ( $table_cost ); $i < $n; $i += 2) { // Shipping prices are calculated using the maximum values from the shipping tables. (same as the zone and table shipping modules) if ($this->order_total <= $table_cost [$i]) { $shipping_factor = $table_cost [$i + 1]; break; } } if (substr_count ( $shipping_factor, '%' ) > 0) { $shipping = ((($this->order_total * 10) / 10) * ((str_replace ( '%', '', $shipping_factor )) / 100)); } else { $shipping = str_replace ( '$', '', $shipping_factor ); } if ($this->geozone_mode == 'weight') { $shipping = $shipping * $shipping_num_boxes; } return $shipping; } //// // Check if the current zone matches one of the geo zones we have set up here function getGeoZoneID( $country_id, $zone_id ) { // Set the SQL for thegeo zone prefix if any. $prefix_sql = ''; if( MODULE_SHIPPING_MZMT_PREFIX != '' ) { $prefix_sql = " and LOWER(gz.geo_zone_name) like '" . strtolower( MODULE_SHIPPING_MZMT_PREFIX ) . "%'"; } // Check for a Geo Zone that explicity includes the country & specific zone (useful for splitting countries with zones up) $zone_query = tep_db_query ( "select gz.geo_zone_id from " . TABLE_GEO_ZONES . " gz left join " . TABLE_ZONES_TO_GEO_ZONES . " ztgz on (gz.geo_zone_id = ztgz.geo_zone_id) where ztgz.zone_country_id = '" . ( int ) $country_id . "' and ztgz.zone_id = '" . ( int ) $zone_id . "'" . $prefix_sql ); if (tep_db_num_rows ( $zone_query )) { $zone = tep_db_fetch_array ( $zone_query ); return $zone ['geo_zone_id']; } else { // No luck… Now check for a Geo Zone for the country and "All Zones" of the country. $zone_query = tep_db_query ( "select gz.geo_zone_id from " . TABLE_GEO_ZONES . " gz left join " . TABLE_ZONES_TO_GEO_ZONES . " ztgz on (gz.geo_zone_id = ztgz.geo_zone_id) where ztgz.zone_country_id = '" . ( int ) $country_id . "' and (ztgz.zone_id = '0' or ztgz.zone_id is NULL)" . $prefix_sql ); if (tep_db_num_rows ( $zone_query )) { $zone = tep_db_fetch_array ( $zone_query ); return $zone ['geo_zone_id']; } else { return false; } } } // when the shopping cart contains mixed content calculate the cart total price of physical items, for shipping tables "based on price" - (excludes virtual items) function getShippableTotal() { global $order, $cart, $currencies; $order_total = $cart->show_total(); if ($order->content_type == 'mixed') { $order_total = 0; for ($i=0, $n=sizeof($order->products); $i<$n; $i++) { $order_total += $currencies->calculate_price($order->products[$i]['final_price'], $order->products[$i]['tax'], $order->products[$i]['qty']); if (isset($order->products[$i]['attributes'])) { reset($order->products[$i]['attributes']); while (list($option, $value) = each($order->products[$i]['attributes'])) { $virtual_check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad where pa.products_id = '" . (int)$order->products[$i]['id'] . "' and pa.options_values_id = '" . (int)$value['value_id'] . "' and pa.products_attributes_id = pad.products_attributes_id"); $virtual_check = tep_db_fetch_array($virtual_check_query); if ($virtual_check['total'] > 0) { $order_total -= $currencies->calculate_price($order->products[$i]['final_price'], $order->products[$i]['tax'], $order->products[$i]['qty']); } } } } } return $order_total; } // when the shopping cart contains mixed content calculate the number of physical items, for shipping tables "based on the number of items" - (excludes virtual items) function getNumberOfItems() { global $order, $total_count; $number_of_items = $total_count; if ($order->content_type == 'mixed') { $number_of_items = 0; for ($i=0, $n=sizeof($order->products); $i<$n; $i++) { $number_of_items += $order->products[$i]['qty']; if (isset($order->products[$i]['attributes'])) { reset($order->products[$i]['attributes']); while (list($option, $value) = each($order->products[$i]['attributes'])) { $virtual_check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad where pa.products_id = '" . (int)$order->products[$i]['id'] . "' and pa.options_values_id = '" . (int)$value['value_id'] . "' and pa.products_attributes_id = pad.products_attributes_id"); $virtual_check = tep_db_fetch_array($virtual_check_query); if ($virtual_check['total'] > 0) { $number_of_items -= $order->products[$i]['qty']; } } } } } return $number_of_items; } } // class /// // Function (not a method!) generates a pulldown menu filled with the available Geo Zones if( ! function_exists( 'tep_cfg_pull_down_geozones' ) ) { function tep_cfg_pull_down_geozones( $zone_class_id, $key = '' ) { $name = ( ( $key ) ? 'configuration[' . $key . ']' : 'configuration_value' ); $zone_class_array = array ( array ( 'id' => '0', 'text' => 'Rest of the World' ) ); $zone_class_query_raw = " select geo_zone_id, geo_zone_name from " . TABLE_GEO_ZONES . " where LOWER(geo_zone_name) like '" . strtolower( MODULE_SHIPPING_MZMT_PREFIX ) . "%' order by geo_zone_name "; $zone_class_query = tep_db_query( $zone_class_query_raw ); while( $zone_class = tep_db_fetch_array ( $zone_class_query ) ) { $zone_class_array [] = array ( 'id' => $zone_class ['geo_zone_id'], 'text' => $zone_class ['geo_zone_name'] ); } return tep_draw_pull_down_menu( $name, $zone_class_array, $zone_class_id ); } } //// // Check whether admin/modules.php has been modified/replaced if( !function_exists( 'tep_cfg_mzmt_modules_mod_test' ) ) { function tep_cfg_mzmt_modules_mod_test() { $filename = DIR_FS_ADMIN . 'modules.php'; if( file_exists( $filename ) ) { // Read the file into an array, one line per element $file_array = file( $filename ); // Step through the file and check for a match with the selected code foreach ($file_array as $line) { // Check if the line matches one of the lines that should be removed if( trim( $line ) == '$module->update( $HTTP_POST_VARS[\'configuration\'] );' ) { // The critical line exists, so return success and quit return '<div style="margin-top:-2em;">' . tep_image( DIR_WS_ICONS . 'tick.gif', '', '16', '16', 'style="vertical-align:middle;"' ) . ' <span style="vertical-align:middle; font-weight:bold;">' . MODULE_SHIPPING_MZMT_MODULES . '</span></div>'; break; } } } else { // The file was not found, so return an error return '<div style="margin-top:-2em;">' . tep_image( DIR_WS_ICONS . 'cross.gif', '', '16', '16', 'style="vertical-align:middle;"' ) . ' <span style="vertical-align:middle; font-weight:bold; color:red;">' . MODULE_SHIPPING_MZMT_MODULES_MISSING . '</span></div>'; } // if( file_exists // The lines were not found in the file, so return an error message return '<div style="margin-top:-2em;">' . tep_image( DIR_WS_ICONS . 'cross.gif', '', '16', '16', 'style="vertical-align:middle;"' ) . ' <span style="vertical-align:middle; font-weight:bold; color:red;">' . MODULE_SHIPPING_MZMT_MODULES_NOT_MODIFIED . '</span></div>'; } // function tep_cfg_mzmt_modules_mod_test } // if( !function_exists //// // Check whether the language file for this module exists // We should only need to check the Admin language, so that is taken from $language if (!function_exists('tep_cfg_mzmt_language_file_check')) { function tep_cfg_mzmt_language_file_check() { global $language; $language_file = DIR_FS_CATALOG . DIR_WS_LANGUAGES . $language . '/modules/shipping/mzmt.php'; if (file_exists($language_file) && is_file($language_file)) { return '<div style="margin-top:-1em;">' . tep_image(DIR_WS_ICONS . 'tick.gif', '', '16', '16', 'style="vertical-align:middle;"') . ' <span style="vertical-align:middle; font-weight:bold;">' . MODULE_SHIPPING_MZMT_LANGUAGE_FILE_FOUND . '</span></div>'; return; } // if( file_exists // The language file was not found, so return an error message return '<div style="margin-top:-1em;">' . tep_image(DIR_WS_ICONS . 'cross.gif', '', '16', '16', 'style="vertical-align:middle;"') . ' <span style="vertical-align:middle; font-weight:bold; color:red;">' . MODULE_SHIPPING_MZMT_LANGUAGE_FILE_MISSING . '</span></div>'; } // function tep_cfg_mzmt_language_file_check } // if( !function_exists //// // Show a warning message about second install step // This function is used only in the initial install, // it is removed the first time the module is edited. if (!function_exists('tep_cfg_mzmt_warning_second_install')) { function tep_cfg_mzmt_warning_second_install() { return '<div style="margin-top:-1em;">' . tep_image(DIR_WS_IMAGES . 'ms_info.png', '', '16', '16', 'style="vertical-align:middle;"') . ' <span style="vertical-align:middle; font-weight:bold;">' . MODULE_SHIPPING_MZMT_TEXT_EXPLAIN_SECOND_STEP . '</span></div>'; } } //// // Selector for the Update function // Can be set to True, but is reset to False once Update runs if( !function_exists( 'tep_cfg_mzmt_update' ) ) { function tep_cfg_mzmt_update( $key_value, $key ) { $string = ''; $select_array = array( 0 => 'True', 1 => 'False' ); for ($i=0, $n=sizeof($select_array); $i<$n; $i++) { $name = ((tep_not_null($key)) ? 'configuration[' . $key . ']' : 'configuration_value'); if( $select_array[$i] != 'False' ) { $string .= '<input type="checkbox" name="' . $name . '" value="' . $select_array[$i] . '" /> '; $string .= $select_array[$i]; } } return $string; } } //// // Function to show a disabled entry if( !function_exists( 'tep_cfg_disabled' ) ) { function tep_cfg_disabled( $value ) { return tep_draw_input_field( 'configuration_value', $value, ' disabled' ); } } //// // Prevent input boxes showing for the output-only test functions if (!function_exists('tep_cfg_do_nothing')) { function tep_cfg_do_nothing() { return ''; } }?> ========================================================================================== Prefix Shp Weight Units lbs. Sort Order 0 Number of Geo Zones 3 Number of Tables/Geo Zone 2 Update Geo Zone 1 Shp: United States: 48 Geo Zone 1 Table Mode weight Geo Zone 1 Table Icon Geo Zone 1 Table Title in English Shipping Geo Zone 1 Handling Fee 0 Geo Zone 1 Shipping Table 1 1:4.99,2:7.59,3:8.39,4:9.19,5:9.99,6:10.79,7:11.59,8:12.39,9:13.19,10:13.99 Geo Zone 1 Shipping Table 1 Name Economy Geo Zone 1 Shipping Table 2 1:8.99,2:9.99,3:10.49,4:10.99,5:11.49,6:11.99,7:12.49,8:12.99,9:13.49,10:13.99, 11:14.39,12:14.79,13:15.19,14:15.59,15:15.99,16:16.39,17:16.79,18:17.19,19:17.59,20:17.99, 21:18.39,22:18.79,23:19.19,24:19.59,25:19.99,26:20.39,27:20.79,28:21.19,29:21.59,30:21.99, 31:22.39,32:22.79,33:23.19,34:23.59,35:23.99,36:24.39,37:24.79,38:25.19,39:25.59,40:25.99, 41:26.39,42:26.79,43:27.19,44:27.59,45:27.99,46:28.39,47:28.79,48:29.19,49:29.59,50:29.99, 51:30.39,52:30.79,53:31.19,54:31.59,55:31.99,56:32.39,57:32.79,58:33.19,59:33.59,60:33.99, 61:34.39,62:34.79,63:35.19,64:35.59,65:35.99,66:36.39,67:36.79,68:37.19,69:37.59,70:37.99, 71:38.39,72:38.79,73:39.19,74:39.59,75:39.99,76:40.39,77:40.79,78:41.19,79:41.59,80:41.99, 81:42.39,82:42.79,83:43.19,84:43.59,85:43.99,86:44.39,87:44.79,88:45.19,89:45.59,90:45.99, 91:46.39,92:46.79,93:47.19,94:47.59,95:47.99,96:48.39,97:48.79,98:49.19,99:49.59,100:49.99, 101:50.39,102:50.79,103:51.19,104:51.59,105:51.99,106:52.39,107:52.79,108:53.19,109:53.59,110:53.99, 111:54.39,112:54.79,113:55.19,114:55.59,115:55.99,116:56.39,117:56.79,118:57.19,119:57.59,120:57.99, 121:58.39,122:58.79,123:59.19,124:59.59,125:59.99,126:60.39,127:60.79,128:61.19,129:61.59,130:61.99, 131:62.39,132:62.79,133:63.19,134:63.59,135:63.99,136:64.39,137:64.79,138:65.19,139:65.59,140:65.99, 141:66.39,142:66.79,143:67.19,144:67.59,145:67.99,146:68.39,147:68.79,148:69.19,149:69.59,150:69.99 Geo Zone 1 Shipping Table 2 Name Standard Ground Geo Zone 2 Shp: United States: OH Geo Zone 2 Table Mode weight Geo Zone 2 Table Icon Geo Zone 2 Table Title in English Shipping Geo Zone 2 Handling Fee 0 Geo Zone 2 Shipping Table 1 1:4.99,2:7.59,3:8.39,4:9.19,5:9.99,6:10.79,7:11.59,8:12.39,9:13.19,10:13.99 Geo Zone 2 Shipping Table 1 Name Economy Geo Zone 2 Shipping Table 2 1:8.99,2:9.99,3:10.49,4:10.99,5:11.49,6:11.99,7:12.49,8:12.99,9:13.49,10:13.99, 11:14.39,12:14.79,13:15.19,14:15.59,15:15.99,16:16.39,17:16.79,18:17.19,19:17.59,20:17.99, 21:18.39,22:18.79,23:19.19,24:19.59,25:19.99,26:20.39,27:20.79,28:21.19,29:21.59,30:21.99, 31:22.39,32:22.79,33:23.19,34:23.59,35:23.99,36:24.39,37:24.79,38:25.19,39:25.59,40:25.99, 41:26.39,42:26.79,43:27.19,44:27.59,45:27.99,46:28.39,47:28.79,48:29.19,49:29.59,50:29.99, 51:30.39,52:30.79,53:31.19,54:31.59,55:31.99,56:32.39,57:32.79,58:33.19,59:33.59,60:33.99, 61:34.39,62:34.79,63:35.19,64:35.59,65:35.99,66:36.39,67:36.79,68:37.19,69:37.59,70:37.99, 71:38.39,72:38.79,73:39.19,74:39.59,75:39.99,76:40.39,77:40.79,78:41.19,79:41.59,80:41.99, 81:42.39,82:42.79,83:43.19,84:43.59,85:43.99,86:44.39,87:44.79,88:45.19,89:45.59,90:45.99, 91:46.39,92:46.79,93:47.19,94:47.59,95:47.99,96:48.39,97:48.79,98:49.19,99:49.59,100:49.99, 101:50.39,102:50.79,103:51.19,104:51.59,105:51.99,106:52.39,107:52.79,108:53.19,109:53.59,110:53.99, 111:54.39,112:54.79,113:55.19,114:55.59,115:55.99,116:56.39,117:56.79,118:57.19,119:57.59,120:57.99, 121:58.39,122:58.79,123:59.19,124:59.59,125:59.99,126:60.39,127:60.79,128:61.19,129:61.59,130:61.99, 131:62.39,132:62.79,133:63.19,134:63.59,135:63.99,136:64.39,137:64.79,138:65.19,139:65.59,140:65.99, 141:66.39,142:66.79,143:67.19,144:67.59,145:67.99,146:68.39,147:68.79,148:69.19,149:69.59,150:69.99 Geo Zone 2 Shipping Table 2 Name Standard Ground Geo Zone 3 Shp: United States: AK & HI Geo Zone 3 Table Mode weight Geo Zone 3 Table Icon Geo Zone 3 Table Title in English Shipping Geo Zone 3 Handling Fee 0 Geo Zone 3 Shipping Table 1 1:14.99,2:17.59,3:18.39,4:19.19,5:19.99,6:20.79,7:21.59,8:22.39,9:23.19,10:23.99 Geo Zone 3 Shipping Table 1 Name Economy Geo Zone 3 Shipping Table 2 1:18.99,2:19.99,3:20.49,4:20.99,5:21.49,6:21.99,7:22.49,8:22.99,9:23.49,10:23.99, 11:24.39,12:24.79,13:25.19,14:25.59,15:25.99,16:26.39,17:26.79,18:27.19,19:27.59,20:27.99, 21:28.39,22:28.79,23:29.19,24:29.59,25:29.99,26:30.39,27:30.79,28:31.19,29:31.59,30:31.99, 31:32.39,32:32.79,33:33.19,34:33.59,35:33.99,36:34.39,37:34.79,38:35.19,39:35.59,40:35.99, 41:36.39,42:36.79,43:37.19,44:37.59,45:37.99,46:38.39,47:38.79,48:39.19,49:39.59,50:39.99, 51:40.39,52:40.79,53:41.19,54:41.59,55:41.99,56:42.39,57:42.79,58:43.19,59:43.59,60:43.99, 61:44.39,62:44.79,63:45.19,64:45.59,65:45.99,66:46.39,67:46.79,68:47.19,69:47.59,70:47.99, 71:48.39,72:48.79,73:49.19,74:49.59,75:49.99,76:50.39,77:50.79,78:51.19,79:51.59,80:51.99, 81:52.39,82:52.79,83:53.19,84:53.59,85:53.99,86:54.39,87:54.79,88:55.19,89:55.59,90:55.99, 91:56.39,92:56.79,93:57.19,94:57.59,95:57.99,96:58.39,97:58.79,98:59.19,99:59.59,100:59.99, 101:60.39,102:60.79,103:61.19,104:61.59,105:61.99,106:62.39,107:62.79,108:63.19,109:63.59,110:63.99, 111:64.39,112:64.79,113:65.19,114:65.59,115:65.99,116:66.39,117:66.79,118:67.19,119:67.59,120:67.99, 121:68.39,122:68.79,123:69.19,124:69.59,125:69.99,126:70.39,127:70.79,128:71.19,129:71.59,130:71.99, 131:72.39,132:72.79,133:73.19,134:73.59,135:73.99,136:74.39,137:74.79,138:75.19,139:75.59,140:75.99, 141:76.39,142:76.79,143:77.19,144:77.59,145:77.99,146:78.39,147:78.79,148:79.19,149:79.59,150:79.99 Geo Zone 3 Shipping Table 2 Name Standard Take care Bill
  8. @@burt I was unaware of that Mr. Burton. I did not mean that in an offensive way. I hope you understand.
  9. @@grandpaj No sir, I did not. I tried several things and nothing worked. The creator of this thread chose not to respond. Take care Bill
  10. @@russ-AL PC's For more shipping options check here: http://addons.oscommerce.com/info/4129 What this Contribution Does: ============================= This contribution changes the way osCommerce handles shipping. You can now set the shipping parameters for each product individually. All of the following (and more) are possible: 1. Most products ship by a selection of standard shipping methods, but certain large and heavy items ship by truck. 2. Products ship from one of two or more locations. 3. Some products ship by a selection of standard shipping methods, some must ship by a specific method, others ship directly from several different suppliers. 4. Any combination of the above. You can have orders sent directly to your supplier in the case of products that are shipped directly from that supplier. All of the necessary settings are controlled in the admin panel. There is an Admin page to set up each Vendor (or shipper, or shipping method). There is an Admin panel for setting shipping modules for each vendor, similar to the Shipping Modules page in the current Admin. There is also a configuration setting to turn this whole Contribution off if it is no longer needed. In Admin->Configuration->Shipping/Packaging.
  11. @@russ-AL PC's When you removed the zone module it may have removed the zones or geo_zones from your database. If there gone you need to get them back in there. You can do it through your admin or your database. Even the table rate has to know where to ship to. Take care Bill
  12. @@cupidare Look here: http://addons.oscommerce.com/info/9337 Scroll down half way here and you can see images of it: http://www.inxpressapps.com/oscommerce/ Take care Bill
  13. @@Maccapolo Look in those add-ons or others in the admin files for this: <?php require(DIR_WS_INCLUDES . 'column_left.php'); ?> . You probably have more than one and you only need one in a file. Each one will produce an extra column. It should be just a few lines below the </head> <!-- left_navigation //--> <?php require(DIR_WS_INCLUDES . 'column_left.php'); ?> <!-- left_navigation_eof //--> Take care Bill
  14. Get Price Quantity XML Update Feed v2.1 THIS IS FOR XML FILES ONLY! The purpose of this contribution is so that you can keep your product prices and quantities in stock updated correctly so that they match with your supplier. It will NOT add new products to your database. This contribution can make the procedure of updating your prices and quantities automatic by using a cron job. If you need to or choose to, you can do it manually through your browser as well if a cron job is not a option available to you. The frequency of the cron job may be set to run as often as your supplier updates their prices and quantities or that your host allows. The manual option can also be ran as often as your supplier updates their file or that your host allows as well. Whether you choose the automatic or manual method, if your host has strict usage limits you probably shouldn't run this file more than every 15 minutes. This contribution has the capability to adjust the suppliers prices using a markup percentage that you set. To use this feature, it is required to have a markup column in the categories table of your database. It also has the capability to limit prices to the MAP (Minimum Advertised Price) per manufacturer requirements. To use this feature as well, it is required to have a products_map column in the products table of your database. You can view it at http://addons.oscommerce.com/info/9526. Take care Bill
  15. @@raiwa I have a current OV certificate from Thawte as well as the certificate used from my CDN Cloudflare. And the PayPal App has the paypal.com.crt. I run a full SSL front and back and I had the Instant Update set to true. All showed correct when coming back to the checkout_confirmation page but not in the PayPal log or at PayPal itself. In the log the shipping and tax were 0.00 as well as at PayPal when I looked at the transaction details. And the confirmation sent emails to me and the customers from PayPal shows the total but no line items. I figured as far as SSL was concerned I was covered but maybe there's some conflict with the SSL's. What do you think? Take care Bill
  16. Is there a donate to charity mod that works with PayPal App Express Checkout? I had Charity Round Up / Donate The Change.zip working somewhat with the regular Express Checkout. I had to delete it because I installed PayPal App Express Checkout and the line items weren't passing to PayPal correctly. Take care Bill
  17. Does anyone know of a discount mod that works with PayPal App Express Checkout? I was using Discount Codes 3.6 BS reloaded with the regular Express Checkout and it worked fine but, it doesn't work with the PayPal App. For some reason the line items will not pass properly. Take care Bill
  18. The actual name is Get Price Quantity Update Feed NOT Get Qty Price Update Feed from Supplier. I was in a hurry when I wrote the title of this thread. This is a simple update. I removed 3 lines of code that were not needed and relocated 1 line of code to a more optimal spot in the get_feed.php file. Slightly changed the install instructions to reflect the lines of code that were not needed as well as the 1 line of code I moved. Added the support thread link. To update from v1.06 to v1.07. Overwrite the get_feed.php file from v1.06 with the get_feed.php from v1.07. Set it per the instructions in the Install.txt file. It's that simple. You can view it at http://addons.oscommerce.com/info/9525 Take care Bill
  19. @@crimble crumble I'm not sure if it applies to also_purchased_products.php or not because I don't use it. I use also_consider.php from another mod and it works perfect with it on the product info page. You can look in the Equal Height Divs (jQuery) and see if there is a box to check mark for that or anything else you want the Equal Height to work on. Take care Bill
  20. Get Qty Price Update Feed from Supplier v1.06 It appeared to me that Get Qty/Price Feed from Supplier 1.05 was not being updated any longer. Since there is still a need for a contribution like this I updated it to work with v2.3.4 BSr and changed the name of it a little. For Get Qty/Price Feed from Supplier 1.05 and before, credit is given to the respective authors. This contribution has been updated to work with osC v2.3.4 Bootstrap Responsive. It has been tested with Apache, PHP 7 MYSQL 5.6 and Mozilla FireFox. It may or may not work with other versions of osC, PHP, MYSQL and browsers. I am not sure, I have not tested it that far. I just made it work for me. THIS IS FOR CSV FILES ONLY! The purpose of this contribution is so that you can keep your product prices and quantities in stock updated correctly so that they match with your supplier. It will NOT add new products to your database. This contribution can make the procedure of updating your prices and quantities automatic by using a cron job. If you need to or choose to, you can do it manually through your browser as well if a cron job is not a option available to you. The frequency of the cron job may be set to run as often as your supplier updates their prices and quantities or that your host allows. The manual option can also be ran as often as your supplier updates their file or that your host allows as well. This contribution has the capability to adjust the suppliers prices using a markup percentage that you set. It also has the capability to limit prices to the MAP (Minimum Advertised Price) per manufacturer requirements. See it at: http://addons.oscommerce.com/info/9521 Take care Bill
  21. Hello @@Jack_mcs, I will install the PayPal App if it is needed but, the discount isn't what I'm having a problem with. My problem is with the donation to charity. The discount mod I'm using and the donation to charity mod both work flawlessly when I DON'T use PayPal Express. Even when I do use PayPal Express, my discount mod works accordingly as you can see from my earlier post. Somewhere in the mix with PayPal the donation first gets altered by them, and then deleted while processing and on the return. That's why I was wondering if it's a PayPal Issue or a osC mod issue. I looked at the PayPal App files before I asked for help here and I called PayPal too. I couldn't see a whole lot of difference between the PayPal App (Express code) and the regular Express code. I did see a lot of reference to the App in the code but, I didn't notice a whole lot of different functionality in the code. But I'm not a coder so that means nothing. Bill
  22. Hello all, I'm running v2.3.4 BSr with Apache, PHP 7 and MySQL 5.6 I'm using Charity Round Up in my checkout process and it works perfect when I tested it with Check/Money Order and Will Call With Credit Card Info. The add-on can be seen here: http://addons.oscommerce.com/info/6073. Now I'm testing it with PayPal Express Checkout and it's not showing the donation or total correctly while at PayPal, nor does it on the return from PayPal. I tested the same product so everything would match like, price, weight, address, etc. Below you can see it came out right using Check/Money Order and Will Call With Credit Card Info from my site in one order. Then you'll see how it shows up in another order at PayPal. It shows the Donation to Charity @ $0.75 and the Total @ $1.98 USD. The donation should $0.77 and the Total should be $2.00. I'm not worried about the Tax: @ $0.06 or the Shipping and handling: @ $0.27 because in terms of tax they equate to $0.08 which is correct for my tax zone and tax rate. And lastly you'll see the return from PayPal. There isn't any mention of the donation and the Total is $1.23. So $2.00 (which would be correct) minus the donation of $0.77, leaves $1.23. As you can see PayPal completely wiped out the donation when it processed the payment. Does anyone have any idea why or what's wrong? Is there a change I need to make somewhere? I can do the work, I just need to know what to do. Some help would be appreciated. ============================================================= On my site viewing the order and, from Orders Processed. Using my Checkout button, the order shows as it should. 1 x Benchmaster BenchMaster Field Spikes $1.00 Sub-Total: $1.00 Discount (test1): -$0.10 Shipping (Economy : 0.7 lbs.): $0.25 Donation to Charity: $0.77 Ohio Local Sales Tax: $0.08 Total: $2.00 ------- Order Total: $2.00 ============================================================= Leaving my site using the PayPal Express Checkout button the order shows up at PayPal as this: Benchmaster BenchMaster Field Spikes $1.00 Item number: 2451 Item price: $1.00 Quantity: 1 Discount (test1) $-0.10 Item price: $-0.10 Donation to Charity $0.75 Item price: $0.75 Quantity: 1 Item total: $1.65 Tax: $0.06 Shipping and handling: $0.27 ------- Total $1.98 USD ============================================================= Returning to my site after PayPal Express Checkout the order shows up in the Order Processed as this: 1 x Benchmaster BenchMaster Field Spikes $1.00 Sub-Total: $1.00 Discount (test1): -$0.10 Shipping Economy : 0.7 lbs.: $0.25 Ohio Local Sales Tax: $0.08 Total: $1.23 ------- Order Total: $1.23 Thank you Bill
  23. This works for me. I changed the <?php require(DIR_WS_INCLUDES . 'header.php'); ?> to <?php require(DIR_WS_INCLUDES . 'template_top.php'); ?> and I removed the colum_left as well. I needed to for an add on I have. <?php /* $Id: exportorders.php,v 1.1 April 21, 2006 Harris Ahmed $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright © 2004 Oscommerce Use this module on your own risk. I will be updating a new one soon. This template is used to create the csv export for Ideal Computer Systems Accounting Software */ define('FILENAME_EXPORTORDERS', 'exportorders.php'); require('includes/application_top.php'); require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_EXPORTORDERS); // Check if the form is submitted if (!$_GET['submitted']) { ?> <!-- header_eof //--> <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"> <html <?php echo HTML_PARAMS; ?>> <head> <meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>"> <title><?php echo TITLE; ?></title> <link rel="stylesheet" type="text/css" href="includes/stylesheet.css"> </head> <body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF"> <!-- header //--> <?php require(DIR_WS_INCLUDES . 'template_top.php'); ?> <!-- header_eof //--> <!-- body //--> <table border="0" width="100%" cellspacing="2" cellpadding="2"> <tr> <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="1" cellpadding="1" class="columnLeft"> </table></td> <!-- body_text //--> <td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr> <td><table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td class="pageHeading"><?php echo HEADING_TITLE; ?></td> <td class="pageHeading" align="right"></td> </tr> </table></td> </tr> <!-- first ends // --> <tr> <td><table border="0" style="font-family:tahoma;font-size:11px;" width="100%" cellspacing="2" cellpadding="2"> <tr> <td><form method="GET" action="<?php echo $PHP_SELF; ?>"> <table border="0" style="font-family:tahoma;font-size:11px;" cellpadding="3"> <tr> <td><?php echo INPUT_START; ?></td> <td><!-- input name="start" size="5" value="<?php echo $start; ?>"> --> <?php $orders_list_query = tep_db_query("SELECT orders_id, date_purchased FROM orders ORDER BY orders_id"); $orders_list_array = array(); $orders_list_array[] = array('id' => '', 'text' => '---'); while ($orders_list = tep_db_fetch_array($orders_list_query)) { $orders_list_array[] = array('id' => $orders_list['orders_id'], 'text' => $orders_list['orders_id']." - ".tep_date_short($orders_list['date_purchased'])); } echo ' ' . tep_draw_pull_down_menu('start', $orders_list_array, (isset($_GET['orders_id']) ? $_GET['orders_id'] : ''), 'size="1"') . ' '; ?></td> </tr> <tr> <td><?php echo INPUT_END; ?></td> <td><!-- <input name="end" size="5" value="<?php echo $end; ?>"> --> <?php echo ' ' . tep_draw_pull_down_menu('end', $orders_list_array, (isset($_GET['orders_id']) ? $_GET['orders_id'] : ''), 'size="1"') . ' '; ?></td> </tr> <tr> <td> </td> <td><input type="submit" value="<?php echo INPUT_VALID; ?>"></td> </tr> </table> <input type="hidden" name="submitted" value="1"> </form></td> </tr> <tr> <td><?php echo INPUT_DESC; ?></td> </tr> <tr> <td> </td> </tr> <tr> <td> </td> </tr> </table></td> </tr> </table></td> </tr> </table> <!-- footer //--> <?php require(DIR_WS_INCLUDES . 'footer.php'); ?> <!-- footer_eof //--> </body> </html> <?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?> <?php } // submitted so generate csv if the form is submitted else { generatecsv($_GET['start'], $_GET['end']); } // generates csv file from $start order to $end order, inclusive function generatecsv($start, $end) { //Placing columns names in first row $delim = ',' ; $csv_output .= "Orders_id".$delim; $csv_output .= "Date".$delim; $csv_output .= "Time".$delim; $csv_output .= "First_Name".$delim; $csv_output .= "Last_Name".$delim; $csv_output .= "Name_On_Card".$delim; $csv_output .= "Company".$delim; $csv_output .= "email".$delim; $csv_output .= "Billing_Address_1".$delim; $csv_output .= "Billing_Address_2".$delim; $csv_output .= "Billing_City".$delim; $csv_output .= "Billing_State".$delim; $csv_output .= "Billing_Zip".$delim; $csv_output .= "Billing_Country".$delim; $csv_output .= "Billing_Phone".$delim; $csv_output .= "ShipTo_First_Name".$delim; $csv_output .= "ShipTo_Last_Name".$delim; $csv_output .= "ShipTo_Name".$delim; $csv_output .= "ShipTo_Company".$delim; $csv_output .= "ShipTo_Address_1".$delim; $csv_output .= "ShipTo_Address_2".$delim; $csv_output .= "ShipTo_City".$delim; $csv_output .= "ShipTo_State".$delim; $csv_output .= "ShipTo_Zip".$delim; $csv_output .= "ShipTo_Country".$delim; $csv_output .= "ShipTo_Phone".$delim; //$csv_output .= "Card_Type".$delim; //$csv_output .= "Card_Number".$delim; //$csv_output .= "Exp_Date".$delim; //$csv_output .= "Bank_Name".$delim; //$csv_output .= "Gateway".$delim; //$csv_output .= "AVS_Code".$delim; $csv_output .= "Transaction_ID".$delim; $csv_output .= "Order_Special_Notes".$delim; $csv_output .= "Comments".$delim; $csv_output .= "Order_Subtotal".$delim; $csv_output .= "Order_Tax".$delim; $csv_output .= "Order_Insurance".$delim; $csv_output .= "Tax_Exempt_Message".$delim; $csv_output .= "Order_Shipping_Total".$delim; //$csv_output .= "Small_Order_Fee".$delim; //$csv_output .= "Discount_Rate".$delim; //$csv_output .= "Discount_Message".$delim; //$csv_output .= "CODAmount".$delim; $csv_output .= "Order_Grand_Total".$delim; $csv_output .= "Number_of_Items".$delim; $csv_output .= "Shipping_Method".$delim; $csv_output .= "Shipping_Weight".$delim; //$csv_output .= "Coupon_Code".$delim; //$csv_output .= "Order_security_msg.".$delim; //$csv_output .= "Order_Surcharge_Amount".$delim; //$csv_output .= "Order_Surcharge_Something".$delim; //$csv_output .= "Affiliate_code".$delim; //$csv_output .= "Sentiment_message".$delim; //$csv_output .= "Checkout_form_type".$delim; //$csv_output .= "Card_CVV_value".$delim; //$csv_output .= "future1".$delim; //$csv_output .= "future2".$delim; //$csv_output .= "future3".$delim; //$csv_output .= "future4".$delim; //$csv_output .= "future5".$delim; //$csv_output .= "future6".$delim; //$csv_output .= "future7".$delim; //$csv_output .= "future8".$delim; //$csv_output .= "future9".$delim; //$csv_output .= "Remarks".$delim; //$csv_output .= "ProductId".$delim; //$csv_output .= "Product_Price".$delim; //$csv_output .= "Number".$delim; //$csv_output .= "Product".$delim; //$csv_output .= "Attribute".$delim; //$csv_output .= "Attribute_Value".$delim; $csv_output .= "\n"; //End Placing columns in first row // Patch dlan // if both fields are empty we select all orders if ($start=="" && $end=="") { $orders = tep_db_query("SELECT orders_id, date_purchased, customers_name, customers_id, cc_owner, customers_company, customers_email_address, billing_street_address, billing_city, billing_state, billing_postcode, billing_country, customers_telephone, delivery_name, delivery_company, delivery_street_address, delivery_city, delivery_state, delivery_postcode, delivery_country, cc_type, cc_number, cc_expires FROM orders ORDER BY orders_id"); // if $start is empty we select all orders up to $end } else if($start=="" && $end!="") { $orders = tep_db_query("SELECT orders_id, date_purchased, customers_name, customers_id, cc_owner, customers_company, customers_email_address, billing_street_address, billing_city, billing_state, billing_postcode, billing_country, customers_telephone, delivery_name, delivery_company, delivery_street_address, delivery_city, delivery_state, delivery_postcode, delivery_country, cc_type, cc_number, cc_expires FROM orders WHERE orders_id <= $end ORDER BY orders_id"); // if $end is empty we select all orders from $start } else if($start!="" && $end=="") { $orders = tep_db_query("SELECT orders_id, date_purchased, customers_name, customers_id, cc_owner, customers_company, customers_email_address, billing_street_address, billing_city, billing_state, billing_postcode, billing_country, customers_telephone, delivery_name, delivery_company, delivery_street_address, delivery_city, delivery_state, delivery_postcode, delivery_country, cc_type, cc_number, cc_expires FROM orders WHERE orders_id >= $start ORDER BY orders_id"); // if both fields are filed in we select orders betwenn $start and $end } else { $orders = tep_db_query("SELECT orders_id, date_purchased, customers_name, customers_id, cc_owner, customers_company, customers_email_address, billing_street_address, billing_city, billing_state, billing_postcode, billing_country, customers_telephone, delivery_name, delivery_company, delivery_street_address, delivery_city, delivery_state, delivery_postcode, delivery_country, cc_type, cc_number, cc_expires FROM orders WHERE orders_id >= $start AND orders_id <= $end ORDER BY orders_id"); } //patch //$csv_output ="\n"; while ($row_orders = tep_db_fetch_array($orders)) { //start one loop $csv_output_ordersbefore = $csv_output; $Orders_id = $row_orders["orders_id"]; $customers_id = $row_orders["customers_id"]; $Date1 = $row_orders["date_purchased"]; //list($Date, $Time) = explode (' ',$Date1); $Date = date('m/d/Y', strtotime($Date1)); $Time= date('H:i:s', strtotime($Date1)); $Name_On_Card1 = $row_orders["customers_name"]; $Name_On_Card = filter_text($Name_On_Card1);// order changed list($First_Name,$Last_Name) = explode(' ',$Name_On_Card1); // order changed $Company = filter_text($row_orders["customers_company"]); $email = filter_text($row_orders["customers_email_address"]); $Billing_Address_1 = filter_text($row_orders["billing_street_address"]); $Billing_Address_2 = ""; $Billing_City = filter_text($row_orders["billing_city"]); $Billing_State = filter_text($row_orders["billing_state"]); $Billing_Zip = filter_text($row_orders["billing_postcode"]); $Billing_Country = str_replace("(48 Contiguous Sta", "", $row_orders["billing_country"]); $Billing_Phone = filter_text($row_orders["customers_telephone"]); $ShipTo_Name1 = $row_orders["delivery_name"]; $ShipTo_Name = filter_text($ShipTo_Name1); // order changed list($ShipTo_First_Name,$ShipTo_Last_Name) = explode(' ',$ShipTo_Name1); // order changed $ShipTo_Company = filter_text($row_orders["delivery_company"]); $ShipTo_Address_1 = filter_text($row_orders["delivery_street_address"]); $ShipTo_Address_2 = ""; $ShipTo_City = filter_text($row_orders["delivery_city"]); $ShipTo_State = filter_text($row_orders["delivery_state"]); $ShipTo_Zip = filter_text($row_orders["delivery_postcode"]); $ShipTo_Country = str_replace("(48 Contiguous Sta", "", $row_orders["delivery_country"]); $ShipTo_Phone = ""; $Card_Type = $row_orders["cc_type"]; $Card_Number = $row_orders["cc_number"]; $Exp_Date = $row_orders["cc_expires"]; $Bank_Name = ""; $Gateway = ""; $AVS_Code = ""; $Transaction_ID = ""; $Order_Special_Notes = ""; // -------------------- QUERIES 1 ------------------------------------// //Orders_status_history for comments $orders_status_history = tep_db_query("select comments from orders_status_history where orders_id = " . $Orders_id); //$row_orders_status_history = tep_db_fetch_array($comments); while($row_orders_status_history = tep_db_fetch_array($orders_status_history)) { // end // $Comments = filter_text($row_orders_status_history["comments"]); } // -------------------- QUERIES 2 ------------------------------------// //Orders_subtotal $orders_subtotal = tep_db_query("select value from orders_total where class = 'ot_subtotal' and orders_id = " . $Orders_id); //$row_orders_subtotal = tep_db_fetch_array($orders_subtotal); while($row_orders_subtotal = tep_db_fetch_array($orders_subtotal)) { // end // $Order_Subtotal = filter_text($row_orders_subtotal["value"]); } // -------------------- QUERIES 3 ------------------------------------// //Orders_tax $orders_tax = tep_db_query("select value from orders_total where class = 'ot_tax' and orders_id = " . $Orders_id); //$row_orders_tax = tep_db_fetch_array($orders_tax); while($row_orders_tax = tep_db_fetch_array($orders_tax)) { // end // $Order_Tax = filter_text($row_orders_tax["value"]); } // -------------------- QUERIES 4 ------------------------------------// //Orders_Insurance $orders_insurance = tep_db_query("select value from orders_total where class = 'ot_insurance' and orders_id = " . $Orders_id); //$row_orders_insurance = tep_db_fetch_array($orders_insurance); while($row_orders_insurance = tep_db_fetch_array($orders_insurance)) { // end // $Order_Insurance = filter_text($row_orders_insurance["value"]); } $Tax_Exempt_Message = ""; // -------------------- QUERIES 5 ------------------------------------// //Orders_Shipping $orders_shipping = tep_db_query("select title, value from orders_total where class = 'ot_shipping' and orders_id = " . $Orders_id); //$row_orders_shipping = tep_db_fetch_array($orders_shipping); while($row_orders_shipping = tep_db_fetch_array($orders_shipping)) { // end // $Order_Shipping_Total = $row_orders_shipping["value"]; $Shipping_Method = filter_text($row_orders_shipping["title"]); // Shipping method from query 5 } // -------------------- QUERIES 6 ------------------------------------// //Orders_Residential Del Fee (Giftwrap) $orders_residential_fee = tep_db_query("select value from orders_total where class = 'ot_giftwrap' and orders_id = " . $Orders_id); //$row_orders_residential_fee = tep_db_fetch_array($orders_residential_fee); while($row_orders_residential_fee = tep_db_fetch_array($orders_residential_fee)) { // end // $Small_Order_Fee = $row_orders_residential_fee["value"]; } //////////////////////////////////// $Discount_Rate = ""; $Discount_Message = ""; $CODAmount = ""; // -------------------- QUERIES 7 ------------------------------------// //Orders_Total $orders_total = tep_db_query("select value from orders_total where class = 'ot_total' and orders_id = " . $Orders_id); //$row_orders_total = tep_db_fetch_array($orders_total); while($row_orders_total = tep_db_fetch_array($orders_total)) { // end // $Order_Grand_Total = $row_orders_total["value"]; } // -------------------- QUERIES 8 ------------------------------------// //Products COunt $orders_count = tep_db_query("select count(products_quantity) as o_count from orders_products where orders_id = " . $Orders_id); //$row_orders_total = tep_db_fetch_array($orders_total); while($row_orders_count = tep_db_fetch_array($orders_count)) { // end // $Number_of_Items = $row_orders_count[0]; // used array to show the number of items ordered } // $Shipping_Weight = ""; $Coupon_Code = ""; $Order_security_msg = ""; $Order_Surcharge_Amount = ""; $Order_Surcharge_Something = ""; $Affiliate_code = ""; $Sentiment_message = ""; $Checkout_form_type = ""; $Card_CVV_value = $row_orders["cvvnumber"]; $future1 = ""; $future2 = ""; $future3 = ""; $future4 = ""; $future5 = ""; $future6 = ""; $future7 = ""; $future8 = ""; $future9 = ""; // csv settings $CSV_SEPARATOR = ","; $CSV_NEWLINE = "\r\n"; $csv_output .= $Orders_id . "," ; $csv_output .= $Date . "," ; $csv_output .= $Time . "," ; $csv_output .= $First_Name . "," ; $csv_output .= $Last_Name . "," ; $csv_output .= $Name_On_Card . "," ; $csv_output .= $Company . "," ; $csv_output .= $email . "," ; $csv_output .= $Billing_Address_1 . "," ; $csv_output .= $Billing_Address_2 . "," ; $csv_output .= $Billing_City . "," ; $csv_output .= $Billing_State . "," ; $csv_output .= $Billing_Zip . "," ; $csv_output .= $Billing_Country . "," ; $csv_output .= $Billing_Phone . "," ; $csv_output .= $ShipTo_First_Name . "," ; $csv_output .= $ShipTo_Last_Name . "," ; $csv_output .= $ShipTo_Name . "," ; $csv_output .= $ShipTo_Company . "," ; $csv_output .= $ShipTo_Address_1 . "," ; $csv_output .= $ShipTo_Address_2 . "," ; $csv_output .= $ShipTo_City . "," ; $csv_output .= $ShipTo_State . "," ; $csv_output .= $ShipTo_Zip . "," ; $csv_output .= $ShipTo_Country . "," ; $csv_output .= $ShipTo_Phone . "," ; //$csv_output .= $Card_Type . "," ; //$csv_output .= $Card_Number . "," ; //$csv_output .= $Exp_Date . "," ; //$csv_output .= $Bank_Name . "," ; //$csv_output .= $Gateway . "," ; //$csv_output .= $AVS_Code . "," ; $csv_output .= $Transaction_ID . "," ; $csv_output .= $Order_Special_Notes . "," ; $csv_output .= $Comments . "," ; $csv_output .= $Order_Subtotal . "," ; $csv_output .= $Order_Tax . "," ; $csv_output .= $Order_Insurance . "," ; $csv_output .= $Tax_Exempt_Message . "," ; $csv_output .= $Order_Shipping_Total . "," ; //$csv_output .= $Small_Order_Fee . "," ; //$csv_output .= $Discount_Rate . "," ; //$csv_output .= $Discount_Message . "," ; //$csv_output .= $CODAmount . "," ; $csv_output .= $Order_Grand_Total . "," ; $csv_output .= $Number_of_Items . "," ; $csv_output .= $Shipping_Method . "," ; $csv_output .= $Shipping_Weight . "," ; //$csv_output .= $Coupon_Code . "," ; //$csv_output .= $Order_security_msg . "," ; //$csv_output .= $Order_Surcharge_Amount . "," ; //$csv_output .= $Order_Surcharge_Something . "," ; //$csv_output .= $Affiliate_code . "," ; //$csv_output .= $Sentiment_message . "," ; //$csv_output .= $Checkout_form_type . "," ; //$csv_output .= $Card_CVV_value . "," ; //$csv_output .= $future1 . "," ; //$csv_output .= $future2 . "," ; //$csv_output .= $future3 . "," ; //$csv_output .= $future4 . "," ; //$csv_output .= $future5 . "," ; //$csv_output .= $future6 . "," ; //$csv_output .= $future7 . "," ; //$csv_output .= $future8 . "," ; //$csv_output .= $future9 ; // -------------------- QUERIES 9 ------------------------------------// //Get list of products ordered //$orders_products = tep_db_query("select products_model, products_price, products_quantity, products_name, orders_products_id from orders_products //where orders_id = " . $Orders_id); // While loop to list the item //$countproducts = 0; //$csv_output_item = ""; //$csv_output_order = str_replace($csv_output_ordersbefore, "", $csv_output); //while($row_orders_products = tep_db_fetch_array($orders_products)) { // loop through orders // More than one product per order, new line // if ($countproducts>0){ // $csv_output .= "\n"; // $csv_output .= $csv_output_order; // $csv_output_item = ""; // } // $csv_output_item .= "," . "BEGIN_ITEM". "," ; // $csv_output_item .= ","; // $csv_output_item .= filter_text($row_orders_products[0]) . "," ; // $csv_output_item .= $row_orders_products[1] . "," ; // $csv_output_item .= $row_orders_products[2] . "," ; // $csv_output_item .= filter_text($row_orders_products[3]) . "," ; // $Products_id = $row_orders_products[4]; // // $orders_products_attributes = tep_db_query("select products_options, products_options_values from orders_products_attributes // where orders_id = " . $Orders_id . " and orders_products_id = " . $Products_id); // // while($row_orders_products_attributes = tep_db_fetch_array($orders_products_attributes)) { // $csv_output_item .= filter_text($row_orders_products_attributes[0]) . "," ; // $csv_output_item .= filter_text($row_orders_products_attributes[1]) . "," ; // } // $csv_output_item .= "END_ITEM"; // $csv_output .= $csv_output_item; // $countproducts += 1; //} // end while loop for products // --------------------------------------------------------------------------// $csv_output .= "\n"; } // while loop main first //print header("Content-Type: application/force-download\n"); header("Cache-Control: cache, must-revalidate"); header("Pragma: public"); header("Content-Disposition: attachment; filename=ordersexports_" . date("Ymd") . ".csv"); print $csv_output; exit; }//function main function filter_text($text) { $filter_array = array(",","\r","\n","\t"); return str_replace($filter_array,"",$text); } // function for the filter ?>
  24. Earlier you stated: "I found when changing to SSL (e.g. Login) the popup appears in certain browsers again and then it's impossible to login. So I disabled the popup in SSL." How can I use this if I run a full SSL shop front and back? I can't even see the popup. I know it's trying to popup. When I test on pingdom.com it shows in the file requests, but it won't show for me. Is there a work around for this? @@Gergely Modal Cart works perfect for me. He doesn't have this in his: if (($_SERVER['HTTPS'] !== 'off') && (!tep_session_is_registered('popup'))) { ?> Bill
×
×
  • Create New...