Найти торговые предложения зная ID товара не так уж и сложно. А что если стоит обратная задача, и где это вообще может пригодится?
Как в битриксе зная ID SKU узнать ID родительского товара
Столкнулся с такой задачей, когда нужно было в попапе показывать краткую информацию о товаре, которую принято называть “быстрый просмотр”. А “быстрый просмотр” был адаптирован для определенного IBLOCK_ID (id информационного блока), и поэтому, когда передавался через цикл ID торгового предложения, информация не отображалась.
На помощь пришел данный метод – CCatalogSku::GetProductInfo:
$intElementID = 100; // ID предложения $mxResult = CCatalogSku::GetProductInfo( $intElementID ); if (is_array($mxResult)) { echo 'ID товара = '.$mxResult['ID']; } else { ShowError('Это не торговое предложение'); }
Немного улучшим код, а также его читаемость, т.к. пример из документации не самый презентабельный 🙂
$ElementID = 100; // ID предложения $mxResult = CCatalogSku::GetProductInfo($ElementID); if (is_array($mxResult)) { $PRODUCT_ID = $mxResult['ID']; // ID товара родителя } else { $PRODUCT_ID = $ElementID; // если не нашло, запишет ID торгового предложения }
Если у вас возникла ошибка, не забывайте подключать модуль каталога:
<?CModule::IncludeModule("catalog");?>
либо же, писать в условии:
<?if (CModule::IncludeModule("catalog")):?> // Код <?endif;?>
Надеюсь данный код помог решить вашу проблему 🙂