срабатывают callback, нужно в Add2BasketByProductID 3 параметром передать
$arRewriteFields = array(
'CALLBACK_FUNC' => '',
'ORDER_CALLBACK_FUNC' => '',
'CANCEL_CALLBACK_FUNC' => '',
'PAY_CALLBACK_FUNC' => '',
'PRODUCT_PROVIDER_CLASS' => '',
);
но при такой раскладке не будет пересчитывать цена в корзине и проверка остатков в админке, если параметры в карточке изменились
или другой вариант, написать свой класс, который наследуется от PRODUCT_PROVIDER_CLASS (
https://dev.1c-bitrix.ru/api_help/catalog/classes/... и указать его в $arRewriteFields['PRODUCT_PROVIDER_CLASS']