На форуме нашел модификатор, благодаря которому поиск ищет по категориям. Но есть свои минусы.
Если в поисковом запросе более одного слова, например "глушитель ауди", а категория называется "ауди", то категория не появится на странице поиска.
И вторая менее важная деталь. Когда перейти на страницу поиска по ссылке сайт.com/search, то появляется ошибка Invalid argument supplied for foreach ().
Ну и сам модификатор:
<file path="catalog/model/catalog/category.php">
<operation>
<search><![CDATA[public function getTotalCategoriesByCategoryId($parent_id = 0) {]]></search>
<add position="before"><![CDATA[
public function getSearchCategories($keyword) {
$query = $this->db->query("SELECT c.category_id, c.image, cd.name
FROM " . DB_PREFIX . "category c
LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id)
WHERE cd.name LIKE '%" . $keyword . "%'
AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "'
AND c.status = '1'");
return $query->rows;
}
]]>
</add>
</operation>
</file>
<file path="catalog/controller/product/search.php">
<operation>
<search><![CDATA['href' => $this->url->link('product/product', 'product_id=' . $result['product_id'] . $url)]]></search>
<add position="after" offset="2"><![CDATA[
$data['search_categories'] = array();
$search_cats = $this->model_catalog_category->getSearchCategories($search);
foreach($search_cats as $category) {
if($category['image']) {
$image = $this->model_tool_image->resize($category['image'], $this->config->get($this->config->get('config_theme') . '_image_category_width'), $this->config->get($this->config->get('config_theme') . '_image_category_height'));
} else {
$image = $this->model_tool_image->resize('placeholder.png', $this->config->get($this->config->get('config_theme') . '_image_category_width'), $this->config->get($this->config->get('config_theme') . '_image_category_height'));
}
$data['search_categories'][] = array(
'thumb' => $image,
'name' => $category['name'],
'href' => $this->url->link('product/category', 'path=' . $category['category_id'])
);
}
]]></add>
</operation>
</file>
<file path="catalog/view/theme/*/template/product/search.tpl">
<operation>
<search><![CDATA[<h1><?php echo $heading_title; ?></h1>]]></search>
<add position="after"><![CDATA[
<div class="row">
<?php foreach($search_categories as $category) { ?>
<div class="search_categories col-lg-3 col-md-3 col-sm-6 col-xs-12">
<a href="<?php echo $category['href']; ?>">
<?php if($category['thumb']) { ?><img src="<?php echo $category['thumb']; ?>" alt="" title="" class="img-responsive" /><?php } ?>
<p><?php echo $category['name']; ?></p>
</a>
</div>
<?php } ?>
</div>
]]></add>
</operation>
</file>