Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

[Решено] Проданные товары в конце списка


Palladin
 Поделиться

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

Здравствуйте. Как сделать так чтобы товары имеющие статус "Нет на складе" проваливались в разделе и показывались самыми последними, иными словами чтобы при просмотре пользователем каталога магазина вначале он бы видел товар "В наличии", а уже потом все остальные, а то у меня вот так получается:(

http://shop.erolife.by/Kupalniki

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


Да ладно!? Неужели никто не знает как?

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

А вообще, на самом деле, это либо правка пары моделей и колдовство с лишними SQL-запросами и лишним скрытым полем для сортировки, либо написание модуля, либо перекраивание части магазина.

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


скорее всего нужно всего лишь добавить сортировку по полю stock_status_id в таблице product, в файле catalog/model/catalog/product.php

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


Скорее всего я какбы хочу чтобы мне написали эту сортировку:) Лана, буду ждать решения наших умельцев, всем спасибо

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


  • 4 недели спустя...
  • 1 месяц спустя...

Я решил проблему так:

В свойствах товара, которого нет на складе, на вкладке "Данные" есть поле "Порядок сортировки:" по умолчанию там стоит единица, ну дак если вписывать в те товары, что вышли со склада двойку, то товары, которые закончились будут отображаться последними в списке:)

P.S. топорный метод, мб ктонить сделает это автоматической функцией?

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


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

Ребят! Неужели нельзя сделать чтоб менялся статус у проданных товаров на "отключено" или отодвигать их в конец списка? А то на главной висят товары которых нет в наличии, не порядок. Подскажите пожалуйста как решается задача?

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


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

и пользуйтесь иногда интернетом, а не ждите помощи...

тут написано как сделать сортировку по Производителю

а потом в catalog/controller/product/category.php изменить $sort = 'p.sort_order'; изменить на p.quantity

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

Спасибо попробую. Но я действительно перерыл весь интернет, даже англоязычный, чтоб найти решение, но подходящего не встечал. Модуль чтоб сделать кнопку "купить" неактивной у меня стоит, их есть даже несколько разных, и платные и бесплатные. А вот сортировку по количеству где-то находил, но мне не помогло, наверное решение было для другой версии, у меня 1.5.2.1. Сейчас попробую метод который Вы посоветовали и отпишусь. А нет ли способа сделать чтоб товар которого нет в наличии снимался с витрины? Например меняя статус товара на "отключено". У меня раньше в магазине на Virtuemart эта функция была по умолчанию, так сказать из коробки, и для меня удивительно что в OpenCart этого нет, ведь проданный товар редко появляется в наличии еще раз, меняются модели, ассортимент обновляется.

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


Так вот и этот способ у меня не сработал. Очень жаль. Ранее пробовал этим способом. В обоих случаях у меня просто не грузится сайт, белая страница, в логах ошибок нет. Как адаптировать это решение под версию 1.5.2.1 ?

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


  • 5 месяцев спустя...

В файле catalog\model\catalog\product.php найдите строки (примерно 160 строка)

   if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
	if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
	 $sql .= " ORDER BY LCASE(" . $data['sort'] . ")";
	} else {
	 $sql .= " ORDER BY " . $data['sort'];
	}
   } else {
	$sql .= " ORDER BY p.sort_order";
   }

Заменить на:

   if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
	$sort = $data['sort'];
   } else {
	$sort = 'p.sort_order';
   }
   $append_order = 'p.price = 0, p.quantity = 0,';
   if ($sort == 'pd.name' || $sort == 'p.model') {
	$sql .= " ORDER BY $append_order LCASE($sort)";
   } else {
	$sql .= " ORDER BY $append_order $sort";
   }
  • +1 3
Ссылка на комментарий
Поделиться на других сайтах


В файле catalogmodelcatalogproduct.php найдите строки (примерно 160 строка)

   if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
	if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
	 $sql .= " ORDER BY LCASE(" . $data['sort'] . ")";
	} else {
	 $sql .= " ORDER BY " . $data['sort'];
	}
   } else {
	$sql .= " ORDER BY p.sort_order";
   }

Заменить на:

   if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
	$sort = $data['sort'];
   } else {
	$sort = 'p.sort_order';
   }
   $append_order = 'p.price = 0, p.quantity = 0,';
   if ($sort == 'pd.name' || $sort == 'p.model') {
	$sql .= " ORDER BY $append_order LCASE($sort)";
   } else {
	$sql .= " ORDER BY $append_order $sort";
   }

на версии 3.1 не работает(

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


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

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

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


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

В файле catalog\model\catalog\product.php найдите строки (примерно 160 строка)

 

   if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
	if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
	 $sql .= " ORDER BY LCASE(" . $data['sort'] . ")";
	} else {
	 $sql .= " ORDER BY " . $data['sort'];
	}
   } else {
	$sql .= " ORDER BY p.sort_order";
   }
Заменить на:

   if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
	$sort = $data['sort'];
   } else {
	$sort = 'p.sort_order';
   }
   $append_order = 'p.price = 0, p.quantity = 0,';
   if ($sort == 'pd.name' || $sort == 'p.model') {
	$sql .= " ORDER BY $append_order LCASE($sort)";
   } else {
	$sql .= " ORDER BY $append_order $sort";
   }

Спасибо, заработало, ocstore 1.5.5.1.2

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


  • 5 месяцев спустя...

для oc 2x пашет тоже. Только модификаторы обновите после правок.

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


  • 3 месяца спустя...
  • 2 месяца спустя...
В 03.03.2016 в 00:31, sdm87 сказал:

Спасибо, заработало, ocstore1.5.5.1.2

Скажите вы может еще что-то делали?
 у меня ocstore1.5.5.1.2, но что-то не срабатывает

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


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

для Opencart 3 это решение подходит с маленьким дополнением. Нужно в самом начале функции в селект добавить поле количества

image.thumb.png.3f138bd7e2652ee45a7bdd6a56e87639.png

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


  • 1 год спустя...
В 18.09.2012 в 10:46, dimmaq сказав:

В файле catalog\model\catalog\product.php найдите строки (примерно 160 строка)

 


   if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
	if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
	 $sql .= " ORDER BY LCASE(" . $data['sort'] . ")";
	} else {
	 $sql .= " ORDER BY " . $data['sort'];
	}
   } else {
	$sql .= " ORDER BY p.sort_order";
   }

Заменить на:

 


   if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
	$sort = $data['sort'];
   } else {
	$sort = 'p.sort_order';
   }
   $append_order = 'p.price = 0, p.quantity = 0,';
   if ($sort == 'pd.name' || $sort == 'p.model') {
	$sql .= " ORDER BY $append_order LCASE($sort)";
   } else {
	$sql .= " ORDER BY $append_order $sort";
   }

получаю ошибку
https://prnt.sc/sbekwt

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


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

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

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

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

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

Войти

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

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

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

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

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