Битрикс как узнать ID товара по ID торгового предложения

Найти торговые предложения зная 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;?>

Надеюсь данный код помог решить вашу проблему 🙂

Если вам необходимо выполнить доработки по вашему проекту, шаблону или компоненту - обращайтесь ко мне за помощью

автор: Dmitriy

З 2011 року займаюся веб-розробкою. Зараз я – PHP Full Stack Developer.
Обговорити ваш проект, а також дізнатися більше про мене ви можете на цьому сайті:
dev.forwww.com

Email: dmitriyribka@gmail.com

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

#SaveUkraine