Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Обновить услугу службы доставки sale.delivery.extra.service.update». Вы узнаете экспертные методики работы с sale.delivery.extra.service.update и научитесь избегать типичных ошибок начинающих разработчиков.
Обновить услугу службы доставки sale.delivery.extra.service.update
> Scope: sale, delivery
>
> Кто может выполнять метод: администратор
Метод обновляет услугу службы доставки.
Параметры метода
Названиетип | Описание |
|---|---|
IDsale_delivery_extra_service.ID | Идентификатор услуги. Получить идентификаторы услуг службы доставки можно с помощью метода sale.delivery.extra.service.get |
NAMEstring | Название услуги |
ACTIVEstring | Индикатор активности услуги. Возможные значения: — Y — да— N — нет |
CODEstring | Символьный код услуги |
SORTinteger | Сортировка |
DESCRIPTIONstring | Описание услуги |
PRICEdouble | Стоимость услуги в валюте службы доставки. Поле актуально только для услуг типа |
ITEMSobject[] | Список доступных для выбора опций (подробное описание приведено ниже). Поле актуально только для услуг типа |
Параметр ITEMS
Названиетип | Описание |
|---|---|
TITLEstring | Название опции списка |
CODE*string | Символьный код опции списка |
PRICEdouble | Стоимость услуги при выборе данной опции в валюте службы доставки |
Примеры кода
Обновление услуги с типом Количественная услуга:
- 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"
}
}Возвращаемые данные
Названиетип | Описание |
|---|---|
resultboolean | Результат обновления услуги |
timetime | Информация о времени выполнения запроса |
Обработка ошибок
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 и создаю умных ИИ-агентов для автоматизации рутины.
или на почту: gorandvas@yandex.ru