Как добавить к заказу сумму 65 рублей в Битрикс, если выполняется определенное условие?

Как создать функционал, который будет автоматически добавлять к заказу дополнительные 65 рублей за товары с коэффициентом единицы измерения больше 1 штуки, но не более самого коэффициента? Например, если в заказе добавлен товар "Бумага" с коэффициентом 5, то при добавлении 1 штуки товара к общей сумме заказа прибавится 65 рублей, однако если добавить 5 или более единиц товара, дополнительная плата не будет взиматься.
  • 30 марта 2024 г. 0:29
Ответы на вопрос 1
Для добавления к заказу дополнительной суммы в 65 рублей при определенном условии в Битрикс, можно использовать следующий код:

1. Создайте обработчик события "OnSaleBasketItemBeforeSaved" в папке handler/. Создайте файл handler.php

```php
<?php
AddEventHandler("sale", "OnSaleBasketItemBeforeSaved", "AddExtraPrice");

function AddExtraPrice($basketId, &$arFields)
{
    if ($arFields['PRODUCT_ID'] == $YOUR_PRODUCT_ID) {
        $quantity = $arFields['QUANTITY'];

        if ($quantity == 1) {
            $arFields['PRICE'] += 65; // добавляем к цене товара 65 рублей
        }
    }
}
```

2. Замените $YOUR_PRODUCT_ID на ID вашего товара, к которому нужно добавить дополнительную сумму.

3. Поместите файл handler.php в папку handler/ вашего проекта.

Теперь при добавлении 1 единицы товара к заказу, к цене товара автоматически будет добавляться 65 рублей.

Для создания функционала, который будет автоматически добавлять дополнительные 65 рублей за товары с коэффициентом единицы измерения больше 1 штуки, но не более самого коэффициента, можно использовать следующий код:

```php
<?php
AddEventHandler("sale", "OnSaleBasketItemBeforeSaved", "AddExtraPrice");

function AddExtraPrice($basketId, &$arFields)
{
    if ($arFields['PRODUCT_ID'] == $YOUR_PRODUCT_ID) {
        $quantity = $arFields['QUANTITY'];
        $ratio = $arFields['QUANTITY_RATIO'];

        if ($quantity > 1 && $quantity < $ratio) {
            $arFields['PRICE'] += 65 * ($quantity - 1); // добавляем к цене товара (кроме первой единицы) 65 рублей за каждую следующую единицу
        }
    }
}
```

Замените $YOUR_PRODUCT_ID на ID вашего товара.

Теперь при добавлении товара с коэффициентом единицы измерения больше 1 штуки, к цене каждой следующей единицы кроме первой будет автоматически добавляться 65 рублей.
Похожие вопросы