mills
@mills

Удаление товара из существующего заказа без редактирования скидок других товаров заказа, как?

Всем привет!
Подскажите, пожалуйста, вот я удаляю товар из существующего заказа, но при удалении пропадают скидки на другие товары в заказе. Скидки пропадают, скорей всего из за того что в правилах корзины их нет...
Как то можно сделать что бы удалял только указанный товар и не редактировал другие, а так же делал перерасчет суммы?

use Bitrix\Sale;

$order = Sale\Order::load($orderId);
$basket = Sale\Order::load($orderId)->getBasket();

foreach ($basket as $basketItem) {
   if ($basketItem->getField('PRODUCT_XML_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();


Так же есть вопрос, скиньте, пожалуйста, на документацию как ДОБАВЛЯТЬ существующий товар в существующий заказ, или может у кого наработка есть, было бы круто, если бы поделились кодом.
Делаю все это для изменения заказа из 1с.
  • Вопрос задан
  • 114 просмотров
Решения вопроса 1
mills
@mills Автор вопроса
По моему вопросы вариант:
Создать правило корзины для товаров добавляемых и тут же удалять так как на будущее они не нужны.
В моем случае, я создаю скидки товаров которые передаются из 1с, далее удаляю все из заказа и добавляю товые товары в заказ уже со скидками которые в правилах для корзины а потом уже удаляю все правила которые созданные.
Работает не плохо.
Если кому интересно, пишите, покажу что написал для этого.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы