Было бы не плохо добавить последний параметр:
function Add2BasketByProductID(
$PRODUCT_ID,
$QUANTITY = 1,
$arRewriteFields = array(),
$arProductParams = false,
$arFilterToCheckElementExistsRewrite = array()
)
и использовать его для проверки существования элемента перед выбросом исключения:
"NO_IBLOCK_ELEMENT".
Сейчас для этой проверки используется жесткий фильтр:
array(
"ID" => $PRODUCT_ID,
"ACTIVE" => "Y",
"ACTIVE_DATE" => "Y",
"CHECK_PERMISSIONS" => "Y",
"MIN_PERMISSION" => "R",
)
Довеской кроме ID хочется управлять.
UPD Как я понял смысл минуса:
нецелесообразно. Хотите изменить - копируете функцию и меняете