Jump to content


  • Content count

  • Joined

  • Last visited

Everything posted by rs2k

  1. I am using Easy Populate 2.76E and have just recently added the field products_upc to the table products in my mysql database. How do I get easy populate to to work with this field? I tried to modify the code myself in easypopulate.php but have only had marginal success. I can get the UPC number field when I create the csv, but easy populate will not insert the UPC into the DB when I do an upload. I do not understand how the Extra Field option works in easy populate as there is no information about it in the manual. The only thing I know how to do is turn the option on, but that does nothing to help me.
  2. What was the thinking behind not using tep_db_functions in seo.class.php? Why was is necessary to create a new class and group of functions when all the functions already existed in OSC? After more digging into the seo.class.php code I finally solved this and one other problem that has been bugging me. I have no clue why it was programmed this way, but the seo.class.php file makes a new connection the the database every time the tep_href_url function is called. It uses its own line to connect instead of what's in application_top.php. This means that if you change the db connection line in the application_top.php file your SEO URLs will break. The reason that the first store was still working was because seo.class.php was connecting to an old database that was the same as the shared database. The second stores old database had 0 products which is why all the URLs were being displayed without the name. I simply commented out the lines in se.class.php that called for the SEO_Database class and changed every instance of $this->db->Function to tep_db_function. This has the great benefit of displaying the seo url queries into the query debug array and not creating new connections to the database every time the tep_href_url function is called. This will make our website more secure by allowing us to re enable mod_evasive because all pages will only call the database once (or twice) instead of 10 - 100 times.
  3. I have an odd error that is driving me insane. I have two highly modified OSC stores running on the same server. These two stores should be EXACTLY the same expect for the URL and the fact that one does not have an SSL cert yet. One store (which is live) is working perfectly. The other store (which is a test store) will only generate URLs like this: http://www.storename.com/-p-232.html Everything else in that store works. All the products information is displayed correctly and caching has been disabled on both stores. I have been trying to trouble shoot this problem all day and cannot find any answers in the forums or online. I see that the URL seems to fill the $string part of the url in the make_url function by using the get_product_name function located in the parse_parameters function, but I cannot for the life of me figure out why only -p-xxx.html is being displayed when the database contains a valid product name. I know all the data in the database is correct because the second store is using the first stores database. Any nudge in the right direction will be greatly appreciated.
  4. Try refreshing your categories cache in admin/tools/cache control.
  5. What you really need to do is download all of those images to your server and then put the image locations into the easy populate file. You could have someone create a script to do all of that for you or even modify EP to do it on the fly, but it would take some custom programming to make it work. I did not find any contribution that does what you ask.
  6. If you have not made any more modifications to 2.76-MS2 I would recommend installing 2.76g-MS2 by surfalot. The header names are slightly different with 2.76g-MS2, but it supports 7 category levels. It also supports adding extra fields to the products and products_description tables.
  7. I assume that a Master Product store simply adds fields to the products and products_descriptions tables that don't exist in a vanilla OSC installation. If that's the case then EP will support that. Our products table is highly modified and all I did was add the extra fields to the EP extra fields section. I have not had very good luck with adding product_description fields with large stores, but it seems to work well with small stores. If the Master Products store has other table changes that you want easypopulate to fill then it will not do that unless you make some major modifications.
  8. I do not see an easypopulate 2.76-MS2 available. Are you sure it's not something like 2.76g-MS2?
  9. Anything is possible, but I have found modifying easypopulate to be more difficult than average. All you have to do is rename the header row in your csv file. If the file does not have a header row then you will have to add one. It's not too hard to create a php script that can do the renaming for you. Or you can create a simple excel macro to do it for you if you use excel. The macro can simply be created by using the macro recorder and making the changes by hand.
  10. I will look into doing that then.
  11. Modifications to Ultimate SEO URLS Hello, I've been doing some very heavy modifications to our stores lately and have learned a tremendous amount about osCommerce. I have about 30 contributions I've created for us but I don't know if I'd be helping or hurting by sharing it with others because of how customized some of them are. Some of the more simple mods I've made are to Ultimate SEO URLs to prevent duplicate content and they work very well on our server and store. Would I be stepping on someones toes if I uploaded a contribution to Ultimate SEO URLs? A few of the mods I made rely on FWRs URL validation, but some of them just simply modify .htaccess and parts of the tep_href_link function in html_output.
  12. I had the same problem with an old store of mine. Here was the fix for me: Ultimate SEO works great, but it also adds & to redirects which can mess up some cart functions. I bet if you disable your cookies completely your site will work. That would not be a good idea though, so here is how to get SEO to work correctly with your cart: Find (catalog/includes/classes/seo.class.php).. ------------ CODE SAMPLE ---------- case ($this->attributes['USE_SEO_REDIRECT'] == 'true'): header("HTTP/1.0 301 Moved Permanently"); header("Location: $url"); // redirect...bye bye ----------------------------------- and adjust to .. ------------ CODE SAMPLE ---------- case ($this->attributes['USE_SEO_REDIRECT'] == 'true'): $url = str_replace('&', '&', $url); header("HTTP/1.0 301 Moved Permanently"); header("Location: $url"); // redirect...bye bye ----------------------------------- For good measure find (catalog/includes/functions/general.php) .. ------------ CODE SAMPLE ---------- header('Location: ' . $url); ----------------------------------- Add directly above .. ------------ CODE SAMPLE ---------- $url = str_replace('&', '&', $url); -----------------------------------
  13. I could not get the stock module to work either. This module offers CCV2. I don't know if the stock module offers that or not.
  14. I'm sorry for the lateness of my reply. I just now noticed your reply. I am using Ultimate SEO URLs v2.6. I have also tried 2.4, 2.1 and 2.1d ORIGINAL updated I start to have problems with the products cache at about 60,000 products. The store in questions has 113,000 products. Our stores are on a dual xeon dedicated server with 4 GB of RAM. I am currently using my-huge.cnf. Adding the product cache to begin with manually does not really work. It stops the incredible slowness when the products caching is enabled, but the caching does nothing, so disabling the product caching on store above 60k+ or so products is what I have been doing for now.
  15. OK, the bug only appeared when you were more than 2 categories deep. http://www.myurl.com/catname-c-227_1761.html would redirect to http://www.myurl.com/catname-c-228_1761.html but http://www.myurl.com/catname-c-951_1715_1739_1740_1761.html would not redirect to: http://www.myurl.com/catname-c-952_1715_1739_1740_1761.html I made the following changes (hacks) to my store: In application_top.php I replaced // calculate category path if (isset($HTTP_GET_VARS['cPath'])) { $cPath = $HTTP_GET_VARS['cPath']; } elseif (isset($HTTP_GET_VARS['products_id']) && !isset($HTTP_GET_VARS['manufacturers_id'])) { $cPath = tep_get_product_path($HTTP_GET_VARS['products_id']); } else { $cPath = ''; } // calculate category path // BOE Category validation if (!(isset($cPath))) { // EOE Category validation if (isset($HTTP_GET_VARS['cPath'])) { $cPath = $HTTP_GET_VARS['cPath']; } elseif (isset($HTTP_GET_VARS['products_id']) && !isset($HTTP_GET_VARS['manufacturers_id'])) { $cPath = tep_get_product_path($HTTP_GET_VARS['products_id']); } else { $cPath = ''; } // BOE Category validation } // EOE Category validation and in general.php I replaced ( strpos($_SERVER['REQUEST_URI'], '-p-') ? ($querytype = 'filename_product_info-products_id=' . $get_id_vars) : ( strpos($_SERVER['REQUEST_URI'], '-c-') ? ($querytype = 'filename_default-cPath=' . $HTTP_GET_VARS['cPath']) : ( strpos($_SERVER['REQUEST_URI'], '-m-') ? ($querytype = 'filename_default-manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id']) : ( strpos($_SERVER['REQUEST_URI'], '-pi-') ? ($querytype = 'filename_popup_image-pID=' . $HTTP_GET_VARS['pID']) : ( strpos($_SERVER['REQUEST_URI'], '-t-') ? ($querytype = 'filename_articles-tPath=' . $HTTP_GET_VARS['tPath']) : ( strpos($_SERVER['REQUEST_URI'], '-a-') ? ($querytype = 'filename_article_info-articles_id=' . $HTTP_GET_VARS['articles_id']) : ( strpos($_SERVER['REQUEST_URI'], '-pr-') ? ($querytype = 'filename_product_reviews-products_id=' . $get_id_vars) : ( strpos($_SERVER['REQUEST_URI'], '-pri-') ? ($querytype = 'filename_product_reviews_info-products_id=' . $get_id_vars) : ( strpos($_SERVER['REQUEST_URI'], '-prw-') ? ($querytype = 'filename_product_reviews_write-products_id=' . $get_id_vars) : ( strpos($_SERVER['REQUEST_URI'], '-i-') ? ($querytype = 'filename_information-info_id=' . $HTTP_GET_VARS['info_id']) : ( strpos($_SERVER['REQUEST_URI'], '-links-') ? ($querytype = 'filename_links-lPath=' . $HTTP_GET_VARS['lPath']) : $do_validation = false )))))))))) ); with // BOE Category validation if (isset($HTTP_GET_VARS['cPath'])) { $cPathVar = $HTTP_GET_VARS['cPath']; $bottom_cat = array_pop(tep_parse_category_path($cPathVar)); $parent_categories_query = tep_db_query("select parent_id, categories_id from " . TABLE_CATEGORIES . " where categories_id = '" . $bottom_cat . "'"); while ($parent_categories = tep_db_fetch_array($parent_categories_query)) { if ($parent_categories['parent_id'] == '0') { $cPath = $parent_categories['categories_id']; } else { $categories = array($bottom_cat); tep_get_parent_categories($categories, $bottom_cat); $categories = array_reverse($categories); $cPath = implode('_', $categories); } } } ( strpos($_SERVER['REQUEST_URI'], '-p-') ? ($querytype = 'filename_product_info-products_id=' . $get_id_vars) : ( strpos($_SERVER['REQUEST_URI'], '-c-') ? ($querytype = 'filename_default-cPath=' . $cPath) : ( strpos($_SERVER['REQUEST_URI'], '-m-') ? ($querytype = 'filename_default-manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id']) : ( strpos($_SERVER['REQUEST_URI'], '-pi-') ? ($querytype = 'filename_popup_image-pID=' . $HTTP_GET_VARS['pID']) : ( strpos($_SERVER['REQUEST_URI'], '-t-') ? ($querytype = 'filename_articles-tPath=' . $HTTP_GET_VARS['tPath']) : ( strpos($_SERVER['REQUEST_URI'], '-a-') ? ($querytype = 'filename_article_info-articles_id=' . $HTTP_GET_VARS['articles_id']) : ( strpos($_SERVER['REQUEST_URI'], '-pr-') ? ($querytype = 'filename_product_reviews-products_id=' . $get_id_vars) : ( strpos($_SERVER['REQUEST_URI'], '-pri-') ? ($querytype = 'filename_product_reviews_info-products_id=' . $get_id_vars) : ( strpos($_SERVER['REQUEST_URI'], '-prw-') ? ($querytype = 'filename_product_reviews_write-products_id=' . $get_id_vars) : ( strpos($_SERVER['REQUEST_URI'], '-i-') ? ($querytype = 'filename_information-info_id=' . $HTTP_GET_VARS['info_id']) : ( strpos($_SERVER['REQUEST_URI'], '-links-') ? ($querytype = 'filename_links-lPath=' . $HTTP_GET_VARS['lPath']) : $do_validation = false )))))))))) ); // EOE Category validation
  16. After changing around some of the categories I am having a duplicate content problem with Google. Does this contribution work with categories? Thanks for this great contribution! This contribution is correctly redirecting the products, but the categories aren't working right. For example: http://www.myurl.com/catname-c-228_1761.html and http://www.myurl.com/catname-c-952_1715_1739_1740_1761.html are exactly the same page. If I browse to http://www.myurl.com/wrongcatname-c-228_1761.html it will redirect me to http://www.myurl.com/catname-c-228_1761.html, but it does not readjust the category numbers. Is this a problem with the way I installed the contribution, or does the contribution not redirect you to the proper category numbers?
  17. I'm sorry for replying to such an old post, but I am very interested in your mod. Can you give me any information on how to accomplished it? I have been having a lot of trouble with the MySQL based caching in our extra large stores. The products cache does not get generated automatically. I have to manually put it into the cache table every time the SEO URL cache is reset. When the cache does work the extra queries it generates make a noticeable drop in performance. When the products cache is not in the cache table I get an extra 400 or so queries which make the store run extremely slow (10 seconds per page). I have tried a few different version of Ultimate SEO URLs, but they all give me the same problem.
  18. I've been using this contribution successfully for a long time now. I have kind of figured out how to add new pages to the rewrite rules, but now I need to go a step farther. I have a new php page that builds itself using multiple options. Make, Model, Year. How do I make Ultimate SEO work for multiple options. For example: RewriteRule ^(.*)-filter-(.*).html$ filter.php?lPath=$2&%{QUERY_STRING} will turn filter.php?make=Acura into -filter-Acura.html Is it possible to use these rewrites to turn filter.php?make=Acura&model=Integra+B&year=2000 into something like -filter-Acura-Integra_B-2000.html Any help will be greatly appreciated.
  19. rs2k

    AJAX Shopping Cart

    I've installed this contribution about 2 weeks ago. It ran fine after I installed it. Today after spending 2 weeks installing other contributions the cart no longer displays anything. I have not modified shopping_cart.php nor any other files associated with this contribution. Any idea where I can start trying to solve this problem? The shopping cart does not display anything at all with or without java enabled. The original shopping_cart.php works fine. Any help at all will be appreciated. Thanks!
  20. Is there a way to slow down the loop in EP? My processor usage spikes while using EP and I need a way to prevent that. I tried to put sleep(x) "where x is time in seconds" with varying times into the loop but it had no effect at all. Thanks!
  21. I got it working by adding authorizenet_aim.php; to the MODULE_PAYMENT_INSTALLED configuration table. Every time I make a change with any of the payment modules the settings disappears. Any idea how I can stop authorizenet_aim.php; from being deleted from the MODULE_PAYMENT_INSTALLED configuration table?
  22. After installing this contribution I can't seem to get it to display. It shows up in payment modules in Admin and I can configure the settings, but it will not display on checkout_payment.php. The original authorizenet module shows up and works but this AIM module does not even show up. I have tried enabling other payment modules and they all show up just fine. Any idea what the problem might be?
  23. I just took a look at our small store which was originally a copy of our large store. The products table is indexed. This tells me that step 7 may have helped but it did not create the big difference I recently experienced while following the RC2a index instructions. Maybe there was a problem with our large stores index. I can't imagine what it would be though. I'm 98% sure the large store's products table was indexed before running this: alter table banners add index idx_banners_group (banners_group); alter table banners_history add index idx_banners_history_banners_id (banners_id); alter table currencies add index idx_currencies_code (code); alter table customers add index idx_customers_email_address (customers_email_address); alter table customers_basket add index idx_customers_basket_customers_id (customers_id); alter table customers_basket_attributes add index idx_customers_basket_att_customers_id (customers_id); alter table orders add index idx_orders_customers_id (customers_id); alter table orders_products add index idx_orders_products_orders_id (orders_id); alter table orders_products add index idx_orders_products_products_id (products_id); alter table orders_status_history add index idx_orders_status_history_orders_id (orders_id); alter table orders_products_attributes add index idx_orders_products_att_orders_id (orders_id); alter table orders_products_download add index idx_orders_products_download_orders_id (orders_id); alter table products add index idx_products_model (products_model); alter table products_attributes add index idx_products_attributes_products_id (products_id); alter table reviews add index idx_reviews_products_id (products_id); alter table reviews add index idx_reviews_customers_id (customers_id); alter table specials add index idx_specials_products_id (products_id); alter table zones add index idx_zones_to_geo_zones_country_id (zone_country_id); After running that query EP sped up considerably.
  24. After indexing my database as called for in the RC2A upgrade Easy populate works very quickly on a 56,000 product store. It went from about 200 product updates per MINUTE to 1000 per SECOND. I wish I knew about indexing sooner.
  25. rs2k

    Who's Online Enhancement 1.4

    Hello, Thanks for the great contribution! I have a small problem with it, though. The carts and cart contents will show up, but only when you click on the person above or below the actual person with the cart. Also, when the cart contents are displayed it shows that everyone has a cart. When someone who does not have a cart is clicked it shows no one has a cart.