Как вывести все товары на отдельную страницу в OpenCart — модуль Complete Product List / All Products
Иногда есть необходимость вывести все товары магазина на отдельной странице. Естественно, это можно сделать, создав одну родительскую категорию, которая и будет содержать в себе все товары. Но в этом способе есть и неудобства, например, модуль категорий в сайдбаре будет свернутым до одной родительской категории, что не только неудобно, но и некрасиво. В общем, если не создавать одну главную родительскую категорию, то каким образом можно вывести все товары магазина на отдельную страницу?
Модуль «Complete Product List / All Products» создаст специальную страницу со всеми товарами, аналогично странице «Акции» (ссылка на страницу с акциями обычно присутствует в футере). Модуль совместим с версиями 1.5.1.3 — 2.0.3.1. В файлах модуля есть xml файл, а это значит, что используется vqmod. Для версий 1.5.x это совершенно не проблема, так как редко какой магазин на 1.5.х не использует vqmod, а вот с opencart 2.x дело обстоит несколько иначе, так как в двойке вместо vqmod используется ocmod. Конечно, некоторые упорно продолжают использовать vqmod, но это уже дело индивидуальное, поэтому код из xml файла необходимо вручную перенести в те файлы, которые указаны в данном файле, но об этом чуть позже.
Установка и настройка модуля
1. Скачиваем модуль «Complete Product List / All Products».
2. По ftp заливаем в магазин содержимое той папки, которая соответствует используемой нами версии (в архиве есть две папки — 1.5х и 2.х). Для 1.5.x необходимо загружать обе папки, если же используется версия 2.х и не используется vqmod, то загружаем только папку catalog.
3. Этот пункт только для владельцев магазинов версии 2.х, в которых не используется vqmod.
Открываем файл vqmod/xml/all_products.xml и переносим ее содержимое в нужные файлы магазина, а именно:
— открываем файл catalog/controller/common/footer.php и находим строку
1 |
$data['text_newsletter'] = $this->language->get('text_newsletter'); |
перед ней добавляем новую строку
1 |
$data['text_allproducts'] = $this->language->get('text_allproducts'); |
В этом же файле, чуть ниже, находим строку
1 |
$data['newsletter'] = $this->url->link('account/newsletter', '', 'SSL'); |
и снова перед ней добавляем строку с кодом
1 |
$data['allproducts'] = $this->url->link('product/allproducts'); |
-теперь открываем языковой файл catalog/language/english/common/footer.php и перед строкой с $_[‘text_special’] размещаем строку с названием новой страницы
1 |
$_['text_allproducts'] = 'All Products'; |
Где «All Products» можно заменить на любое подходящее для Вашего магазина значение: «Каталог товаров», «Категории товаров», просто «Категории» или «Каталог» и т. д.
— открываем файл catalog/view/theme/*/template/common/footer.tpl и перед строкой с акциями
1 |
<li><a href="<?php echo $special; ?>"><?php echo $text_special; ?></a></li> |
размещаем строку вывода ссылки на новую страницу в футер
1 |
<li><a href="<?php echo $allproducts; ?>"><?php echo $text_allproducts; ?></a></li> |
4. Заходим в магазин и видим, что в футере появилась нужная нам ссылка.
Переходим по ней и удостоверяемся, что все работает как положено: страница носит придуманное нами название и на ней отображаются все товары.
5. На этом, в принципе, и все — модуль работает, страница есть. Но есть еще один необязательный, но полезный нюанс — добавление схемы или макета. Для чего это нужно? Например, захотим мы в нашем каталоге товаров, в боковой колонке, вывести модуль категорий или еще какой-нибудь модуль, информацию, а сделать это, не имея макета, невозможно.
Итак, идем в админку — Система — Дизайн — Макеты и добавляем новый макет. В поле «Название макета» вводим то название, которые мы присвоили странице в языковом файле ранее. В поле «Путь» вписываем — product/allproducts и сохраняем внесенные изменения. Теперь появился новый макет «Каталог товаров», в котором можно размещать всевозможные модули.
С модулем «Complete Product List / All Products» отпадает надобность создавать одну глобальную категорию, делать ее родительской для всех лишь для того, чтобы в одном месте, на одной странице, собрать все товары. Устанавливаем модуль и получаем отдельную страницу со всеми товарами, которые есть в магазине.
Здравствуйте!
Скажите, есть ли способ вывести ссылку на страницу в хлебные крошки и связать с ЧПУ?
Спасибо! Давно искал что-то подобное. Все работает
Только если много товаров ссылка очень долго открывается…
Спасибо за подробное описание!)
Может кто-нибудь ставил его на версию ocstore 1.5.5.1.2?
Не могу победить проблему. На главной странице ссылка на отдельную страницу со списком товаров называется text_allproducts.
А на самой странице уже все как нужно — «Каталог товаров».
Подскажите пожалуйста, если кто-нибудь разобрался.
Необходимо добавить значение для text_allproducts в языковой файл.
В языковом файле это значение присутствует ($_[‘text_allproducts’] = ‘Каталог товаров';
но не работает :(
А вы только этот файл правили: catalog/language/ENGLISH/common/footer.php ?
У меня пока не внес исправления в catalog/language/RUSSIAN/common/footer.php, тоже было как у вас…
Добрый день.
А можно ли добавить еще фильтр категорий?
В сайдбар, допустим, добавить категории и при воборе категории — вывод товаров из данной категории
Не работает выдает ошибку «Fatal error: Cannot redeclare translit() (previously declared in /home/technoim/public_html/catalog/controller/module/anystore_modal.php:5) in /home/technoim/public_html/catalog/controller/module/anystore_modal.php on line 5″