Задать вопрос
WebDev2030
@WebDev2030
Битриксоид до мозга и костей

Как добавить в корзину товар со своей ценой?

Всем привет.
Не могу понять как добавить товар со своей ценой?

Я пишу так:
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 и оно меняется, а вот цена нет. Буд-то после кода цены вытаскиваются еще раз или пересчитываются.
  • Вопрос задан
  • 16 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы