Romalibert Опубликовано 23 июня, 2014 Жалоба Поделиться Опубликовано 23 июня, 2014 Добрый день, подскажите, как в категориях отображать только те товары, которые есть в наличии? Вариант {if $product->variants|count > 0} работает, но пагинация вместо скажем 7-ми страниц с товарами показывает 15 страниц и из них 8 последних это "Товары не найдены" Цитата Ссылка на сообщение Поделиться на другие сайты
osben Опубликовано 23 июня, 2014 Жалоба Поделиться Опубликовано 23 июня, 2014 в ProductsView.php после $filter['visible'] = 1; добавить $filter['in_stock'] = 1; Цитата Ссылка на сообщение Поделиться на другие сайты
Insane18 Опубликовано 29 января, 2015 Жалоба Поделиться Опубликовано 29 января, 2015 Подскажите пожалуйста, если так сделать, то товар если вбить через поиск - тоже не отображается. А нужно чтобы товар не выводился в каталоге, но при этом сама страница не выпадала из индекса. То есть была доступной для Яндекса того же. Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 29 января, 2015 Жалоба Поделиться Опубликовано 29 января, 2015 А нужно чтобы товар не выводился в каталоге, но при этом сама страница не выпадала из индекса. То есть была доступной для Яндекса того же.Вышеуказанный способ Osben-а как раз так и работает... Цитата Ссылка на сообщение Поделиться на другие сайты
Maksclub Опубликовано 16 июля, 2015 Жалоба Поделиться Опубликовано 16 июля, 2015 (изменено) в ProductsView.php после $filter['visible'] = 1; добавить $filter['in_stock'] = 1; Подскажите а как чуток ( и чуток ли? ) усложнить :- в категории не выводить товар, которого нет (как в вашем способе)- а вот на странице бренда выводить товары, которых нет и которые есть (все в общем активные) Изменено 16 июля, 2015 пользователем Maksclub Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 16 июля, 2015 Жалоба Поделиться Опубликовано 16 июля, 2015 Подскажите а как чуток ( и чуток ли? ) усложнить :- в категории не выводить товар, которого нет (как в вашем способе)- а вот на странице бренда выводить товары, которых нет и которые есть (все в общем активные) в сслылку на бренд, добавьте get параметр, например show_stock и тогда ссылка будет бренд?show_stock=0соответственно в ProductsView.php обрабатывать нужно так: if( $this->request->get('show_stock','integer')===0 ) { //ничего не делаем } else { $filter['in_stock'] = 1; } Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 16 июля, 2015 Жалоба Поделиться Опубликовано 16 июля, 2015 Как-то странно, я бы так сделал if($category) $filter['in_stock'] = 1; Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 16 июля, 2015 Жалоба Поделиться Опубликовано 16 июля, 2015 Как-то странно, я бы так сделал if($category) $filter['in_stock'] = 1; =) таки да. но не ясно что делать если выводить бренд в категории. тогда условие будет срабатывать и бренд будет Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 16 июля, 2015 Жалоба Поделиться Опубликовано 16 июля, 2015 Если в категории - то не показывать, если категории нет, а есть бренд - показывать, я так понял задачу)) Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 16 июля, 2015 Жалоба Поделиться Опубликовано 16 июля, 2015 Если в категории - то не показывать, если категории нет, а есть бренд - показывать, я так понял задачу)) да. я имел ввиду что может быть вариант что есть и бренд и категория. тут нужно уточнить ТС =) Цитата Ссылка на сообщение Поделиться на другие сайты
Maksclub Опубликовано 16 июля, 2015 Жалоба Поделиться Опубликовано 16 июля, 2015 =) таки да. но не ясно что делать если выводить бренд в категории. тогда условие будет срабатывать и бренд будет а вот в категории бренд не нужен.... бренды — это у меня автор... их много, потому в категорию нет выбора, т.к. всю библиотеку в фильтр не засунешь ;) Спасибо большое! Цитата Ссылка на сообщение Поделиться на другие сайты
Maksclub Опубликовано 16 июля, 2015 Жалоба Поделиться Опубликовано 16 июля, 2015 Как-то странно, я бы так сделал if($category) $filter['in_stock'] = 1; Спасибо большое Цитата Ссылка на сообщение Поделиться на другие сайты
Maksclub Опубликовано 16 июля, 2015 Жалоба Поделиться Опубликовано 16 июля, 2015 (изменено) Как-то странно, я бы так сделал if($category) $filter['in_stock'] = 1; а вот и не сработало почему то.... в смысле само условие не сработало, выводятся везде товары с наличием 0 Изменено 16 июля, 2015 пользователем Maksclub Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 16 июля, 2015 Жалоба Поделиться Опубликовано 16 июля, 2015 в сслылку на бренд, добавьте 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 его добавляли... Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 16 июля, 2015 Жалоба Поделиться Опубликовано 16 июля, 2015 а вот и не сработало почему то.... в смысле само условие не сработало, выводятся везде товары с наличием 0нужно условие положить ниже блока // Выберем текущую категорию Цитата Ссылка на сообщение Поделиться на другие сайты
Maksclub Опубликовано 16 июля, 2015 Жалоба Поделиться Опубликовано 16 июля, 2015 нужно условие положить ниже блока // Выберем текущую категориювсе отлично... я так понимаю они выведутся еще и в сопутсвующих... то есть кран перекрыт только в категориях? (так и нужно) Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 16 июля, 2015 Жалоба Поделиться Опубликовано 16 июля, 2015 все отлично... я так понимаю они выведутся еще и в сопутсвующих... то есть кран перекрыт только в категориях? (так и нужно) да. товары в рекомендуемых и тд выбераються плагином Цитата Ссылка на сообщение Поделиться на другие сайты
redscotina Опубликовано 17 июля, 2017 Жалоба Поделиться Опубликовано 17 июля, 2017 А вопрос, как при сортировке товара указать извлечение только того товара что есть в наличии, то есть при одной сортировке извлекается все, а при другой извлекается только товар в наличии.Шаманю с /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; Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 17 июля, 2017 Жалоба Поделиться Опубликовано 17 июля, 2017 А вопрос, как при сортировке товара указать извлечение только того товара что есть в наличии, то есть при одной сортировке извлекается все, а при другой извлекается только товар в наличии.Шаманю с /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; Цитата Ссылка на сообщение Поделиться на другие сайты
redscotina Опубликовано 17 июля, 2017 Жалоба Поделиться Опубликовано 17 июля, 2017 а зачем это в сортировке делать? там же есть фильтр "В наличии". проверяете если сортировка такая-то, задействовать фильтр в наличии if($filter['sort']=='position') $filter['in_stock'] = 1; Я так понял что пихнуть это надо в /view/ProductsView.phpв function fetch() после $filter['visible'] = 1; Но чет не пашет Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 17 июля, 2017 Жалоба Поделиться Опубликовано 17 июля, 2017 Я так понял что пихнуть это надо в /view/ProductsView.phpв function fetch() после $filter['visible'] = 1; Но чет не пашет ну потому что $filter['sort'] оглашается дальше по коду и он не известен. ставьте ПОСЛЕ строки $this->design->assign('sort', $filter['sort']); Цитата Ссылка на сообщение Поделиться на другие сайты
redscotina Опубликовано 17 июля, 2017 Жалоба Поделиться Опубликовано 17 июля, 2017 СУПЕР, спасибо! Цитата Ссылка на сообщение Поделиться на другие сайты
Григор Опубликовано 12 марта, 2018 Жалоба Поделиться Опубликовано 12 марта, 2018 в ProductsView.php после $filter['visible'] = 1; добавить $filter['in_stock'] = 1; Подскажите пожалуйста, если так сделать, то на сайте не видны товары у которых нет цен. Цитата Ссылка на сообщение Поделиться на другие сайты
Григор Опубликовано 18 ноября, 2018 Жалоба Поделиться Опубликовано 18 ноября, 2018 в ProductsView.php после $filter['visible'] = 1; добавить $filter['in_stock'] = 1; Подскажите пожалуйста, если так сделать, то товар если вбить через поиск - тоже не отображается. А нужно чтобы товар не выводился в каталоге, но при этом сама страница не выпадала из индекса. То есть была доступной для Яндекса того же.Версия Simpla 2.3.8 Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 18 ноября, 2018 Жалоба Поделиться Опубликовано 18 ноября, 2018 Подскажите пожалуйста, если так сделать, то товар если вбить через поиск - тоже не отображается. А нужно чтобы товар не выводился в каталоге, но при этом сама страница не выпадала из индекса. То есть была доступной для Яндекса того же.Версия Simpla 2.3.8Файл view/ProductView.php удалите эту часть кода: if(empty($product) || (!$product->visible && empty($_SESSION['admin']))) return false; Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.