Всем привет.
Не могу понять как добавить товар со своей ценой?
Я пишу так:
AddEventHandler('sale', 'OnSaleBasketItemRefreshData', 'BeforeBasketAddHandler');
function BeforeBasketAddHandler($BasketItem): void
{
$BasketItem->setField("PRODUCT_PROVIDER_CLASS", \App\CatalogProductProvider::class);
}
use Bitrix\Sale\Result;
class CatalogProductProvider extends \Bitrix\Catalog\Product\CatalogProvider
{
public function getProductData(array $products): \Bitrix\Sale\Result
{
$result = parent::getProductData($products);
$data = $result->getData();
$key = array_keys($product['PRICE_LIST'])[0];
$product['PRICE_LIST'][$key]['BASE_PRICE'] = (float)1000;
$product['PRICE_LIST'][$key]['PRICE'] = (float)1000;
$product['PRICE_LIST'][$key]['CUSTOM_PRICE'] = 'Y'; // на всякий
$result->setData($data);
return $result;
}
}
Но цена остается старой. Я пробовал поменять NAME и оно меняется, а вот цена нет. Буд-то после кода цены вытаскиваются еще раз или пересчитываются.