Инструкция верная
В init.php
1. Наследуете свой Provider
class CCatalogProductProviderCustom extends CCatalogProductProvider
{
public static function GetProductData($arParams)
{
//Чтобы не переписывать всю логику наследуемся от родителя
$arResult = parent::GetProductData($arParams);
//Ниже описываем свою логику подменяем данные в $arResult
return $arResult;
}
}
2. Также в init.php объявляем свой обработчик цен. Т.е. свой класс "CCatalogProductProviderCustom"
AddEventHandler('sale', 'OnSaleBasketItemRefreshData', 'BeforeBasketAddHandler');
function BeforeBasketAddHandler($BasketItem)
{
$BasketItem->setField("PRODUCT_PROVIDER_CLASS", "CCatalogProductProviderCustom");
}
3. Удаляем все товары из корзины и добавляем по новой.