Проблему решил. Я так понял она возникает в том случае, если в базе присутствуют многоуровневые категории.
Немного подправил код начиная с 651 строки.
if ($this->config->get('config_seo_url') && method_exists($this->model_catalog_product, 'getProductMainCategoryId')){
$link = $http_catalog;
if ($this->config->get('config_seo_url_include_path')) {
$product_main_category = $this->model_catalog_product->getProductMainCategoryId($product_id);
$category = $this->model_catalog_category->getCategory($product_main_category);
$tmpcat=array();
if (isset($category['keyword']) ) {
while ($category['parent_id']) {
$tmpcat[]=$category['keyword'];
$category = $this->model_catalog_category->getCategory($category['parent_id']);
}
$tmpurl=implode("/",array_reverse($tmpcat));
$link .= $tmpurl . '/';
}
/**
* if (isset($category['parent_id'])) {
* while ($category['parent_id']) {
* $category = $this->model_catalog_category->getCategory($category['parent_id']);
* $link .= $category['keyword'] . '/';
* }
* }
*/
}
$link .= $p['keyword'] . $this->config->get('config_seo_url_postfix');
}