Перейти к содержимому


Фото
* * * * * 1 голосов

Не отображать товары, которых нет в наличии

товары товары не найдены нет в наличии

  • Чтобы отвечать, сперва войдите на форум
21 ответов в теме

#1 Romalibert

Romalibert
  • Пользователь
  • 82 сообщений
  • Дизайн, Программирование, Заказчик
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 23.06.2014 - 15:05

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



#2 osben

osben
  • Фрилансер
  • 774 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:UA, RU

Опубликовано 23.06.2014 - 15:32

в ProductsView.php после 

$filter['visible'] = 1;

добавить 

$filter['in_stock'] = 1;


#3 Insane18

Insane18
  • Пользователь
  • 8 сообщений
  • Дизайн
  • Версия CMS:2.x

Опубликовано 29.01.2015 - 11:19

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



#4 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 29.01.2015 - 11:43

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

Вышеуказанный способ Osben-а как раз так и работает...

#5 Maksclub

Maksclub

    Помогаю с Симплой

  • Фрилансер
  • 1 144 сообщений
  • Дизайн, Программирование, Верстка, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 16.07.2015 - 09:35

в ProductsView.php после 

$filter['visible'] = 1;

добавить 

$filter['in_stock'] = 1;

 

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

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

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


Изменено: Maksclub, 16.07.2015 - 09:36


#6 mishanya

mishanya
  • Фрилансер
  • 2 409 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 16.07.2015 - 09:53

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

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

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

 

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

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

 

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


#7 Kosjak76

Kosjak76
  • Модератор
  • 3 587 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Харьков, Украина

Опубликовано 16.07.2015 - 09:55

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

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


#8 mishanya

mishanya
  • Фрилансер
  • 2 409 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 16.07.2015 - 10:00

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

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

 

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



#9 Kosjak76

Kosjak76
  • Модератор
  • 3 587 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Харьков, Украина

Опубликовано 16.07.2015 - 10:03

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



#10 mishanya

mishanya
  • Фрилансер
  • 2 409 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 16.07.2015 - 10:13

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

 

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



#11 Maksclub

Maksclub

    Помогаю с Симплой

  • Фрилансер
  • 1 144 сообщений
  • Дизайн, Программирование, Верстка, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 16.07.2015 - 10:27

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

 

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



#12 Maksclub

Maksclub

    Помогаю с Симплой

  • Фрилансер
  • 1 144 сообщений
  • Дизайн, Программирование, Верстка, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 16.07.2015 - 10:28

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

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

Спасибо большое



#13 Maksclub

Maksclub

    Помогаю с Симплой

  • Фрилансер
  • 1 144 сообщений
  • Дизайн, Программирование, Верстка, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 16.07.2015 - 10:40

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

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

 

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


Изменено: Maksclub, 16.07.2015 - 10:45


#14 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 16.07.2015 - 10:47

в сслылку на бренд, добавьте 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 его добавляли...

#15 mishanya

mishanya
  • Фрилансер
  • 2 409 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 16.07.2015 - 10:47

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

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



#16 Maksclub

Maksclub

    Помогаю с Симплой

  • Фрилансер
  • 1 144 сообщений
  • Дизайн, Программирование, Верстка, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 16.07.2015 - 10:51

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

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

 

(так и нужно)



#17 mishanya

mishanya
  • Фрилансер
  • 2 409 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 16.07.2015 - 10:58

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

 

(так и нужно)

 

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



#18 redscotina

redscotina
  • Пользователь
  • 13 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 17.07.2017 - 22:44

А вопрос, как при сортировке товара указать извлечение только того товара что есть в наличии, то есть при одной сортировке извлекается все, а при другой извлекается только товар в наличии.
Шаманю с /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;


#19 mishanya

mishanya
  • Фрилансер
  • 2 409 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 17.07.2017 - 22:58

А вопрос, как при сортировке товара указать извлечение только того товара что есть в наличии, то есть при одной сортировке извлекается все, а при другой извлекается только товар в наличии.
Шаманю с /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;


#20 redscotina

redscotina
  • Пользователь
  • 13 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 17.07.2017 - 23:18

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

 

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

 

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

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

после 

 

$filter['visible'] = 1;

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







Также с меткой «товары, товары не найдены, нет в наличии»

0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых