| Цитата |
|---|
Dmitry Sirotin пишет: А каким образом Вы их скрываете? Возможно, если деактивировать позиции с нулевыми остатками, не будет проблем с фильтром и постраничной навигацией. |
Примерно вот таким условием, в catalog:section
| Код |
|---|
$ID = $arElement['ID'];
$arInfo = CCatalogSKU::GetInfoByOfferIBlock(5);
if (is_array($arInfo)){
$rsOffers = CIBlockElement::GetList(array(),array('IBLOCK_ID' => 5, 'PROPERTY_'.$arInfo['SKU_PROPERTY_ID'] => $ID));
while($arOffer = $rsOffers->GetNext()){
$ar_res = CCatalogProduct::GetByID($arOffer['ID']);
$arElement['CATALOG_QUANTITY']+=$ar_res['QUANTITY'];
}
}
if (($arElement['CATALOG_QUANTITY']) || ($GLOBALS['SHOW_EMPTY_GOODS'])):
|
Разумеется, в фильтре можно отфильтровать похожим образом и производителей, однако, постраничная навигация всерьёз думает, что товаров больше (т.к. некоторые просто не выводятся) и получаются полупустые страницы.
Ручная деактивация позиций - вариант, однако, это очень плохо скажется на SEO (т.к. в таком случае они не будут доступны по прямой ссылке и такой страницы не будет существовать), да и зачем вручную всё это перелопачивать, у нас же замечательный битрикс, в котором всё работает из коробки (на самом деле далеко не всё и этот случай - наглядное тому подтверждение) :)
Проще, наверное, выключать количественный учёт у товаров с торговыми предложениями, но это опять-таки бред какой-то, получается, что эта функция просто не работает. Наверняка есть какой-то другой способ скрывать товары.