@ChertyakaNUB

Как поменять название товара при добавлении товара в корзину?

Привет!
Добавляю товар(по ID торгового приложения) с помощью кода:
$Cart = Sale\Basket::loadItemsForFUser(Sale\Fuser::getId(), Bitrix\Main\Context::getCurrent()->getSite());
$item = $Cart->createItem('catalog', 6667);
					$item->setFields(array(
						'NAME' => 'Новое название - '.$Price,
						'CURRENCY' => 'RUB',
						'NOTES' => $Price,
						'QUANTITY' => 1,
						'LID' => Bitrix\Main\Context::getCurrent()->getSite(),
						'PRICE' => -(int)$Price,
						'CUSTOM_PRICE' => 'Y',
						
					));
					$Cart->save();

После добавления, товар появляется в корзине, цена меняется, но название товара нет.
Как можно изменить название?
  • Вопрос задан
  • 744 просмотра
Решения вопроса 1
@ChertyakaNUB Автор вопроса
Решение: Забыть о Битриксе, как о горе разработке г**но разработчиков из России и пользоваться нормальными фреймворками типа Laravel!
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Logic87
@Logic87
Программист/администратор сайтов на 1С-Битрикс.
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
    'sale',
    'OnSaleBasketItemBeforeSaved',
    'OnSaleBasketItemBeforeSavedHandler'
);

function OnSaleBasketItemBeforeSavedHandler(\Bitrix\Main\Event $event) {
    $basketItem = $event->getParameter('ENTITY');
    $oldValues = $event->getParameter("VALUES");
     //пересохраняем название товара если оно было изменено обработчиком при добавлении в корзину
     if (!empty($oldValues["NAME"])) {
           $basketItem->setField('NAME', $oldValues["NAME"]);
     }
    return new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS);
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы