Как в Битрикс получить id торгового предложения по внешнему коду этого торгового предложения?

Для получения id торгового предложения по его внешнему коду в Битриксе, можно воспользоваться специальным методом, предоставляемым самим Битриксом - CIBlockElement::GetList.

Ниже представлен пример кода на языке PHP, который иллюстрирует, как это можно сделать:

$externalCode = "Внешний_код_торгового_предложения";

$elementFilter = array(
    'IBLOCK_ID' => ТУТ_ID_ИНФОБЛОКА, // Замените на реальный ID инфоблока
    'EXTERNAL_ID' => $externalCode,
);

$elementSelect = array(
    'ID'
);

$elementResult = CIBlockElement::GetList([], $elementFilter, false, false, $elementSelect);
if ($element = $elementResult->GetNext()) {
    $offerId = $element['ID'];
    // Используйте $offerId для дальнейших операций
} else {
    // Обработка ситуации, когда торговое предложение с указанным внешним кодом не найдено
}

Обратите внимание, что в приведенном коде вы должны заменить ТУТ_ID_ИНФОБЛОКА на реальный ID инфоблока, в котором находятся торговые предложения. Также, замените "Внешний_код_торгового_предложения" на нужный вам внешний код торгового предложения.

Вы можете выполнить дополнительные настройки фильтра или выборки, добавив нужные поля в elementFilter и elementSelect соответственно.

После выполнения кода, вы получите значение переменной $offerId, которая будет содержать id торгового предложения с указанным внешним кодом.