Обновить обработчик службы доставки sale.delivery.handler.update
Scope:
saleКто может выполнять метод: администратор CRM
Метод обновляет обработчик службы доставки.
Параметры метода
Обязательные параметры отмечены *
|
Название |
Описание |
|
Идентификатор обработчика службы доставки. |
|
|
NAME |
Название обработчика службы доставки |
|
CODE |
Символьный код обработчика службы доставки |
|
SORT |
Сортировка |
|
DESCRIPTION |
Описание обработчика службы доставки |
|
SETTINGS |
Объект, содержащий информацию о настройках обработчика службы доставки (подробное описание приведено ниже) |
|
PROFILES |
Массив, содержащий список объектов профилей доставки (подробное описание приведено ниже). Подразумевается, что у обработчика службы доставки должен быть как минимум 1 профиль |
Параметр SETTINGS
Обязательные параметры отмечены *
|
Название |
Описание |
|
CALCULATE_URL* |
URL для расчёта стоимости доставки. На данный URL приходят данные о посылке (что доставить, куда и как), стоимость доставки которой нужно рассчитать в ответе. Формат запроса и ответа детально описан в документации по веб-хуку Расчет стоимости доставки |
|
CREATE_DELIVERY_REQUEST_URL |
URL для создания заказа на доставку. На данный URL приходят данные о посылке (что доставить, куда и как), заказ на которую нужно оформить в службе доставки. Формат запроса и ответа детально описан в документации по веб-хуку Создание заказа на доставку |
|
CANCEL_DELIVERY_REQUEST_URL |
URL для отмены заказа на доставку На данный URL приходят данные о посылке (что доставить, куда и как), заказ на которую нужно отменить в службе доставки. Формат запроса и ответа детально описан в документации по веб-хуку Отмена заказа на доставку |
|
HAS_CALLBACK_TRACKING_SUPPORT |
Индикатор того, будет ли служба доставки присылать оповещения о статусе заказа на доставку (см. метод В случае, если поддержка событий указана, то в интерфейсе менеджера при заказе доставки будет создано дело на доставку, в которое могут транслироваться изменения, связанные с текущим статусом доставки. Возможные значения:
|
|
CONFIG |
Массив объектов с доступными настройками для службы доставки, создаваемой с использованием данного обработчика (подробное описание приведено ниже) |
Параметр CONFIG
Обязательные параметры отмечены *
|
Название |
Описание |
|
TYPE* |
Тип поля настройки
|
|
CODE* |
Символьный код настройки |
|
NAME* |
Название настройки |
|
OPTIONS |
Список опций для выбора. Объект в формате Пример:
Параметр актуален только для настройки типа |
Параметр PROFILES
Обязательные параметры отмечены *
|
Название |
Описание |
|
NAME* |
Название профиля обработчика службы доставки |
|
CODE* |
Символьный код профиля обработчика службы доставки |
|
DESCRIPTION |
Описание профиля обработчика службы доставки |
Примеры кода
Как использовать примеры в документации
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"ID":14,"CODE":"uber","NAME":"New Uber","DESCRIPTION":"New Uber Description","SORT":300,"SETTINGS":{"CALCULATE_URL":"https://gateway.bx/calculate.php","CREATE_DELIVERY_REQUEST_URL":"https://gateway.bx/create_delivery_request.php","CANCEL_DELIVERY_REQUEST_URL":"https://gateway.bx/cancel_delivery_request.php","HAS_CALLBACK_TRACKING_SUPPORT":"N","CONFIG":[{"TYPE":"STRING","CODE":"SETTING_1","NAME":"String Example"},{"TYPE":"Y/N","CODE":"SETTING_2","NAME":"Checkbox Example"},{"TYPE":"NUMBER","CODE":"SETTING_3","NAME":"Number Example"},{"TYPE":"ENUM","CODE":"SETTING_4","NAME":"Enum Example","OPTIONS":{"Option1Code":"Option1Value","Option2Code":"Option2Value","Option3Code":"Option3Value","Option4Code":"Option4Value","Option5Code":"Option5Value"}},{"TYPE":"DATE","CODE":"SETTING_5","NAME":"Date Example"},{"TYPE":"LOCATION","CODE":"SETTING_6","NAME":"Location Example"}]},"PROFILES":[{"NAME":"New Taxi","CODE":"TAXI","DESCRIPTION":"New Taxi Delivery"},{"NAME":"New Cargo","CODE":"CARGO","DESCRIPTION":"New Cargo Delivery"}]}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/sale.delivery.handler.update
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"ID":14,"CODE":"uber","NAME":"New Uber","DESCRIPTION":"New Uber Description","SORT":300,"SETTINGS":{"CALCULATE_URL":"https://gateway.bx/calculate.php","CREATE_DELIVERY_REQUEST_URL":"https://gateway.bx/create_delivery_request.php","CANCEL_DELIVERY_REQUEST_URL":"https://gateway.bx/cancel_delivery_request.php","HAS_CALLBACK_TRACKING_SUPPORT":"N","CONFIG":[{"TYPE":"STRING","CODE":"SETTING_1","NAME":"String Example"},{"TYPE":"Y/N","CODE":"SETTING_2","NAME":"Checkbox Example"},{"TYPE":"NUMBER","CODE":"SETTING_3","NAME":"Number Example"},{"TYPE":"ENUM","CODE":"SETTING_4","NAME":"Enum Example","OPTIONS":{"Option1Code":"Option1Value","Option2Code":"Option2Value","Option3Code":"Option3Value","Option4Code":"Option4Value","Option5Code":"Option5Value"}},{"TYPE":"DATE","CODE":"SETTING_5","NAME":"Date Example"},{"TYPE":"LOCATION","CODE":"SETTING_6","NAME":"Location Example"}]},"PROFILES":[{"NAME":"New Taxi","CODE":"TAXI","DESCRIPTION":"New Taxi Delivery"},{"NAME":"New Cargo","CODE":"CARGO","DESCRIPTION":"New Cargo Delivery"}],"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/sale.delivery.handler.update
try
{
const response = await $b24.callMethod(
'sale.delivery.handler.update', {
ID: 14,
CODE: "uber",
NAME: "New Uber",
DESCRIPTION: "New Uber Description",
SORT: 300,
SETTINGS: {
CALCULATE_URL: "https://gateway.bx/calculate.php",
CREATE_DELIVERY_REQUEST_URL: "https://gateway.bx/create_delivery_request.php",
CANCEL_DELIVERY_REQUEST_URL: "https://gateway.bx/cancel_delivery_request.php",
HAS_CALLBACK_TRACKING_SUPPORT: "N",
CONFIG: [{
TYPE: "STRING",
CODE: "SETTING_1",
NAME: "String Example",
},
{
TYPE: "Y/N",
CODE: "SETTING_2",
NAME: "Checkbox Example",
},
{
TYPE: "NUMBER",
CODE: "SETTING_3",
NAME: "Number Example",
},
{
TYPE: "ENUM",
CODE: "SETTING_4",
NAME: "Enum Example",
OPTIONS: {
"Option1Code": "Option1Value",
"Option2Code": "Option2Value",
"Option3Code": "Option3Value",
"Option4Code": "Option4Value",
"Option5Code": "Option5Value",
},
},
{
TYPE: "DATE",
CODE: "SETTING_5",
NAME: "Date Example",
},
{
TYPE: "LOCATION",
CODE: "SETTING_6",
NAME: "Location Example",
},
],
},
PROFILES: [{
NAME: "New Taxi",
CODE: "TAXI",
DESCRIPTION: "New Taxi Delivery",
},
{
NAME: "New Cargo",
CODE: "CARGO",
DESCRIPTION: "New Cargo Delivery",
},
],
}
);
const result = response.getData().result;
console.info(result);
}
catch( error )
{
console.error(error);
}
try {
$response = $b24Service
->core
->call(
'sale.delivery.handler.update',
[
'ID' => 14,
'CODE' => "uber",
'NAME' => "New Uber",
'DESCRIPTION' => "New Uber Description",
'SORT' => 300,
'SETTINGS' => [
'CALCULATE_URL' => "https://gateway.bx/calculate.php",
'CREATE_DELIVERY_REQUEST_URL' => "https://gateway.bx/create_delivery_request.php",
'CANCEL_DELIVERY_REQUEST_URL' => "https://gateway.bx/cancel_delivery_request.php",
'HAS_CALLBACK_TRACKING_SUPPORT' => "N",
'CONFIG' => [
[
'TYPE' => "STRING",
'CODE' => "SETTING_1",
'NAME' => "String Example",
],
[
'TYPE' => "Y/N",
'CODE' => "SETTING_2",
'NAME' => "Checkbox Example",
],
[
'TYPE' => "NUMBER",
'CODE' => "SETTING_3",
'NAME' => "Number Example",
],
[
'TYPE' => "ENUM",
'CODE' => "SETTING_4",
'NAME' => "Enum Example",
'OPTIONS' => [
"Option1Code" => "Option1Value",
"Option2Code" => "Option2Value",
"Option3Code" => "Option3Value",
"Option4Code" => "Option4Value",
"Option5Code" => "Option5Value",
],
],
[
'TYPE' => "DATE",
'CODE' => "SETTING_5",
'NAME' => "Date Example",
],
[
'TYPE' => "LOCATION",
'CODE' => "SETTING_6",
'NAME' => "Location Example",
],
],
],
'PROFILES' => [
[
'NAME' => "New Taxi",
'CODE' => "TAXI",
'DESCRIPTION' => "New Taxi Delivery",
],
[
'NAME' => "New Cargo",
'CODE' => "CARGO",
'DESCRIPTION' => "New Cargo Delivery",
],
],
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error updating delivery handler: ' . $e->getMessage();
}
BX24.callMethod(
'sale.delivery.handler.update', {
ID: 14,
CODE: "uber",
NAME: "New Uber",
DESCRIPTION: "New Uber Description",
SORT: 300,
SETTINGS: {
CALCULATE_URL: "https://gateway.bx/calculate.php",
CREATE_DELIVERY_REQUEST_URL: "https://gateway.bx/create_delivery_request.php",
CANCEL_DELIVERY_REQUEST_URL: "https://gateway.bx/cancel_delivery_request.php",
HAS_CALLBACK_TRACKING_SUPPORT: "N",
CONFIG: [{
TYPE: "STRING",
CODE: "SETTING_1",
NAME: "String Example",
},
{
TYPE: "Y/N",
CODE: "SETTING_2",
NAME: "Checkbox Example",
},
{
TYPE: "NUMBER",
CODE: "SETTING_3",
NAME: "Number Example",
},
{
TYPE: "ENUM",
CODE: "SETTING_4",
NAME: "Enum Example",
OPTIONS: {
"Option1Code": "Option1Value",
"Option2Code": "Option2Value",
"Option3Code": "Option3Value",
"Option4Code": "Option4Value",
"Option5Code": "Option5Value",
},
},
{
TYPE: "DATE",
CODE: "SETTING_5",
NAME: "Date Example",
},
{
TYPE: "LOCATION",
CODE: "SETTING_6",
NAME: "Location Example",
},
],
},
PROFILES: [{
NAME: "New Taxi",
CODE: "TAXI",
DESCRIPTION: "New Taxi Delivery",
},
{
NAME: "New Cargo",
CODE: "CARGO",
DESCRIPTION: "New Cargo Delivery",
},
],
},
function(result) {
if (result.error()) {
console.error(result.error());
} else {
console.info(result.data());
}
}
);
require_once('crest.php');
$result = CRest::call(
'sale.delivery.handler.update',
[
'ID' => 14,
'CODE' => "uber",
'NAME' => "New Uber",
'DESCRIPTION' => "New Uber Description",
'SORT' => 300,
'SETTINGS' => [
'CALCULATE_URL' => "https://gateway.bx/calculate.php",
'CREATE_DELIVERY_REQUEST_URL' => "https://gateway.bx/create_delivery_request.php",
'CANCEL_DELIVERY_REQUEST_URL' => "https://gateway.bx/cancel_delivery_request.php",
'HAS_CALLBACK_TRACKING_SUPPORT' => "N",
'CONFIG' => [
['TYPE' => "STRING", 'CODE' => "SETTING_1", 'NAME' => "String Example"],
['TYPE' => "Y/N", 'CODE' => "SETTING_2", 'NAME' => "Checkbox Example"],
['TYPE' => "NUMBER", 'CODE' => "SETTING_3", 'NAME' => "Number Example"],
[
'TYPE' => "ENUM",
'CODE' => "SETTING_4",
'NAME' => "Enum Example",
'OPTIONS' => [
"Option1Code" => "Option1Value",
"Option2Code" => "Option2Value",
"Option3Code" => "Option3Value",
"Option4Code" => "Option4Value",
"Option5Code" => "Option5Value",
],
],
['TYPE' => "DATE", 'CODE' => "SETTING_5", 'NAME' => "Date Example"],
['TYPE' => "LOCATION", 'CODE' => "SETTING_6", 'NAME' => "Location Example"],
],
],
'PROFILES' => [
['NAME' => "New Taxi", 'CODE' => "TAXI", 'DESCRIPTION' => "New Taxi Delivery"],
['NAME' => "New Cargo", 'CODE' => "CARGO", 'DESCRIPTION' => "New Cargo Delivery"],
],
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
Обработка ответа
HTTP-статус: 200
{
"result":true,
"time":{
"start":1713857588.711742,
"finish":1713857589.121912,
"duration":0.4101700782775879,
"processing":0.02155303955078125,
"date_start":"2024-04-23T10:33:08+03:00",
"date_finish":"2024-04-23T10:33:09+03:00"
}
}
Возвращаемые данные
|
Название |
Описание |
|
result |
Результат обновления обработчика службы доставки |
|
time |
Информация о времени выполнения запроса |
Обработка ошибок
HTTP-статус: 400, 403
{
"error":"ERROR_HANDLER_NOT_FOUND",
"error_description":"Handler not found"
}
|
Название |
Описание |
|
error |
Строковый код ошибки. Может состоять из цифр, латинских букв и знака подчеркивания |
|
error_description |
Текстовое описание ошибки. Описание не предназначено для показа конечному пользователю в необработанном виде |
Возможные коды ошибок
|
Код |
Описание |
Статус |
|
|
Обработчик службы доставки с указанным идентификатором не найден |
400 |
|
|
Ошибка валидации входящих параметров (детали в описании ошибки) |
400 |
|
|
Ошибка при попытке обновления обработчика службы доставки |
400 |
|
|
Обработчик службы доставки с указанным кодом уже существует |
400 |
|
|
Недостаточно прав для обновления обработчика службы доставки |
403 |
Статусы и коды системных ошибок
HTTP-статус: 20x, 40x, 50x
Описанные ниже ошибки могут возникнуть при вызове любого метода
|
Статус |
Код |
Описание |
|
|
|
Возникла внутренняя ошибка сервера, обратитесь к администратору сервера или в техническую поддержку Битрикс24 |
|
|
|
Возникла внутренняя ошибка сервера, обратитесь к администратору сервера или в техническую поддержку Битрикс24 |
|
|
|
Превышен лимит на интенсивность запросов |
|
|
|
Текущий метод не разрешен для вызова с помощью batch |
|
|
|
Превышена максимальная длина параметров, переданных в метод batch |
|
|
|
Неверный access-токен или код вебхука |
|
|
|
Для вызовов методов требуется использовать протокол HTTPS |
|
|
|
REST API заблокирован из-за перегрузки. Это ручная индивидуальная блокировка, для снятия необходимо обращаться в техническую поддержку Битрикс24 |
|
|
|
REST API доступен только на коммерческих планах |
|
|
|
У пользователя, с чьим access-токеном или вебхуком был вызван метод, не хватает прав |
|
|
|
Манифест недоступен |
|
|
|
Запрос требует более высоких привилегий, чем предоставляет токен вебхука |
|
|
|
Предоставленный access-токен доступа истек |
|
|
|
Пользователь не имеет доступа к приложению. Это означает, что приложение установлено, но администратор портала разрешил доступ к этому приложению только конкретным пользователям |
|
|
|
Публичная часть сайта закрыта. Чтобы открыть публичную часть сайта на коробочной установке отключите опцию «Временное закрытие публичной части сайта». Путь к настройке: Рабочий стол > Настройки > Настройки продукта > Настройки модулей > Главный модуль > Временное закрытие публичной части сайта |
Продолжите изучение
- Добавить обработчик службы доставки sale.delivery.handler.add
- Удалить обработчик службы доставки sale.delivery.handler.delete
- Получить список обработчиков служб доставки sale.delivery.handler.list