При создании заказа в событии OnSaleOrderBeforeSaved мне необходимо изменить состав корзины, например удалить некоторые товары следующим образом:
В системе созданы правила уменьшающие и увеличивающие стоимость доставки в зависимости от товаров в заказе.
До удаления товаров были применены некоторые правила работы с корзиной. После удаления товаров правила не изменились, а мне необходимо, чтобы на основании измененной корзины были обновлены правила.
Отсюда вопрос - как для заказа, при программном изменении корзины, производить обновление применяемых правил к заказу.
Код |
---|
$mainBasket = $mainOrder->getBasket(); foreach ($mainBasket as $mainBasketItem) { $prodId = $mainBasketItem->getProductId(); if (in_array($prodId, $productsIds)) { $mainBasketItem->delete(); } } |
До удаления товаров были применены некоторые правила работы с корзиной. После удаления товаров правила не изменились, а мне необходимо, чтобы на основании измененной корзины были обновлены правила.
Отсюда вопрос - как для заказа, при программном изменении корзины, производить обновление применяемых правил к заказу.