Добрый вечер!
Нужно удалить из существующего заказа товар.
Делаю так:
Код |
---|
use Bitrix\Sale;
$orderId=692;
$order = Sale\Order::load($orderId);
$basket = Sale\Order::load($orderId)->getBasket();
$PRODUCT_ID=87567;
foreach ($basket as $basketItem) {
if ($basketItem->getField('PRODUCT_ID')==$PRODUCT_ID) {
$zapID = $basketItem->getField('ID');
$basket->getItemById($zapID)->delete();
}//endif
}//endforeach
$basket->save();
$order->refreshData();
$discount = $order->getDiscount();
\Bitrix\Sale\DiscountCouponsManager::clearApply(true);
\Bitrix\Sale\DiscountCouponsManager::useSavedCouponsForApply(true);
$discount->setOrderRefresh(true);
$discount->setApplyResult(array());
$discount->calculate();
$order->doFinalAction(true);
$result = $order->save(); |
Товары удаляются из заказа, Сумма заказа остается прежней (как будто товары на месте), заказ не могу изменить или удалить ни из админки, ни средствами апи - ошибка:
Цитата |
---|
[Bitrix\Main\ObjectNotFoundException] Entity "BasketItem" not found (510) |
Подскажите в чем я ошибся при написании кода??? И как удалить испорченные заказы теперь?В $result = $order->save(); есть такое
Цитата |
---|
string(73) "Отсутствует связанная с элементом отгрузки #1289 позиция в корзине #2848." |
Неверная сумма заказа остается и отображается в $order->getPrice();