Проблему решил следующим образом:
1. Стоит deadcow SEO (важные файлы seo_pro.php и seo_url.php)
2. В базе данных в таблице setting должны быть записи:
setting_id store_id group key value serialized
2926 0 config config_seo_url 1 0
2928 0 config config_seo_url_include_path 1 0
2929 0 config config_seo_url_postfix .html 0
2927 0 config config_seo_url_type seo_pro 0
3. В таблице product_to_category нужно добавить поле main_category (int).
4. В файле index.php меняем
// SEO URL's
$controller->addPreAction(new Action('common/seo_url'));
на
// SEO URL's
if (!$seo_type = $config->get('config_seo_url_type')) {
$seo_type = 'seo_url';
}
$controller->addPreAction(new Action('common/' . $seo_type));
5. Убиваем кэш /system/cache/
На данном этапе уже все работает. Но в качестве основной категории (если указали в товаре несколько) берется первая, которая попадется в таблице product_to_category.
Для указания конкретной категории нужно ручками присвоить соответствующей записи в product_to_category полю main_category = 1. Либо воспроизвести в админке в товаре функционал основной категории.