Возможно, кому то пригодится. Сделал вывод главной категории на странице товара OpenCart 2.3.
- В файле catalog/controller/product/product.php
После строки
$this->load->model('catalog/product');
Вставил
//вывод главной категории на странице товара//
$this->load->model('catalog/category');
$data['catproduct'] = array();
if (isset($this->request->get['path'])) {
$path = '';
$parts = explode('_', (string)$this->request->get['path']);
$category_id = (int)array_pop($parts);
foreach ($parts as $path_id) {
if (!$path) {
$path = $path_id;
} else {
$path .= '_' . $path_id;
}
$category_info = $this->model_catalog_category->getCategory($path_id);
if ($category_info) {
$data['catproduct'][] = array(
'text' => $category_info['name'],
'href' => $this->url->link('product/category', 'path=' . $path)
);
}
}
$category_info = $this->model_catalog_category->getCategory($category_id);
if ($category_info) {
$url = '';
if (isset($this->request->get['sort'])) {
$url .= '&sort=' . $this->request->get['sort'];
}
if (isset($this->request->get['order'])) {
$url .= '&order=' . $this->request->get['order'];
}
if (isset($this->request->get['page'])) {
$url .= '&page=' . $this->request->get['page'];
}
if (isset($this->request->get['limit'])) {
$url .= '&limit=' . $this->request->get['limit'];
}
$data['catproduct'][] = array(
'text' => $category_info['name'],
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url)
);
}
}
- в файле catalog/view/theme/*/template/product/product.tpl в нужном месте
<span class="desc_title">Категория: </span><?php foreach ($catproduct as $catp) { ?> <a href="<?php echo $catp['href']; ?>"><?php echo $catp['text']; ?></a><?php } ?>
Решение для главной категории взял по аналогии с вывода breadcrumbs.
Может не совсем верно, но заработало правильно.