Как добавить свои значения к переменной total.DELIVERY_PRICE в скрипте order_ajax.js в Битриксе?

Почему в функции editTotalBlock не прибавляется 500 к цене доставки total.DELIVERY_PRICE, когда используется console.log(total.DELIVERY_PRICE + 500)?
  • 6 декабря 2023 г. 22:49
Ответы на вопрос 2
Чтобы добавить свои значения к переменной total.DELIVERY_PRICE в скрипте order_ajax.js в Битриксе, вам потребуется изменить код функции editTotalBlock.

Внутри функции editTotalBlock вы можете найти блок кода, которые изменяет отображение цены доставки:

```javascript
if (BX.type.isNotEmptyString(total.DELIVERY_PRICE_FORMATED)) {
    deliveryPrice.innerHTML = total.DELIVERY_PRICE_FORMATED;
} else {
    deliveryPrice.innerHTML = total.DELIVERY_PRICE;
}
```

Чтобы добавить 500 к цене доставки, можно изменить этот блок кода на следующий:

```javascript
if (BX.type.isNotEmptyString(total.DELIVERY_PRICE_FORMATED)) {
    // Парсим строку с ценой доставки в число
    var deliveryPriceValue = parseFloat(total.DELIVERY_PRICE);

    // Добавляем 500 к цене доставки
    deliveryPriceValue += 500;

    // Отображаем новую цену доставки
    deliveryPrice.innerHTML = deliveryPriceValue.toFixed(2); // Округляем до двух знаков после запятой
} else {
    deliveryPrice.innerHTML = total.DELIVERY_PRICE;
}
```

Теперь, когда используется console.log(total.DELIVERY_PRICE + 500), результат не прибавляется к цене доставки, потому что данный код выполняется в контексте консоли браузера, а не внутри функции editTotalBlock. Вместо этого, вам следует использовать предложенный выше код, чтобы правильно изменить цену доставки.
Не все так просто. Нельзя просто в js поменять цену и чтоб она попала в заказ. Цена формируется в php компонента, в js она только выводится. Копайте в сторону событий заказа, в обработчиках можно цену менять.
Похожие вопросы