Задача сводится опять же к выводу новой позиции в корзине после добавления ее в событии, этого не происходит.
Генерирую событие увеличением количества товара в корзине, событие отрабатывает, но в корзине нового товара не видно.
Видно только после обновления страницы, а должно быть сразу видно.
use Bitrix\Main;
Main\EventManager::getInstance()->addEventHandler(
'sale',
'OnSaleBasketBeforeSaved',
'OnSaleBasketBeforeSavedHandler'
);
function OnSaleBasketBeforeSavedHandler(Main\Event $event) {
global $logfile, $USER;
$basket = $event->getParameter("ENTITY");
if( $USER->IsAdmin() ){
$newProductId = 401;
//добавить новую запись с $newProductId
$newBasketItem = $basket->createItem('catalog', $newProductId);
$newBasketItem->setFields(array(
'QUANTITY' => 1,
'CURRENCY' => \Bitrix\Currency\CurrencyManager::getBaseCurrency(),
'LID' => SITE_ID,
'PRODUCT_PROVIDER_CLASS' =>\Bitrix\Catalog\Product\Basket::getDefaultProviderName(),
));
}
}
Генерирую событие увеличением количества товара в корзине, событие отрабатывает, но в корзине нового товара не видно.
Видно только после обновления страницы, а должно быть сразу видно.
use Bitrix\Main;
Main\EventManager::getInstance()->addEventHandler(
'sale',
'OnSaleBasketBeforeSaved',
'OnSaleBasketBeforeSavedHandler'
);
function OnSaleBasketBeforeSavedHandler(Main\Event $event) {
global $logfile, $USER;
$basket = $event->getParameter("ENTITY");
if( $USER->IsAdmin() ){
$newProductId = 401;
//добавить новую запись с $newProductId
$newBasketItem = $basket->createItem('catalog', $newProductId);
$newBasketItem->setFields(array(
'QUANTITY' => 1,
'CURRENCY' => \Bitrix\Currency\CurrencyManager::getBaseCurrency(),
'LID' => SITE_ID,
'PRODUCT_PROVIDER_CLASS' =>\Bitrix\Catalog\Product\Basket::getDefaultProviderName(),
));
}
}