модуль Новинки, сортировка по product_id


juancarlovich
 Поделиться

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

Уважаемые, помогите разобраться :)

Движок PRO Версия 2.1.0.1.8. Задача - в модуле Новинки выводить последние товары не по дате создания, а по product_id.

Изменил в файле catalog/controller/module/latest.php на:

 

		$filter_data = array(
			'sort'  => 'p.product_id',
			'order' => 'DESC',
			'start' => 0,
			'limit' => $setting['limit']
		);

 

вывод товаров изменился, но каким-то хаотичным способом... Теперь выводятся id: 48958, 48956, 48957, 51792 и тд. - в каком-то разнобое идут, вперемешку последние и совсем не последние.

Такая же ситуация и с модулем product_tab.php.

На прошлых версиях OpenCarta все работало замечательно, на 2 версию только вчера перешел...

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

12 часа назад, savage4pro сказал:

добавьте еще один ключ p.product_id в массив sort_data метода getProducts модели ModelCatalogProduct

 

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

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

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

Прошу еще раз помощи, теперь под версию PRO 2.3.0.2.2, такая же проблема как и в первом посте :(

 

Что сделано:

1. catalog/model/catalog/product.php - добавил ключ p.roduct_id

Скрытый текст

public function getProducts($data = array()) {
 ...

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

 

и заменил сортировку в запросе getLatestProducts

Скрытый текст

public function getLatestProducts($limit) {
		$product_data = $this->cache->get('product.latest.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . $this->config->get('config_customer_group_id') . '.' . (int)$limit);

		if (!$product_data) {
			$query = $this->db->query("SELECT p.product_id FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' ORDER BY p.product_id DESC LIMIT " . (int)$limit);

 

2. catalog/controller/extension/module/latest.php - заменил на сортировку по p.product_id

Скрытый текст

$filter_data = array(
			'sort'  => 'p.product_id',
			'order' => 'DESC',
			'start' => 0,
			'limit' => $setting['limit']
		);

 

 

В итоге фигня какая-то, опять выводится в рандомном порядке...

 

UPD: в общем-то оказалось все легко, но для не очевидно :) нужно модификаторы обновлять после изменения кода.

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

  • 2 года спустя...
В 23.03.2017 at 20:56, juancarlovich сказал:

Прошу еще раз помощи, теперь под версию PRO 2.3.0.2.2, такая же проблема как и в первом посте :(

 

Что сделано:

1. catalog/model/catalog/product.php - добавил ключ p.roduct_id

  Показать содержимое


public function getProducts($data = array()) {
 ...

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

 

и заменил сортировку в запросе getLatestProducts

  Показать содержимое


public function getLatestProducts($limit) {
		$product_data = $this->cache->get('product.latest.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . $this->config->get('config_customer_group_id') . '.' . (int)$limit);

		if (!$product_data) {
			$query = $this->db->query("SELECT p.product_id FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' ORDER BY p.product_id DESC LIMIT " . (int)$limit);

 

2. catalog/controller/extension/module/latest.php - заменил на сортировку по p.product_id

  Скрыть содержимое


$filter_data = array(
			'sort'  => 'p.product_id',
			'order' => 'DESC',
			'start' => 0,
			'limit' => $setting['limit']
		);

 

 

В итоге фигня какая-то, опять выводится в рандомном порядке...

 

UPD: в общем-то оказалось все легко, но для не очевидно :) нужно модификаторы обновлять после изменения кода.

Делал также - не работает...может ещё какие файлы на эту сортировку product/latest ?

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

Да, после всех манипуляций и модификаторы чищу и кеш шаблона чищу

 

наверное, мы о разных вещах говорим. Меня интересует вывод товаров на этой странице:

мой_сайт/index.php?route=product/latest

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

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Показать вместо этого как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Нельзя вставлять изображения напрямую. Загрузите или вставьте изображения по URL.

 Поделиться