Скрыть товары которых нет в наличии из списка в категории товара

2 мес. 1 нед. назад #8764 от blik
Здравствуйте.
Помогите скрыть товары которых нет в наличии на странице отображения списка товаров в категории.
При этом необходимо чтобы сами товары которых нет в наличии (их карточки товара) открывались и выдавали код 200.
Частично эту задачу получается решить, добавлением кода, товары из списка пропадают, но при этом остаются пустые места в списке товаров, вот от этих пустых мест надо избавиться.
И счётчик товаров на странице отображает все товары которые есть в категории, а не те которые в наличии.
Код который добавляла в файл - com_virtuemart/sublayouts/products.php такой -
46строка - foreach ( $products as $product ) {
if (!$product->product_in_stock >0) {
continue;
}

Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.

2 мес. 1 нед. назад - 2 мес. 1 нед. назад #8765 от Wedal
blik, это не так просто, как может казаться. Вы можете в общих настройках VM включить отображение или неотображение товаров с нулевым остатком, но это настройка действует на весь магазин, т.е. товары либо будут показываться и в категории и сами карточки товаров, либо ни то ни другое.

Как обойти это ограничение?
Есть несколько способов, но нет совершенного. Один вы уже написали - правка макета категории, но это плохой подход, т.к. нарушаются счетчики и пагинация.
Другой вариант - внести хак , поправив SQL-запрос на выборку товаров категории таким образом, чтобы товары с нулевым остатком не выбирались. Но хак есть хак.
Третий вариант - вынести опцию остатков в фильтр по параметрам, связать реальные остатки с опцией фильтра, показывать в категории все товары, но позволить пользователям фильтровать по наличию.
И, наконец, четвертый вариант - настроить сортировку товаров по наличию, чтобы в категории сначала показывались все товары с остатком, а только потом без него.

В практике приходилось обычно применять 3й и 4й варианты.

Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.

2 мес. 1 нед. назад #8766 от blik
Спасибо.
А подробнее можно описать любой из вариантов? Чтобы это внедрить на сайт

Пожалуйста Войдите или Зарегистрируйтесь, чтобы присоединиться к беседе.


Вверх