Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

как сделать сортировку товара по умолчанию по дате поступления товара?


Recommended Posts

В фале /catalog/controller/product/category.php найдите

 

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

И поменяйте p.sort_order на p.date_added

 

В зависимости от того должен товар выводится по возрастанию или убыванию, ищем

 

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

ASC - по возрастанию, DESC - по убыванию.

 

Должно работать, просто под рукой демки нет 2.1.0.2. Если не поможет, скиньте содержимое /catalog/controller/product/category.php 

Змінено користувачем Shagrath
  • +1 2
Надіслати
Поділитися на інших сайтах


 

В фале /catalog/controller/product/category.php найдите

 

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

И поменяйте p.sort_order на p.date_added

 

В зависимости от того должен товар выводится по возрастанию или убыванию, ищем

 

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

ASC - по возрастанию, DESC - по убыванию.

 

Должно работать, просто под рукой демки нет 2.1.0.2. Если не поможет, скиньте содержимое /catalog/controller/product/category.php 

 

всеравно остается по умолчанию сортировка по алфавиту. и вообще в списке сортировки на сайте нет сортировки по дате поступления... файл в прикреплении

category.php

  • +1 1
Надіслати
Поділитися на інших сайтах


Действительно не доглядел. Нужно ещё

$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.date_added-DESC',
'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.date_added&order=DESC' . $url)
);

У себя на 2.0.3.1 проверил, работает. Только у меня файл оригинала затрагивает один из модификаторов, поэтому изменения вступают в силу только после обновления кэша модификаторов.

 

Ну и проверьте на всякий случай в файле catalog/model/catalog/product.php

 

наличие p.date_added

$sort_data = array(
'pd.name',
'p.model',
'p.quantity',
'p.price',
'rating',
'p.sort_order',
'p.date_added'
);
Змінено користувачем Shagrath
Надіслати
Поділитися на інших сайтах


извините за глупый вопрос, а как очистить кеш модификаторов?

я все сделала как описано и все равно ничего не отображается. все как было

Надіслати
Поділитися на інших сайтах


у меня ошыбка на сайте 

Notice: Undefined variable: sort in D:\OpenServer\domains\new\system\storage\modification\catalog\controller\product\category.php on line 190Notice: Undefined variable: sort inD:\OpenServer\domains\new\system\storage\modification\catalog\controller\product\category.php on line 500

Надіслати
Поділитися на інших сайтах


Ну тут явно неправильное применение тех правок которые я рекомендовал. Как минимум обратите внимания на строки 18-22 и 24-28, ничего не смущает? Если есть желание что бы заработало как нужно, возьмите чистый файл из дистрибутива, и в нём сделайте те правка о которых я писал, только внимательно.

В фале /catalog/controller/product/category.php найдите

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

И поменяйте p.sort_order на p.date_added

 

Ищем

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

ASC меняем на 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.date_added-DESC',
'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.date_added&order=DESC' . $url)
);

Надіслати
Поділитися на інших сайтах


Ну тут явно неправильное применение тех правок которые я рекомендовал. Как минимум обратите внимания на строки 18-22 и 24-28, ничего не смущает? Если есть желание что бы заработало как нужно, возьмите чистый файл из дистрибутива, и в нём сделайте те правка о которых я писал, только внимательно.

В фале /catalog/controller/product/category.php найдите

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

И поменяйте p.sort_order на p.date_added

 

Ищем

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

ASC меняем на 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.date_added-DESC',
'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.date_added&order=DESC' . $url)
);

Спасибо Вам большое! Исправила ошибку, Все работает хорошо.

Надіслати
Поділитися на інших сайтах


Очень интересный вопрос, но вообще не понятный!!! Постарайтесь изложить вопрос ясней, хотя в данной теме ни о каком удалении и тем более удалении меню, хоть частично хоть полностью, не шло речи... 

Надіслати
Поділитися на інших сайтах


На 1.5.5.1.2 тоже заработало.

 

Файл /catalog/controller/product/category.php:

 

Тут p.sort_order заменить на p.date_added:

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

 Тут ASC меняем на DESC:

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

Тут p.date_added-DESC на p.date_added-DESC. А также p.sort_order&order=ASC на p.sort_order&order=DESC:

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

Теперь сортирует в категории (и в подкатегории )по умолчанию начиная с самых новых товаров и заканчивая самыми старыми.

Змінено користувачем Lilya
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.