Блог Горошко Андрея 1C-Битрикс,Bitrix24 Обновить услугу службы доставки sale.delivery.extra.service.update

Обновить услугу службы доставки sale.delivery.extra.service.update

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Обновить услугу службы доставки sale.delivery.extra.service.update». Вы узнаете экспертные методики работы с sale.delivery.extra.service.update и научитесь избегать типичных ошибок начинающих разработчиков.

Обновить услугу службы доставки sale.delivery.extra.service.update

> Scope: sale, delivery
>
> Кто может выполнять метод: администратор

Метод обновляет услугу службы доставки.

Параметры метода

Название
тип
Описание
ID
sale_delivery_extra_service.ID
Идентификатор услуги.

Получить идентификаторы услуг службы доставки можно с помощью метода sale.delivery.extra.service.get

NAME
string
Название услуги
ACTIVE
string
Индикатор активности услуги. Возможные значения:
— Y — да
— N — нет
CODE
string
Символьный код услуги
SORT
integer
Сортировка
DESCRIPTION
string
Описание услуги
PRICE
double
Стоимость услуги в валюте службы доставки.

Поле актуально только для услуг типа единичная услуга (checkbox) и количественная услуга (quantity)

ITEMS
object[]
Список доступных для выбора опций (подробное описание приведено ниже).

Поле актуально только для услуг типа список (enum)

Параметр ITEMS

Название
тип
Описание
TITLE
string
Название опции списка
CODE*
string
Символьный код опции списка
PRICE
double
Стоимость услуги при выборе данной опции в валюте службы доставки

Примеры кода

Обновление услуги с типом Количественная услуга:

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"ID":128,"ACTIVE":"N","CODE":"door_delivery","NAME":"Door Delivery New Name","DESCRIPTION":"Door Delivery New Description","SORT":200,"PRICE":399.99}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/sale.delivery.extra.service.update
  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"ID":128,"ACTIVE":"N","CODE":"door_delivery","NAME":"Door Delivery New Name","DESCRIPTION":"Door Delivery New Description","SORT":200,"PRICE":399.99,"auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/sale.delivery.extra.service.update
  • JS
    try
    {
    	const response = await $b24.callMethod(
    		'sale.delivery.extra.service.update', {
    			ID: 128,
    			ACTIVE: "N",
    			CODE: "door_delivery",
    			NAME: "Door Delivery New Name",
    			DESCRIPTION: "Door Delivery New Description",
    			SORT: 200,
    			PRICE: 399.99,
    		}
    	);
    	
    	const result = response.getData().result;
    	console.info(result);
    }
    catch( error )
    {
    	console.error(error);
    }
  • PHP
    try {
        $response = $b24Service
            ->core
            ->call(
                'sale.delivery.extra.service.update',
                [
                    'ID'          => 128,
                    'ACTIVE'      => "N",
                    'CODE'        => "door_delivery",
                    'NAME'        => "Door Delivery New Name",
                    'DESCRIPTION' => "Door Delivery New Description",
                    'SORT'        => 200,
                    'PRICE'       => 399.99,
                ]
            );
    
        $result = $response
            ->getResponseData()
            ->getResult();
    
        echo 'Success: ' . print_r($result, true);
        // Нужная вам логика обработки данных
        processData($result);
    
    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Error updating delivery service: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod(
        'sale.delivery.extra.service.update', {
            ID: 128,
            ACTIVE: "N",
            CODE: "door_delivery",
            NAME: "Door Delivery New Name",
            DESCRIPTION: "Door Delivery New Description",
            SORT: 200,
            PRICE: 399.99,
        },
        function(result) {
            if (result.error()) {
                console.error(result.error());
            } else {
                console.info(result.data());
            }
        }
    );
  • PHP CRest
    require_once('crest.php');

    $result = CRest::call(
        'sale.delivery.extra.service.update',
        [
            'ID' => 128,
            'ACTIVE' => "N",
            'CODE' => "door_delivery",
            'NAME' => "Door Delivery New Name",
            'DESCRIPTION' => "Door Delivery New Description",
            'SORT' => 200,
            'PRICE' => 399.99,
        ]
    );

    echo '<PRE>';
    print_r($result);
    echo '</PRE>';

Обновление услуги с типом Список:

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"ID":129,"ACTIVE":"N","CODE":"cargo_type","NAME":"Cargo Type New Name","DESCRIPTION":"Cargo Type New Description","TYPE":"enum","SORT":500,"ITEMS":[{"TITLE":"Small Package(s)","CODE":"small_package","PRICE":129.99},{"TITLE":"Documents","CODE":"documents","PRICE":69.99},{"TITLE":"Large Package(s)","CODE":"large_package","PRICE":1290.99}]}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/sale.delivery.extra.service.update
  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"ID":129,"ACTIVE":"N","CODE":"cargo_type","NAME":"Cargo Type New Name","DESCRIPTION":"Cargo Type New Description","TYPE":"enum","SORT":500,"ITEMS":[{"TITLE":"Small Package(s)","CODE":"small_package","PRICE":129.99},{"TITLE":"Documents","CODE":"documents","PRICE":69.99},{"TITLE":"Large Package(s)","CODE":"large_package","PRICE":1290.99}],"auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/sale.delivery.extra.service.update
  • JS
    try
    {
    	const response = await $b24.callMethod(
    		'sale.delivery.extra.service.update', {
    			ID: 129,
    			ACTIVE: "N",
    			CODE: "cargo_type",
    			NAME: "Cargo Type New Name",
    			DESCRIPTION: "Cargo Type New Description",
    			TYPE: "enum",
    			SORT: 500,
    			ITEMS: [{
    					TITLE: "Small Package(s)",
    					CODE: "small_package",
    					PRICE: 129.99,
    				},
    				{
    					TITLE: "Documents",
    					CODE: "documents",
    					PRICE: 69.99,
    				},
    				{
    					TITLE: "Large Package(s)",
    					CODE: "large_package",
    					PRICE: 1290.99,
    				},
    			],
    		}
    	);
    	
    	const result = response.getData().result;
    	console.info(result);
    }
    catch( error )
    {
    	console.error(error);
    }
  • PHP
    try {
        $response = $b24Service
            ->core
            ->call(
                'sale.delivery.extra.service.update',
                [
                    'ID'          => 129,
                    'ACTIVE'      => "N",
                    'CODE'        => "cargo_type",
                    'NAME'        => "Cargo Type New Name",
                    'DESCRIPTION' => "Cargo Type New Description",
                    'TYPE'        => "enum",
                    'SORT'        => 500,
                    'ITEMS'       => [
                        [
                            'TITLE' => "Small Package(s)",
                            'CODE'  => "small_package",
                            'PRICE' => 129.99,
                        ],
                        [
                            'TITLE' => "Documents",
                            'CODE'  => "documents",
                            'PRICE' => 69.99,
                        ],
                        [
                            'TITLE' => "Large Package(s)",
                            'CODE'  => "large_package",
                            'PRICE' => 1290.99,
                        ],
                    ],
                ]
            );
    
        $result = $response
            ->getResponseData()
            ->getResult();
    
        echo 'Success: ' . print_r($result, true);
    
    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Error updating delivery extra service: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod(
        'sale.delivery.extra.service.update', {
            ID: 129,
            ACTIVE: "N",
            CODE: "cargo_type",
            NAME: "Cargo Type New Name",
            DESCRIPTION: "Cargo Type New Description",
            TYPE: "enum",
            SORT: 500,
            ITEMS: [{
                    TITLE: "Small Package(s)",
                    CODE: "small_package",
                    PRICE: 129.99,
                },
                {
                    TITLE: "Documents",
                    CODE: "documents",
                    PRICE: 69.99,
                },
                {
                    TITLE: "Large Package(s)",
                    CODE: "large_package",
                    PRICE: 1290.99,
                },
            ],
        },
        function(result) {
            if (result.error()) {
                console.error(result.error());
            } else {
                console.info(result.data());
            }
        }
    );
  • PHP CRest
    require_once('crest.php');

    $result = CRest::call(
        'sale.delivery.extra.service.update',
        [
            'ID' => 129,
            'ACTIVE' => "N",
            'CODE' => "cargo_type",
            'NAME' => "Cargo Type New Name",
            'DESCRIPTION' => "Cargo Type New Description",
            'TYPE' => "enum",
            'SORT' => 500,
            'ITEMS' => [
                [
                    'TITLE' => "Small Package(s)",
                    'CODE' => "small_package",
                    'PRICE' => 129.99,
                ],
                [
                    'TITLE' => "Documents",
                    'CODE' => "documents",
                    'PRICE' => 69.99,
                ],
                [
                    'TITLE' => "Large Package(s)",
                    'CODE' => "large_package",
                    'PRICE' => 1290.99,
                ],
            ]
        ]
    );

    echo '<PRE>';
    print_r($result);
    echo '</PRE>';

Обработка ответа

HTTP-статус: 200

{
   "result":true,
   "time":{
      "start":1714549724.272976,
      "finish":1714549724.479944,
      "duration":0.20696806907653809,
      "processing":0.02615499496459961,
      "date_start":"2024-05-01T10:48:44+03:00",
      "date_finish":"2024-05-01T10:48:44+03:00"
   }
}

Возвращаемые данные

Название
тип
Описание
result
boolean
Результат обновления услуги
time
time
Информация о времени выполнения запроса

Обработка ошибок

HTTP-статус: 400, 403

{
   "error":"ERROR_EXTRA_SERVICE_NOT_FOUND",
   "error_description":"Extra service not found"
}

Возможные коды ошибок

КодОписаниеСтатус
ERROR_CHECK_FAILUREОшибка валидации входящих параметров (детали в описании ошибки)400
ERROR_EXTRA_SERVICE_UPDATEОшибка при попытке обновления услуги400
ERROR_EXTRA_SERVICE_NOT_FOUNDУслуга с указанным идентификатором (ID) не найдена400
ACCESS_DENIEDНедостаточно прав для добавления услуги403
  • [](./sale-delivery-extra-service-add)
  • [](./sale-delivery-extra-service-get)
  • [](./sale-delivery-extra-service-delete)

💡 Экспертное мнение и рекомендации

Практические рекомендации:

  • При написании кастомных компонентов для «Обновить услугу службы доставки sale.delivery.extra.service.update» всегда разделяйте бизнес-логику и представление (шаблон).
  • Используйте отладку SQL-запросов через конструкцию $wpdb->last_query или стандартный трекер Битрикса, чтобы контролировать нагрузку.

Похожая задача в бизнесе?

Помогу автоматизировать процессы и внедрить ИИ

Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.

Related Post

Настройка модуля «Задачи и Проекты» в Битрикс24 с диаграммой Ганта и шаблонамиНастройка модуля «Задачи и Проекты» в Битрикс24 с диаграммой Ганта и шаблонами

Профессиональная настройка и комплексная автоматизация Битрикс24 CRM позволяет выстроить прозрачный отдел продаж, исключить потерю обращений и автоматизировать рутинный документооборот компании. Услуга «Настройка модуля «Задачи и Проекты» в Битрикс24 с диаграммой

Разработка интернет-магазина оптики, солнцезащитных очков и контактных линз на 1С-БитриксРазработка интернет-магазина оптики, солнцезащитных очков и контактных линз на 1С-Битрикс

Создание современного интернет-магазина по направлению «оптики, солнцезащитных очков и контактных линз» на платформе 1С-Битрикс позволяет автоматизировать продажи, обеспечить высокую конверсию и бесшовную интеграцию с учетными системами. В этой нише решающее

Удалить задачу task.item.deleteУдалить задачу task.item.delete

Оптимизация производительности и безопасности — залог успешного проекта на 1С-Битрикс. Данный материал посвящен практическому применению «Удалить задачу task.item.delete». Мы подготовили подробный разбор принципов работы и развернутые примеры интеграции. Удалить задачу