sale.delivery.extra.service.add
Добавить услугу службы доставки
Описание
Метод sale.delivery.extra.service.add добавляет услугу службы доставки.
Параметры
DELIVERY_ID
sale_delivery_service.ID
обязательный
Идентификатор службы доставки, к которой будет привязана создаваемая услуга.
Получить идентификаторы служб доставки можно с помощью метода sale.delivery.getlist
TYPE
string
обязательный
Тип услуги. Возможные значения:
- enum — список (выбор опции из заранее сформированного списка)
- checkbox — единичная услуга (например, доставка до двери)
- quantity — количественная услуга (например, требуемое количество грузчиков)
NAME
string
обязательный
Название услуги
ACTIVE
string
необязательный
Индикатор активности услуги. Возможные значения:
- Y — да
- N — нет
Если значение не передано, то по умолчанию используется N
CODE
string
необязательный
Символьный код услуги
SORT
integer
необязательный
Сортировка
DESCRIPTION
string
необязательный
Описание услуги
PRICE
double
необязательный
Стоимость услуги в валюте службы доставки.
Поле актуально только для услуг типа единичная услуга (checkbox) и количественная услуга (quantity)
ITEMS
object[]
обязательный
Список доступных для выбора опций (подробное описание приведено ниже).
Поле актуально только для услуг типа список (enum)
Параметр ITEMS
TITLE
string
обязательный
Название опции списка
CODE
string
обязательный
Символьный код опции списка
PRICE
double
необязательный
Стоимость услуги при выборе данной опции в валюте службы доставки
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"DELIVERY_ID":197,"ACTIVE":"Y","CODE":"door_delivery","NAME":"Door Delivery","DESCRIPTION":"Door Delivery Description","TYPE":"checkbox","SORT":100,"PRICE":99.99}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/sale.delivery.extra.service.add
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"DELIVERY_ID":197,"ACTIVE":"Y","CODE":"door_delivery","NAME":"Door Delivery","DESCRIPTION":"Door Delivery Description","TYPE":"checkbox","SORT":100,"PRICE":99.99,"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/sale.delivery.extra.service.add
// This snippet is an ES module: top-level await requires type="module" or a bundler.
// $b24 is an already-initialized SDK instance (see the SDK "Get started" guide).
import { Text } from '@bitrix24/b24jssdk'
import type { B24Frame } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
try {
const response = await $b24.actions.v2.call.make<number>({
method: 'sale.delivery.extra.service.add',
params: {
DELIVERY_ID: 197,
ACTIVE: 'Y',
CODE: 'door_delivery',
NAME: 'Door Delivery',
DESCRIPTION: 'Door Delivery Description',
TYPE: 'checkbox',
SORT: 100,
PRICE: 99.99,
},
requestId: Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
} else {
const result = response.getData()!.result
console.info('Added extra service ID:', result)
}
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
<!-- Load the SDK (UMD build); it is exposed as the global B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
async function addExtraService() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'sale.delivery.extra.service.add',
params: {
DELIVERY_ID: 197,
ACTIVE: 'Y',
CODE: 'door_delivery',
NAME: 'Door Delivery',
DESCRIPTION: 'Door Delivery Description',
TYPE: 'checkbox',
SORT: 100,
PRICE: 99.99,
},
requestId: B24Js.Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
return
}
const result = response.getData().result
console.info('Added extra service ID:', result)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', addExtraService)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.sale.delivery.extra.service.add(
delivery_id=197,
type='checkbox',
name='Door Delivery',
active=True,
code='door_delivery',
sort=100,
description='Door Delivery Description',
price=99.99,
items='[{',
).response
result = bitrix_response.result
print(result)
except BitrixAPIError as error:
print(
"Ошибка Bitrix API",
f"error: {error.error}",
f"error_description: {error.error_description}",
sep="\n",
)
except BitrixSDKException as error:
print(f"Ошибка Bitrix SDK: {error.message}")
except Exception as error:
print(f"Непредвиденная ошибка: {error}")
try {
$response = $b24Service
->core
->call(
'sale.delivery.extra.service.add',
[
'DELIVERY_ID' => 197,
'ACTIVE' => "Y",
'CODE' => "door_delivery",
'NAME' => "Door Delivery",
'DESCRIPTION' => "Door Delivery Description",
'TYPE' => "checkbox",
'SORT' => 100,
'PRICE' => 99.99,
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error adding extra service: ' . $e->getMessage();
}
BX24.callMethod(
'sale.delivery.extra.service.add', {
DELIVERY_ID: 197,
ACTIVE: "Y",
CODE: "door_delivery",
NAME: "Door Delivery",
DESCRIPTION: "Door Delivery Description",
TYPE: "checkbox",
SORT: 100,
PRICE: 99.99,
},
function(result) {
if (result.error()) {
console.error(result.error());
} else {
console.info(result.data());
}
}
);
require_once('crest.php');
$params = [
'DELIVERY_ID' => 197,
'ACTIVE' => 'Y',
'CODE' => 'door_delivery',
'NAME' => 'Door Delivery',
'DESCRIPTION' => 'Door Delivery Description',
'TYPE' => 'checkbox',
'SORT' => 100,
'PRICE' => 99.99
];
$result = CRest::call(
'sale.delivery.extra.service.add',
$params
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "sale.delivery.extra.service.add", b24.Params{
"DELIVERY_ID": 197,
"ACTIVE": "Y",
"CODE": "door_delivery",
"NAME": "Door Delivery",
"DESCRIPTION": "Door Delivery Description",
"TYPE": "checkbox",
"SORT": 100,
"PRICE": 99.99,
})
if err != nil {
return fmt.Errorf("sale.delivery.extra.service.add: %w", err)
}
var newID b24.ID
if err := json.Unmarshal(res.Result, &newID); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println("идентификатор:", newID)
Ответ
HTTP-статус: 200
{
"result": 128,
"time": {
"start": 1714204589.717545,
"finish": 1714204589.95374,
"duration": 0.23619484901428223,
"processing": 0.031846046447753906,
"date_start": "2024-04-27T10:56:29+03:00",
"date_finish": "2024-04-27T10:56:29+03:00"
}
}
Возвращаемые данные
result
sale_delivery_extra_service.ID
Идентификатор добавленной услуги
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error":"ERROR_CHECK_FAILURE",
"error_description":"Parameter DELIVERY_ID is not defined"
}
| Код | Описание | Значение |
|---|---|---|
ERROR_CHECK_FAILURE |
Ошибка валидации входящих параметров (детали в описании ошибки) | 400 |
ERROR_EXTRA_SERVICE_ADD |
Ошибка при попытке добавления услуги | 400 |
ERROR_DELIVERY_NOT_FOUND |
Служба доставки с указанным идентификатором не найдена | 400 |
ACCESS_DENIED |
Недостаточно прав для добавления службы доставки | 403 |

