Если вдруг что... Ибо тоже помучился с этим.
Заместо метода CCatalogDiscount::GetDiscountByPrice заюзал CCatalogDiscount::GetDiscountByProduct.
Только у меня почему-то в параметры SITE_ID приходил как "ru". Где и почему оно так делалось лень разбираться, заменил ручками SITE_ID на нормальный ID сайта и оно заработало.
Заместо метода CCatalogDiscount::GetDiscountByPrice заюзал CCatalogDiscount::GetDiscountByProduct.
Только у меня почему-то в параметры SITE_ID приходил как "ru". Где и почему оно так делалось лень разбираться, заменил ручками SITE_ID на нормальный ID сайта и оно заработало.