У меня возникла аналогичная проблема при добавлении товара в заказ. Товар добавлял через функционал D7:
Код |
---|
$order = Sale\Order::load($orderID);
$basket = $order->getBasket();
$item = $basket->createItem('catalog', $resultParser['id']);
$item->setFields(array(
'NAME' => $resultParser['name'],
'QUANTITY' => $quantity,
'CURRENCY' => Bitrix\Currency\CurrencyManager::getBaseCurrency(),
'LID' => Bitrix\Main\Context::getCurrent()->getSite(),
'PRICE' => $resultParser['price'],
'CUSTOM_PRICE' => 'Y',
"IGNORE_CALLBACK_FUNC" => "Y"
));
$basket->save();
|
Товар добавлялся с нужной ценой, но в общей сумме заказа игнорировался этот товар. Решил следующим кодом после добавления:
Код |
---|
$order->setField(
"PRICE",
$order->getBasket()->getPrice() + $order->getShipmentCollection()->getPriceDelivery()
);
$order->save(); |