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

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

Добрый день, подскажите, как в категориях отображать только те товары, которые есть в наличии? Вариант {if $product->variants|count > 0} работает, но пагинация вместо скажем 7-ми страниц с товарами показывает 15 страниц и из них 8 последних это "Товары не найдены"

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

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

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

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

Вышеуказанный способ Osben-а как раз так и работает...
Ссылка на сообщение
Поделиться на другие сайты
  • 5 месяцев спустя...

 

в ProductsView.php после 

$filter['visible'] = 1;

добавить 

$filter['in_stock'] = 1;

 

Подскажите а как чуток ( и чуток ли? ;) )  усложнить :

- в категории не выводить товар, которого нет (как в вашем способе)

- а вот на странице бренда выводить товары, которых нет и которые есть (все в общем активные)

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

Подскажите а как чуток ( и чуток ли? ;) )  усложнить :

- в категории не выводить товар, которого нет (как в вашем способе)

- а вот на странице бренда выводить товары, которых нет и которые есть (все в общем активные)

 

в сслылку на бренд, добавьте get параметр, например show_stock и тогда ссылка будет бренд?show_stock=0

соответственно в ProductsView.php обрабатывать нужно так:

 

		if( $this->request->get('show_stock','integer')===0 ) {
			//ничего не делаем
		} else {
			$filter['in_stock'] = 1;
		}
Ссылка на сообщение
Поделиться на другие сайты

 

Как-то странно, я бы так сделал

if($category)
$filter['in_stock'] = 1;

 

=) таки да. но не ясно что делать если выводить бренд в категории. тогда условие будет срабатывать и бренд будет

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

Если в категории - то не показывать, если категории нет, а есть бренд - показывать, я так понял задачу))

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

Если в категории - то не показывать, если категории нет, а есть бренд - показывать, я так понял задачу))

 

да. я имел ввиду что может быть вариант что есть и бренд и категория. тут нужно уточнить ТС =)

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

=) таки да. но не ясно что делать если выводить бренд в категории. тогда условие будет срабатывать и бренд будет

 

а вот в категории бренд не нужен.... бренды — это у меня автор... их много, потому в категорию нет выбора, т.к. всю библиотеку в фильтр не засунешь ;);) Спасибо большое!

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

 

Как-то странно, я бы так сделал

if($category)
$filter['in_stock'] = 1;

 

а вот и не сработало почему то.... в смысле само условие не сработало, выводятся везде товары с наличием 0

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

в сслылку на бренд, добавьте get параметр, например show_stock и тогда ссылка будет бренд?show_stock=0

соответственно в ProductsView.php обрабатывать нужно так:

 

 

 if( $this->request->get('show_stock','integer')===0 ) {
//ничего не делаем
} else {
$filter['in_stock'] = 1;
}

 

 

 

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

И в ссылке параметр show_stock=0 писать совсем ни к чему, что с ним что без него - одинаково сработает приведенный код. А писать надо лишь ненулевое значение...

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

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

а вот и не сработало почему то.... в смысле само условие не сработало, выводятся везде товары с наличием 0

нужно условие положить ниже блока // Выберем текущую категорию

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

нужно условие положить ниже блока // Выберем текущую категорию

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

 

(так и нужно)

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

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

 

(так и нужно)

 

да. товары в рекомендуемых и тд выбераються плагином

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

А вопрос, как при сортировке товара указать извлечение только того товара что есть в наличии, то есть при одной сортировке извлекается все, а при другой извлекается только товар в наличии.
Шаманю с /api/Products.php но пока безрезультатно

case 'position':
$order = '(SELECT -pv.price FROM __variants pv WHERE p.id = pv.product_id AND (SELECT count(*)>0 FROM __variants pv WHERE pv.product_id=p.id LIMIT 1) LIMIT 1)DESC';
break;
Ссылка на сообщение
Поделиться на другие сайты

 

А вопрос, как при сортировке товара указать извлечение только того товара что есть в наличии, то есть при одной сортировке извлекается все, а при другой извлекается только товар в наличии.

Шаманю с /api/Products.php но пока безрезультатно

case 'position':
$order = '(SELECT -pv.price FROM __variants pv WHERE p.id = pv.product_id AND (SELECT count(*)>0 FROM __variants pv WHERE pv.product_id=p.id LIMIT 1) LIMIT 1)DESC';
break;

 

а зачем это в сортировке делать?  там же есть фильтр "В наличии".

 

проверяете если сортировка такая-то, задействовать фильтр в наличии

 

if($filter['sort']=='position')
   $filter['in_stock'] = 1;
Ссылка на сообщение
Поделиться на другие сайты

 

а зачем это в сортировке делать?  там же есть фильтр "В наличии".

 

проверяете если сортировка такая-то, задействовать фильтр в наличии

 

if($filter['sort']=='position')
   $filter['in_stock'] = 1;

Я так понял что пихнуть это надо в /view/ProductsView.php

в function fetch()

 

после 

 

$filter['visible'] = 1;

 

Но чет не пашет

 

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

Я так понял что пихнуть это надо в /view/ProductsView.php

в function fetch()

 

после 

 

$filter['visible'] = 1;

 

Но чет не пашет

 

 

ну потому что $filter['sort'] оглашается дальше по коду и он не известен. ставьте ПОСЛЕ строки

$this->design->assign('sort', $filter['sort']);
Ссылка на сообщение
Поделиться на другие сайты
  • 7 месяцев спустя...

в ProductsView.php после 

$filter['visible'] = 1;

добавить 

$filter['in_stock'] = 1;

Подскажите пожалуйста, если так сделать, то на сайте не видны товары у которых нет цен.

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

 

в ProductsView.php после 

$filter['visible'] = 1;

добавить 

$filter['in_stock'] = 1;

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

Версия Simpla 2.3.8 

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

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

Версия Simpla 2.3.8

Файл view/ProductView.php удалите эту часть кода:
if(empty($product) || (!$product->visible && empty($_SESSION['admin'])))
	return false;
Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

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

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

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

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