Нюансы CSaleBasket::Add

Потратил много времени, что бы понять, почему не работают скидки. 
Оказалось всё просто - при добавлении товара в корзину методом CSaleBasket::Add обязательно нужно указывать параметры:
"MODULE" => "catalog",
"PRODUCT_PROVIDER_CLASS" => "CCatalogProductProvider",

Без них не будут применяться правила работы с корзиной. 
Печально, что в документации к методу об этом ничего не сказано. 
И... так и не понял зачем так сделано - не считать скидку без именно таких параметров.