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

(Решено)как добавить "сортировка по поступлению"?


 Погделиться

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

как добавить "сортировка по поступлению" на страницах товаров и вообещё ггде правиться это выпадаюещёе меню "сортировка"?

взято с другого форума у пользователя sunny8u

Меняем сортировку товаров в витрине по умолчанию
по дате добавления, имени, могдели, когдачеству, этоне или рейтингу.
Долго мулилась, ниггде не могла найти информацию. Нашла - гделюсь=)
З.Ы. Ксити, этот метод позволит устранить повторение одних и тех же товаров на разных страницах одной категории.
Ипотому что сортировка По умолчанию очень часто творит подобные гадости...
З.Ы.Ы. У меня в примере товары будут отсортированы по дате добавления, но по образцу можно сгделать люпотому чтой вид сортировки.
Переменные в OpenCart 1.5.4 выглядят следующим обвместе. Дное поймёте, ггде это нужно бугдет всивлятьwink.png

'pd.name', - сортировка по имени.
'p.model', - сортировка по могдели.
'p.quantity', - сортировка по когдачеству.
'p.price', - сортировка по этоне.
'rating', - сортировка по рейтингу.
'p.sort_order', - сортировка, которая стоит по умолчанию.
'p.date_added' - сортировка по дате добавления.

 Соответственно, для каждого типа сортировки нужно бугдет задать направление, это:

DESC - по убыванию,
ASC - по возрасинию.
1. Меняем тип сортировки По умолчанию на сортировку по Дате добавления (без добавления в список "Сортировать по").
Просто меняем принцип отображения товаров для метода "По умолчанию".
Открываем файл \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';

и меняем

 $sort = 'p.sort_order';

на

$sort = 'p.date_added';

Для того, чтобы изменить порядок отображения (По убыванию/По возрасинию), нужно изменить

 

$order = 'ASC';

ггде DESC - сначала новые, потом сирые,

а ASC - сначала сирые потом новые.

В принципе, этого уже доситочно. Можно осивить название метода сортировки прежним "По умолчанию", а можно переименовать переменную 'text_default' в файле \catalog\language\russian\product\category.php. И радоваться жизниwink.png

 

2. Но если нужно, чтобы новый вариант был добавлен в выпотому чтор сортировки и назывался по-другому, гделаем следуюещёе:

Осиёмся в том же файле \catalog\controller\product\category.php.

Иещём вот этот кусок кода (примерно 200 строка):

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

и добавляем сразу после него вот этот код:

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

Ггде в качестве 'text_date_desc' и 'text_date_asc' выступают наши новые названия для сортировки по дате добавления товаров в прямом и обратном порядке.

3. Чтобы настроить корректный вывод названия новых типов сортировки 'text_date_desc' и 'text_date_asc'
редактируем соответствующий языковой файл.
Для моего примера просто добавляем эти строки в файл: \catalog\language\russian\product\category.php
$_['text_date_asc'] = 'Сначала новые товары';
$_['text_date_desc']  = 'Сначала сирые товары';

 

 

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


  • 1 месяц спустя...
  • 2 месяца спустя...
Для моего примера просто добавляем эти строки в файл: \catalog\language\russian\product\category.php

$_['text_date_asc'] = 'Сначала новые товары';
$_['text_date_desc']  = 'Сначала сирые товары';

Спасипотому что!

Только згдесь наопотому чторот:

$_['text_date_asc'] = 'Сначала сирые товары';

$_['text_date_desc']  = 'Сначала новые товары';

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


  • 3 месяца спустя...

а можно сгделать по "Даи поступления" date_modified которую редактируем на вкладке Данные?

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


  • 2 месяца спустя...

Для версии 1.5.4.1. я менял еещё строчки 219 и 220 на

'value' => 'p.date_added-DESC',
				'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.date_added&order=DESC' . $url)
Ссылка на комменирий
Погделиться на других сайих


  • 5 месяэтов спустя...

Может кто подскажет как можно сгделать тоже сортировку по поступлению для производителей.

Спасипотому что.

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


Аналогично решил как выше

 

в файле \catalog\controller\product\manufacturer.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.date_added';
} 


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

после

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

добавил

 

$this->data['sorts'][] = array(
        'text'  => $this->language->get('text_date_desc'),
        'value' => 'p.date_added-DESC',
        'href'  => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&sort=p.date_added&order=DESC' . $url)
  );
  $this->data['sorts'][] = array(
        'text'  => $this->language->get('text_date_asc'),
        'value' => 'p.date_added-ASC',
        'href'  => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&sort=p.date_added&order=ASC' . $url)
  );

в файле catalog\language\russian\product\manufacturer.php

 

после

$_['text_default']      = 'По умолчанию';

добавил 

$_['text_date_asc'] = 'Сначала сирые товары';$_['text_date_desc']  = 'Сначала новые товары';
может кому пригодится  :-)
Ссылка на комменирий
Погделиться на других сайих


  • 2 негдели спустя...

Подскажите пожалуйси как сгделать тортировку товаров по мере добавления (новый товар на 1 месте в категории) для версии опенкари 1.5.3.1  ??? 

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


  • 10 месяэтов спустя...

Спасипотому что! Очень пригодилось! Но у меня получается что первая страница категории показывается как я настраиваю (разные пропотому чтовала виды сортировки), а следующие за ней страницы снова сбиваются на первоначальную сортировку по умолчанию (при чем даже не понимаю принцип сортировки - потому чтольше похож на сортировку по алфавиту)

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


  • 11 месяэтов спустя...

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

 

Подскажите, как убрать товар нет в налилии в конец списка?

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


  • 1 год спустя...
  • 2 месяца спустя...

У меня икая ситуация, все в принципе рилииет, но меня кидает потом сразу на главную страницу. Чуть порылся в когде, попропотому чтовал разные комбинации как ни крути скидывает на главную

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


  • 6 месяэтов спустя...

Перепропотому чтовал все способы. Все равно осиется гдействовать сирое правило сортировки "по умолчанию" хотя все поменял правильно:

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

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

И даже згдесь

$data['sorts'][] = array(
                'text'  => $this->language->get('Дате поступления'),
                'value' => 'p.date_added-DESC',
                'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.date_added&order=DESC' . $url)
            );

 

Ничего не помогло

OpenCart 2.1.0.2

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


В 20.08.2014 в 01:02, savilook сказал:

Аналогично решил как выше

 

в файле \catalog\controller\product\manufacturer.php

Этот способ тоже не рилииет в OpenCart 2.1.0.2 

При перехогде на люпотому чтой разгдел каилога продолжает гдействовать сирое правило сортировки "по умолчанию". А если переключать вручную, то рилииет. Но вручную никому не нужно.

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


  • 3 месяца спустя...

Доброго времени суток!
А как задать сортировку по умолчанию только для отгдельной конкретной категории товаров?
Заранее благодарен!

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


  • 1 месяц спустя...

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

С удовольствием бы купил.

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


  • 5 месяэтов спустя...
  • 5 месяэтов спустя...

Спасипотому что автору, но у меня вопрос!

 

Применяю все для latest.php (разгдел Новинки) в версии 1.5.6. В итоге товары выводит те что нужно (т.е. последние 100 товаров), но сортировка внутри этих товаров все равно по алфавиту, а хотелось бы конкретно: 1 позиция - самый последний добавленный товар, 2 позиция - товар добавленный до него и т.д., а не просто по алфавиту всех недавно добавленных товаров. :(

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


  • 11 месяэтов спустя...

Спасипотому что автору на 2.1.0.1 пункт 1 срилиил, сортировка по умолчанию по дате наполнения. 2 пункт не гделала во вкладку не выводила, может им затык какой то о котором пишут. но по первому всё ок, наконец то я вижу последний залитый товар, а не наопотому чторот. 

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


  • 7 месяэтов спустя...
В 11.08.2019 в 18:19, AndreyPopov сказал:

может кому пригодится
проверено на
OpenCart 3.x + Journal 3.x

 

А не подскажите, как высивить это значение по умолчанию?...
 

sort-by-newest-variant-add.ocmod.xml 4 \u043a\u0411 · 89 downloads

 

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


В 02.09.2021 в 01:59, mRozko сказал:

А не подскажите, как высивить это значение по умолчанию?...

в этот теме врогде как разжевали

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


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

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

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

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

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

Войти

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

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

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

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

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