Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Сортировать товары по ПРОСМОТРАМ. Как сделать?


 Поделиться

Рекомендованные сообщения

По умолчанию опенкарт предполагает сортировку товаров в категории:

1. По имени

2. По цене

3. По рейтингу

4. По модели

Как добавить, заменить или переделать, чтобы была сортировка по самым "популярным" (посещаемым) товарам?

Ссылка на комментарий
Поделиться на других сайтах


18 минут назад, alinalessioYandex сказал:

Как добавить, заменить или переделать, чтобы была сортировка по самым "популярным" (посещаемым) товарам?

добавить/изменить в свой код запроса модели товара вот такой код сортировки -

p.`viewed` DESC

 

Ссылка на комментарий
Поделиться на других сайтах

8 часов назад, vier сказал:

добавить/изменить в свой код запроса модели товара вот такой код сортировки -

p.`viewed` DESC

 

Простите. Туплю )) Эта строчка для контроллера, правильно? Если да, то в каком месте в контроллере речь о сортировке? Или это в шаблоне прописать? Можно подробней?

Ссылка на комментарий
Поделиться на других сайтах


Сделал так. Но не работает. Помогите пожалуйста, как правильно сделать? Хочу просто чтобы по умолчанию сортировалось по просмотрам. Самые просматриваемые вверху.

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

Было:

$data['sorts'][] = array(
				'text'  => $this->language->get('text_default'),
				'value' => 'p.sort_order-ASC',
				'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url)
			);

Стало:

$data['sorts'][] = array(
				'text'  => $this->language->get('text_default'),
				'value' => 'p.viewed-DESC',
				'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.viewed=DESC' . $url)
			);

 

Ссылка на комментарий
Поделиться на других сайтах


 

        if (isset($this->request->get['sort'])) {
            $sort = $this->request->get['sort'];
        } else {
            $sort = 'p.viewed';
        }

        if (isset($this->request->get['order'])) {
            $order = $this->request->get['order'];
        } else {
            $order = 'ASC';
        }

 

 

в моделе добавим по пути catalog\model\catalog\product.php
после                 'date_modified'    => $query->row['date_modified'],

                'viewed'           => $query->row['viewed']

Ссылка на комментарий
Поделиться на других сайтах

19 минут назад, Ptenec сказал:

в моделе добавим по пути catalog\model\catalog\product.php
после                 'date_modified'    => $query->row['date_modified'],

                'viewed'           => $query->row['viewed']

Зачем?

Ссылка на комментарий
Поделиться на других сайтах

3 часа назад, alinalessioYandex сказал:

Помогите пожалуйста, как правильно сделать? Хочу просто чтобы по умолчанию сортировалось по просмотрам. Самые просматриваемые вверху.

 

Надо в файле catalog/controller/product/category.php

найти

		if (isset($this->request->get['sort'])) {
			$sort = $this->request->get['sort'];
		} else {
			$sort = 'p.sort_order';
		}

		if (isset($this->request->get['order'])) {
			$order = $this->request->get['order'];
		} else {
			$order = 'ASC';
		}

и изменить вот так

		if (isset($this->request->get['sort'])) {
			$sort = $this->request->get['sort'];
		} else {
			$sort = 'p.viewed';
		}

		if (isset($this->request->get['order'])) {
			$order = $this->request->get['order'];
		} else {
			$order = 'DESC';
		}

найти

			$data['sorts'][] = array(
				'text'  => $this->language->get('text_default'),
				'value' => 'p.sort_order-ASC',
				'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url)
			);

и изменить вот так

			$data['sorts'][] = array(
				'text'  => $this->language->get('text_default'),
				'value' => 'p.viewed-DESC',
				'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.viewed&order=DESC' . $url)
			);

 

В файле catalog/model/catalog/product.php

найти

		$sort_data = array(
			'pd.name',
			'p.model',
			'p.quantity',
			'p.price',
			'rating',
			'p.sort_order',
			'p.date_added'
		);

и изменить вот так

		$sort_data = array(
			'pd.name',
			'p.model',
			'p.quantity',
			'p.price',
			'rating',
			'p.sort_order',
			'p.viewed',
			'p.date_added'
		);

 

А теперь верни всё как было и установи модификатор )

default_order_by_viewed.ocmod.xml

  • +1 6
Ссылка на комментарий
Поделиться на других сайтах

  • 1 год спустя...

Доброе время суток. Извините, как можно доделать, что бы не выводилась не нужная сортировка в шаблоне (к примеру не нужно По цене По модели...)

И как можно сделать по product.latest. product.popular. product.bestseller.

Изменено пользователем lutuy
Ссылка на комментарий
Поделиться на других сайтах


  • 2 недели спустя...
В 24.10.2019 в 23:46, Yesvik сказал:

 

Надо в файле catalog/controller/product/category.php

найти

		if (isset($this->request->get['sort'])) {
			$sort = $this->request->get['sort'];
		} else {
			$sort = 'p.sort_order';
		}

		if (isset($this->request->get['order'])) {
			$order = $this->request->get['order'];
		} else {
			$order = 'ASC';
		}

и изменить вот так

		if (isset($this->request->get['sort'])) {
			$sort = $this->request->get['sort'];
		} else {
			$sort = 'p.viewed';
		}

		if (isset($this->request->get['order'])) {
			$order = $this->request->get['order'];
		} else {
			$order = 'DESC';
		}

найти

			$data['sorts'][] = array(
				'text'  => $this->language->get('text_default'),
				'value' => 'p.sort_order-ASC',
				'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url)
			);

и изменить вот так

			$data['sorts'][] = array(
				'text'  => $this->language->get('text_default'),
				'value' => 'p.viewed-DESC',
				'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.viewed&order=DESC' . $url)
			);

 

В файле catalog/model/catalog/product.php

найти

		$sort_data = array(
			'pd.name',
			'p.model',
			'p.quantity',
			'p.price',
			'rating',
			'p.sort_order',
			'p.date_added'
		);

и изменить вот так

		$sort_data = array(
			'pd.name',
			'p.model',
			'p.quantity',
			'p.price',
			'rating',
			'p.sort_order',
			'p.viewed',
			'p.date_added'
		);

 

А теперь верни всё как было и установи модификатор )

default_order_by_viewed.ocmod.xml 1 \u043a\u0411 · 34 downloads

 

Спасибо за модификатор! Отлично работает. Сборка ocStore 2.3.0.2.3

Ссылка на комментарий
Поделиться на других сайтах


  • 1 год спустя...
24.10.2019 в 22:46, Yesvik сказал:

 

Надо в файле catalog/controller/product/category.php

найти

		if (isset($this->request->get['sort'])) {
			$sort = $this->request->get['sort'];
		} else {
			$sort = 'p.sort_order';
		}

		if (isset($this->request->get['order'])) {
			$order = $this->request->get['order'];
		} else {
			$order = 'ASC';
		}

и изменить вот так

		if (isset($this->request->get['sort'])) {
			$sort = $this->request->get['sort'];
		} else {
			$sort = 'p.viewed';
		}

		if (isset($this->request->get['order'])) {
			$order = $this->request->get['order'];
		} else {
			$order = 'DESC';
		}

найти

			$data['sorts'][] = array(
				'text'  => $this->language->get('text_default'),
				'value' => 'p.sort_order-ASC',
				'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url)
			);

и изменить вот так

			$data['sorts'][] = array(
				'text'  => $this->language->get('text_default'),
				'value' => 'p.viewed-DESC',
				'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.viewed&order=DESC' . $url)
			);

 

В файле catalog/model/catalog/product.php

найти

		$sort_data = array(
			'pd.name',
			'p.model',
			'p.quantity',
			'p.price',
			'rating',
			'p.sort_order',
			'p.date_added'
		);

и изменить вот так

		$sort_data = array(
			'pd.name',
			'p.model',
			'p.quantity',
			'p.price',
			'rating',
			'p.sort_order',
			'p.viewed',
			'p.date_added'
		);

 

А теперь верни всё как было и установи модификатор )

default_order_by_viewed.ocmod.xml 1 \u041a\u0431 · 80 скачиваний

А для OcStore 3.0.3.7 есть такой модификатор?

Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.