Hi,
Here is solution.
//Change in classes/Dispatcher.php
//line number 60
'category_rule' => array(
'controller' => 'category',
'rule' => '{category:/}{id}-{rewrite}/',
'keywords' => array(
'id' => array('regexp' => '[0-9]+', 'param' => 'id_category'),
'category' => array('regexp' => '[_a-zA-Z0-9-\pL]*'),
'rewrite' => array('regexp' => '[_a-zA-Z0-9-\pL]*'),
'meta_keywords' => array('regexp' => '[_a-zA-Z0-9-\pL]*'),
'meta_title' => array('regexp' => '[_a-zA-Z0-9-\pL]*'),
),
),
these two bold lines not there in current file
//classes/Link.php
line number 155
just update this function
public function getCategoryLink($category, $alias = null, $id_lang = null, $selected_filters = null)
{
if (!$id_lang)
$id_lang = Context::getContext()->language->id;
$url = _PS_BASE_URL_.__PS_BASE_URI__.$this->getLangLink($id_lang);
if (!is_object($category))
$category = new Category($category, $id_lang);
// Set available keywords
$params = array();
$params['id'] = $category->id;
$params['rewrite'] = (!$alias) ? $category->link_rewrite : $alias;
$params['meta_keywords'] = Tools::str2url($category->meta_keywords);
$params['meta_title'] = Tools::str2url($category->meta_title);
$pcategory= new Category($category->id_parent, $id_lang);
if($category->id_parent!=1 && $category->id_parent!=2)
$params['category'] = $pcategory->link_rewrite;
// Selected filters is used by the module blocklayered
$selected_filters = is_null($selected_filters) ? '' : $selected_filters;
if (empty($selected_filters))
$rule = 'category_rule';
else
{
$rule = 'layered_rule';
$params['selected_filters'] = $selected_filters;
}
return $url.Dispatcher::getInstance()->createUrl($rule, $id_lang, $params, $this->allow);
}
got to admin Preferences->seo & Url
Change Route to category to this
{category:/}{id}-{rewrite}/
This if my first reply to prestashop forum.
I am working on prestashop from last 2 and half year.
I will keep updating forum.
Thanks