Для удаления купона в уже оформленном заказе в 1C-Bitrix необходимо выполнить следующие шаги:
1. Получить данные о заказе:
Перед удалением купона, нам необходимо получить информацию о заказе, в котором нужно удалить купон. Для этого используется функция CSaleOrder::GetByID
, которая принимает в качестве аргумента идентификатор заказа и возвращает массив с данными о заказе. Например:
$orderId = 123; // ID заказа $order = CSaleOrder::GetByID($orderId);
В массиве $order
будут содержаться все данные о заказе, включая информацию о примененных купонах.
2. Удалить купон из заказа:
Для удаления купона из заказа необходимо обновить поле DISCOUNT_VALUE
таблицы b_sale_order
для соответствующего заказа. Значение данного поля должно быть установлено в null
. Например:
$orderId = 123; // ID заказа $orderFields = array( "DISCOUNT_VALUE" => null ); CSaleOrder::Update($orderId, $orderFields);
После выполнения данного кода, примененный купон будет удален из заказа.
3. Опционально: обновить информацию о стоимости заказа:
Если вы хотите обновить информацию о стоимости заказа после удаления купона (например, для пересчета суммы к оплате), то необходимо вызвать метод CSaleOrder::Update
с соответствующими значениями для полей PRICE
, DISCOUNT_VALUE
, PRICE_DELIVERY
, SUM_PAID
, SUM_UNPAID
. Например:
$orderId = 123; // ID заказа $orderFields = array( "PRICE" => 1000, // новая цена заказа "DISCOUNT_VALUE" => null, // удаление купона "PRICE_DELIVERY" => 100, // новая стоимость доставки "SUM_PAID" => 500, // сумма уже оплаченного "SUM_UNPAID" => 600 // сумма оставшегося к оплате ); CSaleOrder::Update($orderId, $orderFields);
Эти шаги позволят вам удалить купон из уже оформленного заказа в 1C-Bitrix.