Jump to content
deezler

OpenCart 2.2: Вывести названия категорий и ссылки на них в карточке товара

Recommended Posts

Привет. Хочу вывести все категории товара на странице этого товара. Не нашел полного решения под Opencart 2 ни в рунете, ни буржунете.

Проверил решение для Opencart 1.5. По описанию — именно то, что надо, но не работает на 2.2, к сожалению.

Получилось вывести название категорий без ссылок по инструкции. Но ссылку вывести никак не получается.

Еще получилось вывести название категории и ссылку по инструкции отсюда. Но таким методом, как я понял, можно вывести только на одну категорию, как в хлебных крошках.

Помогите, пожалуйста, сделать вывод ссылок на соответствующие категории.

Share this post


Link to post
Share on other sites

 

Проверил решение для Opencart 1.5. По описанию — именно то, что надо, но не работает на 2.2, к сожалению.

 

 

Чуть измените решение для 1.5
 
 $this->load->model('catalog/category');


          $data['catprod'] = array();
          
          $product_category = $this->model_catalog_product->getCategories($product_id);
          
          foreach ($product_category as $prodcat) {
 $category_info = $this->model_catalog_category->getCategory($prodcat['category_id']);
 if ($category_info) {
 $data['catprod'][] = array(
 'name'     => $category_info['name'],
 'href'     => $this->url->link('product/category', 'path=' . $category_info['category_id'])
 );
 }
          } 

всё работает! http://ocshop.xdomus.ru/index.php?route=product/product&path=24&product_id=40

  • +1 1

Share this post


Link to post
Share on other sites

Спасибо огромное!

 

Шикарно получилось:

581da8fba355d7fd7d6f3a275a91704f.jpg

 

=====

 

Продублирую решение, чтобы оно не затерялось.

 

1. В файле catalog/controller/product/product.php

 

После строки

$this->load->model('catalog/product');

Вставить

$this->load->model('catalog/category');


        $data['catprod'] = array();
          
        $product_category = $this->model_catalog_product->getCategories($product_id);
          
        foreach ($product_category as $prodcat) {
		$category_info = $this->model_catalog_category->getCategory($prodcat['category_id']);
		if ($category_info) {
		$data['catprod'][] = array(
		'name'     => $category_info['name'],
		'href'     => $this->url->link('product/category', 'path=' . $category_info['category_id'])
		);
		}
} 

2. Затем в шаблоне, например, в catalog/view/theme/*/template/product/product.tpl

 

Перед

<?php if ($manufacturer) { ?>

Или другом месте вставить

<span>Categories: </span><?php foreach ($catprod as $catp) { ?> <a href="<?php echo $catp['href']; ?>"><?php echo $catp['name']; ?></a> |<?php } ?><br />
Edited by deezler
  • +1 2

Share this post


Link to post
Share on other sites
<span>Categories: </span>

не кошерно))))

Share this post


Link to post
Share on other sites
<span>Categories: </span>

не кошерно))))

 

 

Так в оригинале было :) Тут главное категории вывести.

 

Я оформил так:

<div class="catslist"><?php foreach ($catprod as $catp) { ?><span><a href="<?php echo $catp['href']; ?>"><?php echo $catp['name']; ?></a></span> <?php } ?></div>

А в CSS запятые:

.catslist span:after {
    content: ",";
}
.catslist span:last-child:after {
content: "";
}
Edited by deezler

Share this post


Link to post
Share on other sites
<span>Categories: </span>

не кошерно))))

 

Да, надо из языковых вытащить...

А лучше вообще убрать и так понятно о чём речь :) 

там еще палочка | не кошерная...

Edited by Wadamir

Share this post


Link to post
Share on other sites

там еще палочка | не кошерная...

 

 

Наверное уместней вывести списком (через <ul>) или каждому выводимому разделу присвоить бутстраповский стиль "label" с подходящим цветом.

 

Недавно решал задачу как вывести категорию товара. Выгнал в "крошки" в итоге, полный путь. Но это одна категория (не считая родительских), а все категории даже интересней вывести, для внутренней перелинковки.

Share this post


Link to post
Share on other sites

Добрый вечер.

После вставки кодов вылетает ошибка на странице карточки товара (на месте где должно быть название категории):

Categories: Notice: Undefined variable: catprod in /home/users/l/limn/domains/777potolki99-os/catalog/view/theme/magazin/template/product/product.tpl on line 159Warning: Invalid argument supplied for foreach() in /home/users/l/limn/domains/777potolki99-os/catalog/view/theme/magazin/template/product/product.tpl on line 159

Помогите с решением этой проблемы. Версия ocStore 2.1.0.1

Судя по ошибке - не объявлена переменная. В файле catalog/controller/product/product.php  код добавил. Может код нужно как-то переделать?

Share this post


Link to post
Share on other sites

Приветствую!

Вы бы не могли подсказать, как вывести в карточку товара главную категорию этого самого товара? В данном примере, отображается подкатегория.

 

Share this post


Link to post
Share on other sites

то какое в итоге решения для opencart 2.3... ?

Share this post


Link to post
Share on other sites
В 09.06.2016 в 01:01, Tom сказал:

<span>Categories: </span>

не кошерно))))

Добрый день! Автор темы был Новичок, поэтому не факт что мне ответит, поэтому обращаюсь к вам. Можете подсказать как в этом коде сделать так, чтобы выводились не ВСЕ категории, а только главная?

 

Вот сам код напомню:

 

$this->load->model('catalog/category');


        $data['catprod'] = array();
          
        $product_category = $this->model_catalog_product->getCategories($product_id);
          
        foreach ($product_category as $prodcat) {
		$category_info = $this->model_catalog_category->getCategory($prodcat['category_id']);
		if ($category_info) {
		$data['catprod'][] = array(
		'name'     => $category_info['name'],
		'href'     => $this->url->link('product/category', 'path=' . $category_info['category_id'])
		);
		}

Share this post


Link to post
Share on other sites

Готовый ocmod для версии 2.3. Только вывод в tpl нужно поправить под ваш шаблон - я сделал под свой. Выводит в карточку товара список всех категорий, где есть товар.

add_product_card_all_used_categories.xml

Share this post


Link to post
Share on other sites
В 07.05.2018 в 20:36, Denyelle сказал:

как в этом коде сделать так, чтобы выводились не ВСЕ категории, а только главная?

        $product_category = $this->model_catalog_product->getCategories($product_id);

        foreach ($product_category as $prodcat) {
            if($prodcat['main_category'] == 1){
                $category_info = $this->model_catalog_category->getCategory($prodcat['category_id']);
                $data['catprod_name'] = $category_info['name'];
                $data['catprod_href'] = $this->url->link('product/category', 'path=' . $category_info['category_id']);
                continue;
            }
        }

 

  • +1 1

Share this post


Link to post
Share on other sites

Для страницы товара работает.
Но хотелось бы ещё на страницу категории вывести все категории в карточку товара, ну и в товарных модулях тоже.

Share this post


Link to post
Share on other sites
2 минуты назад, Klaus сказал:

Но хотелось бы ещё на страницу категории вывести все категории в карточку товара, ну и в товарных модулях тоже.

и в чем проблема?  все аналогично

Share this post


Link to post
Share on other sites
В 04.11.2019 в 18:53, Skull515 сказал:

Готовый ocmod для версии 2.3. Только вывод в tpl нужно поправить под ваш шаблон - я сделал под свой. Выводит в карточку товара список всех категорий, где есть товар.

add_product_card_all_used_categories.xml 2 \u043a\u0411 · 37 downloads

Подскажите, пожалуйста, как исключить главную категорию из вывода?

Share this post


Link to post
Share on other sites
8 минут назад, poetiq сказал:

Подскажите, пожалуйста, как исключить главную категорию из вывода?

добавить проверку на main_category

выше есть пример

  • +1 1

Share this post


Link to post
Share on other sites
В 13.05.2020 в 19:06, fanatic сказал:

добавить проверку на main_category

выше есть пример

 

Спасибо за решение! А как можно прикрутить к категории еще и картинку ее?? 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Similar Content

    • By legioner26
      1 499.00 руб
      Скачать/Купить дополнение


      Модуль зуммирования изображений товара - ZoomPRO
      Разработан многофункциональный модуль Opencart Zoom для зуммирования изображений в карточке товара с выбором вариантов исполнения.
      ПРИМЕЧАНИЕ !!!
      Если у Вас не стандартный шаблон то для корректной работы настоятельно рекомендую проверить установлены ли иные плагины зумма.
      Не забываем очищать кешь на сайте при изменении настроек. Сочетание клавишь (Ctrl+F5)
       
      DEMO Логин: demo Пароль: demo
      http://mvc-cart.ru/index.php?route=product/product&product_id=30
       
       
      ПРОСМОТР РАБОТЫ МОДУЛЯ Кликнуть по тексту чтобы просмотреть.
       
      По адаптации шаблонов пишите в ЛС
       
      Тестировался с шаблонами Moneymaker 2, ROUNDSHOP, Corsica, Fiji, pixelshop и многими другими.
       
      Вариант №1
       
      Зуммирование в отдельном блоке, от изображения либо вывод в любом другом
       
      Вариант №2
       
      Зуммирование со скроллом внутри блока с изображением
       
      Вариант №3
       
      Зуммирование в виде лупы с настройками по ширине и высоте.
       
       
       
      Установка:
      1. Копируем содержимое исходя из версий ОС на хостинг в корень сайта 
      2. В модификаторах чистим кешь и обновляем.
      3. Пишем в личку номер вашего заказа, я высылаю Вам ключ.
       
       
      https://opencartforum.com/profile/723002-legioner26/?tab=field_core_pfield_13 ->> СЕО сопровождение магазинов под управлением OpenCart
       
      Добавил legioner26 Добавлено 20.05.2019 Категория Меню, дизайн, внешний вид Системные требования Ioncube Loader Метод активации По запросу в ЛС Ioncube Loader Требуется OpenCart 3.0
      2.3
      2.2
      2.1
      2.0 ocStore 3.0
      2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х Обращение к серверу разработчика Нет Старая цена 3500  
    • By legioner26
      Разработан многофункциональный модуль Opencart Zoom для зуммирования изображений в карточке товара с выбором вариантов исполнения.
      ПРИМЕЧАНИЕ !!!
      Если у Вас не стандартный шаблон то для корректной работы настоятельно рекомендую проверить установлены ли иные плагины зумма.
      Не забываем очищать кешь на сайте при изменении настроек. Сочетание клавишь (Ctrl+F5)
       
      DEMO Логин: demo Пароль: demo
      http://mvc-cart.ru/index.php?route=product/product&product_id=30
       
       
      ПРОСМОТР РАБОТЫ МОДУЛЯ Кликнуть по тексту чтобы просмотреть.
       
      По адаптации шаблонов пишите в ЛС
       
      Тестировался с шаблонами Moneymaker 2, ROUNDSHOP, Corsica, Fiji, pixelshop и многими другими.
       
      Вариант №1
       
      Зуммирование в отдельном блоке, от изображения либо вывод в любом другом
       
      Вариант №2
       
      Зуммирование со скроллом внутри блока с изображением
       
      Вариант №3
       
      Зуммирование в виде лупы с настройками по ширине и высоте.
       
       
       
      Установка:
      1. Копируем содержимое исходя из версий ОС на хостинг в корень сайта 
      2. В модификаторах чистим кешь и обновляем.
      3. Пишем в личку номер вашего заказа, я высылаю Вам ключ.
       
       
      https://opencartforum.com/profile/723002-legioner26/?tab=field_core_pfield_13 ->> СЕО сопровождение магазинов под управлением OpenCart
       
    • By owner1
      Добрый день. Сайт: https://элит-маркет.рф/ . OcStore 2.3. Требуется исполнитель, способный переделать шапку по тз и подправить карточку товара. Все подробности и само тз скину в личку.
    • By whiteblue
      Очень часто нам нужно добавить произвольную информацию в виде html кода в карточку товара, как на уровне товара, так и в каждый товар категории...
       
      Данный модуль позволит добавить необходимой информации(html-поле) и заголовок H1 на уровне категорий и в карточке товара.
       
      Возможности модуля:
      1. Возможность добавления информации для каждого товара.
      В случаи, если значения для отдельного товара не задано, то в карточке товара будет отображаться содержимое html-поле заданное для категории этого товара.
      2. Добавить html-поле для товарох категории.
      Содержимое этого поля будет выводиться во всех товарах категории.
      3. Добавить заголовок H1 для категории и товара. (также есть версия без H1)
      4. Простота администрирования.
       
      Demo
      http://demo.torg.town/index.php?route=product/product&path=33&product_id=30
      Admin
      http://demo.torg.town/admin/index.php?route=catalog/product/edit&token=jnXseG7Pm3K9klIwbjGBPT2waTg9Q1is&product_id=30&filter_name=Canon+EOS+5D
      http://demo.torg.town/admin/index.php?route=catalog/category/edit&token=jnXseG7Pm3K9klIwbjGBPT2waTg9Q1is&category_id=33
       
      Login: html
      Password: html
       
       
      Установка модуля:
      Сделать резервную копию сайта и БД. Скачать архив. Не распаковывая его загрузить в админ-панель. Модули - Установка расширения - Загрузить. Обновить модификаторы.
    • By whiteblue
      900.00 руб
      Скачать/Купить дополнение


      HTML данные в продукте и продуктах категории
      Очень часто нам нужно добавить произвольную информацию в виде html кода в карточку товара, как на уровне товара, так и в каждый товар категории...
       
      Данный модуль позволит добавить необходимой информации(html-поле) и заголовок H1 на уровне категорий и в карточке товара.
       
      Возможности модуля:
      1. Возможность добавления информации для каждого товара.
      В случаи, если значения для отдельного товара не задано, то в карточке товара будет отображаться содержимое html-поле заданное для категории этого товара.
      2. Добавить html-поле для товарох категории.
      Содержимое этого поля будет выводиться во всех товарах категории.
      3. Добавить заголовок H1 для категории и товара. (также есть версия без H1)
      4. Простота администрирования.
       
      Demo
      http://demo.torg.town/index.php?route=product/product&path=33&product_id=30
      Admin
      http://demo.torg.town/admin/index.php?route=catalog/product/edit&token=jnXseG7Pm3K9klIwbjGBPT2waTg9Q1is&product_id=30&filter_name=Canon+EOS+5D
      http://demo.torg.town/admin/index.php?route=catalog/category/edit&token=jnXseG7Pm3K9klIwbjGBPT2waTg9Q1is&category_id=33
       
      Login: html
      Password: html
       
       
      Установка модуля:
      Сделать резервную копию сайта и БД. Скачать архив. Не распаковывая его загрузить в админ-панель. Модули - Установка расширения - Загрузить. Обновить модификаторы. Добавил whiteblue Добавлено 03.05.2017 Категория Модули Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.1 ocStore 2.3
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.1 Обращение к серверу разработчика Нет Старая цена  
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.