Цитата |
---|
Дмитрий Буров написал: В новой корзине в массиве $arResult['APPLIED_DISCOUNT_LIST'] содержатся скидки примененные в корзине (вот только точное отношение к какому товару/ам они принадлежат видимо пока не доделали, т.к. в BASKET, пусто(кроме подарка)). |
Внутри result_modifier.php для sale.basket.basket можно получить те же данные что и в OnSaleComponentOrderResultPrepared:
Код |
---|
/** @var \Bitrix\Sale\BasketBase $basket */ $basket = (\Bitrix\Sale\Basket\Storage::getInstance( \Bitrix\Sale\Fuser::getId(), \Bitrix\Main\Context::getCurrent()->getSite())) ->getOrderableBasket(); $order = $basket->getOrder(); $discountApplyResults = $order->getDiscount()->getApplyResult(false); // c false немного больше данных будет, но если не нужно, то можно true передать |
Важно: работает именно внутри компонента корзины (т.к. данные там заполняются, а мы берем тот же инстанс просто), в остальных местах не гарантируется.
Можно пойти дальше и через событие OnInitRegistryList задать свой класс вместо \Bitrix\Sale\Basket (наследника), может что из этого выйдет удобное еще, но для решения данной задачи, мне кажется, излишне будет уже.