Если необходимо вывести на странице категории Opencart первого уровня сразу третий уровень, минуя второй - это для Вас.

Если Нужно оставить второй уровень.. например в виде заголовков, то можно сделать по аналогии с модулем "категории", там очень похоже. Здесь же вариант, при котором будет отображен только третий уровень без разбивки. При этом не потребуется вносить дополнительные изменения в шаблон, только контроллер: /catalog/controller/product/category.php

1. Находим:

$data['categories'] = array();

Вырезаем оттуда где нашли и вставляем после

$results = $this->model_catalog_category->getCategories($category_id);
foreach ($results as $result) {

2. Далее меняем (с изменениями из предыдущего примера):

$data['categories'][] = array(
'name' => $result['name'],
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url),
'image' => $caimage,
'count' => ($this->config->get('config_product_count') ? $this->model_catalog_product->getTotalProducts($filter_data) : '')
);

на

$cats = $results = $this->model_catalog_category->getCategories($result['category_id']);
foreach ($cats as $cat) {
if ($cat['image']) {
$caimage = $this->model_tool_image->resize($cat['image'], 100, 100);
}
else {
$caimage = $caimage = $this->model_tool_image->resize('no_image.png', 100, 100);
}
$data['categories'][] = array(
'name' => $cat['name'],
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $cat['category_id'] . $url),
'image' => $caimage,
'count' => ($this->config->get('config_product_count') ? $this->model_catalog_product->getTotalProducts($filter_data) : '')
);
}

Здесь как видите, кроме прочего добавился и вывод изображений, уже в новом цикле, соответственно то что было выше - нужно убрать.