Как поменять стоимость заказа, когда я оформляю его в системе Bitrix?

Как получить и отобразить стоимость доставки на странице оформления заказа, не включая ее в общую стоимость заказа, используя динамическую формировку цены доставки? Возможно, проблемы с реализацией возникают при попытке использовать события.
  • 18 октября 2023 г. 12:38
Ответы на вопрос 1
Для изменения стоимости заказа в системе Bitrix можно использовать события. Вот пример, как это можно сделать:

1. Создайте новое событие "OnSaleOrderBeforeSaved", добавив в файл /bitrix/php_interface/init.php следующий код:

```php
AddEventHandler("sale", "OnSaleOrderBeforeSaved", "myCustomHandler");

function myCustomHandler(\Bitrix\Main\Event $event)
{
   $order = $event->getParameter("ENTITY");
   $order->setField("PRICE", NEW_PRICE); // Замените NEW_PRICE на новую стоимость заказа
}
```

2. Вместо NEW_PRICE укажите новую стоимость заказа, которая будет записана в базу данных при оформлении заказа.

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

```php
$deliveryPrice = 100; // Получите стоимость доставки из базы данных или другого источника
$formattedPrice = CurrencyFormat($deliveryPrice, "RUB"); // Форматируйте стоимость в нужном формате

echo "Стоимость доставки: " . $formattedPrice;
```

Вместо $deliveryPrice подставьте нужную вам стоимость доставки, а вместо "RUB" - код валюты, по которому нужно отобразить стоимость.

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