Перейти к содержанию
Официальный форум поддержки Simpla

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

Доброго времени суток! Возник такой вопрос, при выборе сортировки по цене, отсутствующие товары отображаются в первую очередь, а после них уже начинается сортировка. Хотелось бы их запихнуть в конец очереди. Полагаю, что надо править view.php и Products.php, но смог лишь добиться полного исключения отсутствующих товаров из каталога. Прочитал множество тем на форуме, так и не нашёл решения :) Буду благодарен за подсказку\совет.

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

как вариант на быструю руку ето сделать доп запрос в ORDER BY
 

IF((SELECT COUNT(*) FROM __variants WHERE (stock>0 OR stock IS NULL) AND product_id=p.id LIMIT 1), 1, 0) DESC

в Products.php

 

Пример для сортировки по имени
 

				case 'name':
				$order = 'IF((SELECT COUNT(*) FROM __variants WHERE (stock>0 OR stock IS NULL) AND product_id=p.id LIMIT 1), 1, 0) DESC, p.name';
				break;

то есть иными словами все товары у которых нет варианта будут в конце...

Вариантов масса, но есть так же ньюнсы которые надо учесть

Ссылка на сообщение
Поделиться на другие сайты
case 'price':

                    $order = '(SELECT pv.price FROM __variants pv WHERE (pv.stock IS NULL OR pv.stock>0) AND p.id = pv.product_id AND pv.position=(SELECT MIN(position) FROM __variants WHERE (stock>0 OR stock IS NULL) AND product_id=p.id LIMIT 1) LIMIT 1)';
				break;

 

Не работает :(
Ссылка на сообщение
Поделиться на другие сайты

$order = 'IF((SELECT COUNT(*) FROM __variants WHERE (stock>0 OR stock IS NULL) AND product_id=p.id LIMIT 1), 1, 0) DESC, (SELECT pv.price FROM __variants pv WHERE (pv.stock IS NULL OR pv.stock>0) AND p.id = pv.product_id AND pv.position=(SELECT MIN(position) FROM __variants WHERE (stock>0 OR stock IS NULL) AND product_id=p.id LIMIT 1) LIMIT 1)';
Ссылка на сообщение
Поделиться на другие сайты
  • 2 месяца спустя...

Друзья, подскажите, а что делать с этим?

{* Сортировка *}
{if $products|count>0}
<div class="sort">
	Сортировать по 
	<a {if $sort=='position'} class="selected"{/if} href="{url sort=position page=null}">умолчанию</a>
	<a {if $sort=='price'}    class="selected"{/if} href="{url sort=price page=null}">цене</a>
	<a {if $sort=='name'}     class="selected"{/if} href="{url sort=name page=null}">названию</a>
</div>
{/if}

И куда вставлять ваш фрагмент кода?

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

Друзья, спасибо большое!

Почему-то сначала подумал, что изменения касаются только шаблона и пытался внести изменения лишь в products.tpl

Ссылка на сообщение
Поделиться на другие сайты
  • 4 недели спустя...
  • 1 год спустя...

Народ, а подскажите как сделать:

На сайте дописаны сортировки по возрастанию и убыванию цены, вот по возрастанию

в Product.php:

// по цене Низкие > Высокие
		case 'price_asc':
		$order = '(SELECT pv.price FROM __variants pv WHERE (pv.stock IS NULL OR pv.stock>0) AND p.id = pv.product_id AND pv.position=(SELECT MIN(position) FROM __variants WHERE (stock>0 OR stock IS NULL) AND product_id=p.id LIMIT 1) LIMIT 1)';
		break;

 

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

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

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

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

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

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...