Часто бывает, что у товаров в 1С не проставляют цены или забывают либо цена еще не утвержден, особенно с товарными предложениями.
В итоге после синхронизации 1С с интернет-магазином мы получаем товары у которых нет цен, но они есть на складе, у некоторых предложений есть цены, у других.
Убираем с вывода в каталоге товары, в том числе с торговыми предложениями, которые есть на складе, но без цен.
Вставляем код перед вызовом компонента bitrix:catalog:
<?php
// ID инфоблока торговых предложений
$OFFERS_IBLOCK_ID = 26;
// Фильтр по SKU с ценой и количеством
$arOfferFilter = [
"ACTIVE" => "Y",
"IBLOCK_ID" => $OFFERS_IBLOCK_ID,
">CATALOG_QUANTITY" => 0,
">CATALOG_PRICE_3" => 0 // ID цены
];
$validProductIDs = [];
$res = CIBlockElement::GetList([], $arOfferFilter, false, false, ["ID", "PROPERTY_CML2_LINK"]);
while ($offer = $res->Fetch()) {
$validProductIDs[] = $offer["PROPERTY_CML2_LINK_VALUE"];
}
// Основной фильтр для компонента
$GLOBALS['arrFilter'] = [
"ID" => array_unique($validProductIDs),
"ACTIVE" => "Y"
];
?>
Количество просмотров: 4