If your using Virtuemart 2+ it requires you to use a -detail or .html as a suffix for product pages. Which really sucks if you are use to using SH404sef or some other plugin that will correctly re-route your URLs and make them nice. SH404sef no longer works with Virtuemart thus we are stuck with the default router. Here is how I fixed the router.php (included at the bottom for your downloading pleasuere)
Since there is not a plugin I dove into the router.php and made some simple quick fixes to ignore the SEO_Suffix and load products.
Around line 633
Code looked for categories in the last segment
$vars['virtuemart_category_id'] = $helper->getCategoryId (end($segments) ,$helper->activeMenu->virtuemart_category_id);
$vars['view'] = 'category' ;
Changed to
$product = $helper->getProductId($segments ,$helper->activeMenu->virtuemart_category_id);
$vars['virtuemart_product_id'] = $product['virtuemart_product_id'];
$vars['virtuemart_category_id'] = $product['virtuemart_category_id'];
//codepyro - removed suffix from router
//check if the last segment is a product.
//if so then load the product details page instead of category
if(isset($vars['virtuemart_product_id']))
{
$vars['view'] = 'productdetails';
}
else
{
$vars['virtuemart_category_id'] = $helper->getCategoryId (end($segments) ,$helper->activeMenu->virtuemart_category_id);
$vars['view'] = 'category' ;
}
Around line 943
//codepyro hack to remove suffix
if($this->seo_sufix_size >0)
$productName = substr($productName, 0, -(int)$this->seo_sufix_size );
You can download the updated router.php for Virtuemart 2.0.26d
upload and replace the file
/components/com_virtuemart/router.php
updated 3.14.14 - I didn't realize that the site I had made these adjustments to all of the categories were set as menu items which of course makes a big difference. Anyway the zip file has been updated with the latest router.