Разработка - Сообщения с тегом "интернет-магазин"

  • Архив

    «   Июль 2025   »
    Пн Вт Ср Чт Пт Сб Вс
      1 2 3 4 5 6
    7 8 9 10 11 12 13
    14 15 16 17 18 19 20
    21 22 23 24 25 26 27
    28 29 30 31      

Как отключить скидку/наценку на заказ уже после оформления?

Долго искал решение, в итоге помогла техподдержка Битрикс. Привожу их ответ здесь, может кому тоже пригодится:

Для решения вашей задачи, вы можете использовать метод "setApplyResult" (https://dev.1c-bitrix.ru/api_d7/bitrix/sale/classes/discount/setapplyresult.php), который позволяет указать, какие из выбранных скидок и правил исключить из расчета.
CModule::IncludeModule("sale");
$order = Bitrix\Sale\Order::load(145); // 145 - id заказа
$discount=$order->getDiscount();
$discount->setApplyResult(array(
'DISCOUNT_LIST' =>
array (
"42" => 'N', // 42 - ID скидки из таблицы b_sale_order_discount
)
));
$discount->calculate();
$order->save();