После перехода с php 5.6 на php 7.0 и обновления - поломалось применение скидок по промокоду - они теперь применяются с 0%,
но если их применять вручную из админки то все ок. Вот сломанный механизм применения из кода:[CODE]function applyPromoCodeToOrder2 ($promoCodeValue, $orderId)
{
if (!is_null($promoCodeValue)) {
$order = \Bitrix\Sale\Order::load($orderId);
\Bitrix\Sale\DiscountCouponsManager::init(\Bitrix\Sale\DiscountCouponsManager::MODE_ORDER, ["userId" => $order->getUserId(),"orderId" => $order->getId()]);
if (\Bitrix\Sale\DiscountCouponsManager::isExist($promoCodeValue)) {
\Bitrix\Sale\DiscountCouponsManager::add($promoCodeValue);
$discounts = $order->getDiscount();
\Bitrix\Sale\DiscountCouponsManager::clearApply(true);
\Bitrix\Sale\DiscountCouponsManager::useSavedCouponsForApply(true);
$discounts->setOrderRefresh(true);
$discounts->setApplyResult(array());
/** @var \Bitrix\Sale\Basket $basket */
if (!($basket = $order->getBasket())) {
throw new \Bitrix\Main\ObjectNotFoundException('Entity "Basket" not found');
}
$discounts->calculate();
$basket->refreshData(array('PRICE', 'COUPONS'));
$order->doFinalAction();
$order->save();
}
}
}
...
$result = $order->save(); //сохраняем заказ в базе
applyPromoCodeToOrder2(getRequestMy('PROMO_CODE'), $order->GetId()); //применяем скидку к сохраненному заказу
...[/CODE]Подскажите пожалуйста как все-таки применить скидку по промокоду.