Вывести товары из подкатегории в категорию

Virtuemart 2 — выводим товары из подкатегории в категорию. Простой и удобный способ.

Такая задача периодически встречается, в интернете достаточно руководств, как это сделать хакая файл /administrator/components/com_virtuemart/models/product.php. Между тем, совершенно непонятно, зачем это делать, ведь есть достаточно простой способ, как это сделать без всяких хаков.

Необходимо просто поместить товар в 2 категории — и в подкатегорию и в родительскую категорию — и все, товар будет выводится на обеих страницах.

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

У подобного способа есть еще одно достоинство — мы можем делать это любым нужным нам товарам и категориям. А там, где не надо выводить товары из подкатегории в категорию — просто назначаем товару соответствующую категорию без родительской.

В любом случае, остается проблема дублей страниц. Если товар отображается и в родительской и в дочерней категории, у него будет 2 url:

  • /категория/подкатегори/товар
  • /категория/товар

Как красиво обойти это — я не знаю. Поисковики рекомендуют указывать в таком случае мета-тег rel=»canonical», но как это сделать — не понятно, ведь товар то один. Наверное можно в шаблоне сделать проверку на нахождение в соответствующей категории, и, в зависимости от результата, выводить или не выводить этот тег. Даже не попробовав начать писать PHP код, мне этот метод уже не нравится. Он предполагает, что мы руками будем вводить в коде id категорий, для которых надо будет выводить rel=»canonical». Соответственно, высока вероятность, что при добавлении новых категорий мы забудем добавить их id в код и т.д.

Пока решаю проблему 301 редиректом каждого товара, хотя это не есть красиво.

Категория: Virtuemart 2
Comments are disabled