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