Кнопка показать еще в категории Opencart

категория: , Полезности


Опубликовано: 14.06.2017 Просмотров: 971 Комментарии: 2


Кнопка показать еще в категории Opencart

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


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

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

В чем преимущества?

  • Более быстрая подгрузка товаров, чем переходя на по страницам
  • Отсутствуют дубли категорий (если убрать пагинацию)
  • Покупатель не покидает товары с первой страницы, очень удобно если надо сравнить товары или вернуть к какому-то повторно. (Смотрите решение - продвинутое добавление в закладки)

Как видим преимуществ много. Итак для внедрения этого функционала надо открыть catalog/controller/product/category.php и найти строку

	$product_total = $this->model_catalog_product->getFoundProducts(); или вместо getFoundProducts будет getTotalProduct();

после этой строки добавить

	$this->data['ttl'] = $product_total;

Таким образом мы из контроллера передаем данные о количестве товара в категории.

Далее открываем шаблон категории catalog/view/theme/default/template/product/category.tpl и находим пагинацию. В каждом шаблоне по разному, но смотрите такой код <?php echo $pagination; ?> после, или перед этой строкой вставляем код кнопки подгрузки: (саму пагинацию можно убрать или уставить, как будет удобно)

<?php if($ttl > count($products)){ ?>
	<input type="hidden" value="<?php echo $this->config->get('config_catalog_limit') + count($products); ?>" name="limit" id="pagin_limit">
	<?php if(($ttl - count($products)) >= $this->config->get('config_catalog_limit')){ ?>
		<div class="category_load">Показать еще <?php echo $this->config->get('config_catalog_limit'); ?></div>
	<?php }else{ ?>
		<div class="category_load">Показать еще <?php echo $ttl-count($products); ?></div>
	<?php } ?>
	<script>
		$(".category_load").on("click", function(){
			product_div = '.products';
			lim = $("#pagin_limit").val();
			$("." + product_div).load('index.php?route=product/category&path=<?php echo $this->request->get['path']; ?>&limit=' + lim + ' ' + product_div + '>*', function(){
				$("#pagin_limit").val(lim);
			});
		});
	</script>
<?php } ?>

Где переменная product_div отвечает за блок в котором находятся товары.

Детально расписывать работу функции подгрузки не буду, но она очень простая. При клике на кнопку показать еще у нас идет обработчик с запуском функции загрузки страницы с лимитом как первая + вторая страница и т.п. Если Количество еще не подгруженых фото больше за лимит на странице - отображается в кнопке лимит на странице. Если меньше - в кнопке показывает реально количество товара, которое еще не подгрузилось. Это очень удобно. И на последней странице подгрузки кнопка не будет отображаться т.к. уже все подгружено на страницу и она не нужна.

Недостаток такого подхода в том что он не понимает сортировки товаров, лимиты и т.п. фильтрации в категории. Но основа есть и при желании расширить функционал это не составит труда.


Комментарии:


Фото комментатора

OOO Nas 14.06.2017

Скрипт отлично работает для магазинов в которых не применяются сортировки, а если они есть то рекомендую в строку index.php?route=product/category&path=<?php echo $this->request->get['path']; ?> добавить sort и order И да, для Opencart 2 мы изменяли скрипт, скорее всего под 1 сделан
Администратор

Ответ for-opencart.com 14.06.2017

Под версию 2 надо $data писать в контроллере + <?php echo $this->request->get['path']; ?> перенести в контроллер

Фото комментатора

Dethtrix 04.09.2017

Что поменять, чтобы на версии 2.3 заработал? Я уже всю голову сломал)
Администратор

Ответ for-opencart.com 04.09.2017

Смотрите в консоле что отдает по клику показать и тогда уже надо разбираться. Конкретно по Opencart 2.3 не помогу т.к. очень загружен.

Быстрый поиск

Похожее

  • Категория

    Категория это список выбора, (в новых версиях автокомплит) который позволяет присвоить товар к конкретной категории.

  • Категории производителя

    В одном из проектов интернет-магазина керамики заказчик захотел видеть в функционале магазина «Вывод коллекций плитки определенного производителя».

Новое на сайте