Изменить заказ sale.order.update
Scope:
saleКто может выполнять метод: администратор
Метод sale.order.update обновляет поля заказа.
Параметры метода
Обязательные параметры отмечены *
|
Название |
Описание |
|
id* |
Идентификатор заказа |
|
fields* |
Значения полей для изменения заказа |
Параметр fields
|
Название |
Описание |
|
price |
Цена |
|
discountValue |
Значение скидки |
|
statusId |
Идентификатор статуса заказа |
|
empStatusId |
Идентификатор пользователя, изменившего статус заказа |
|
dateInsert |
Дата создания заказа |
|
marked |
Флаг маркировки. Признак того, является ли отгрузка отмеченной как проблемная. Значение
По умолчанию устанавливается |
|
empMarkedId |
Идентификатор пользователя, поставившего маркировку |
|
reasonMarked |
Причина, по которой заказ был промаркирован |
|
userDescription |
Комментарий покупателя к заказу |
|
additionalInfo |
Устаревший. Дополнительная информация |
|
comments |
Комментарий менеджера к заказу |
|
responsibleId |
Идентификатор пользователя, ответственного за заказ |
|
recurringId |
Идентификатор продления подписки |
|
lockedBy |
Актуально только для коробочной версии. Идентификатор пользователя, заблокировавшего заказ. Заказ блокируется в административной панели, когда пользователь открывает детальную карточку заказа |
|
recountFlag |
Устаревший. Флаг пересчёта.
По умолчанию устанавливается Y |
|
affiliateId |
Актуально только для коробочной версии. Идентификатор аффилиата |
|
updated1c |
Обновлён ли через 1С.
По умолчанию устанавливается |
|
orderTopic |
Устаревший. Тема заказа |
|
xmlId |
Внешний идентификатор |
|
id1c |
Идентификатор в 1С |
|
version1c |
Версия в 1с |
|
externalOrder |
Заказ из внешней системы или нет.
По умолчанию устанавливается |
|
canceled |
Был ли отменен заказ.
По умолчанию устанавливается |
|
empCanceledId |
Идентификатор пользователя, отменившего заказ |
|
reasonCanceled |
Причина отмены |
Примеры кода
Как использовать примеры в документации
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"id":300,"fields":{"price":100,"discountValue":10,"statusId":"N","empStatusId":1,"dateInsert":"2024-03-01T14:00:00","marked":"Y","empMarkedId":1,"reasonMarked":"","userDescription":"","additionalInfo":"","comments":"","companyId":1,"responsibleId":1,"recurringId":1,"lockedBy":1,"recountFlag":"N","affiliateId":1,"updated1c":"N","orderTopic":"","xmlId":"","id1c":"","version1c":"","externalOrder":"N","canceled":"Y","empCanceledId":1,"reasonCanceled":""}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/sale.order.update
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"id":300,"fields":{"price":100,"discountValue":10,"statusId":"N","empStatusId":1,"dateInsert":"2024-03-01T14:00:00","marked":"Y","empMarkedId":1,"reasonMarked":"","userDescription":"","additionalInfo":"","comments":"","companyId":1,"responsibleId":1,"recurringId":1,"lockedBy":1,"recountFlag":"N","affiliateId":1,"updated1c":"N","orderTopic":"","xmlId":"","id1c":"","version1c":"","externalOrder":"N","canceled":"Y","empCanceledId":1,"reasonCanceled":""},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/sale.order.update
try
{
const response = await $b24.callMethod(
'sale.order.update',
{
id: 300,
fields: {
price: 100,
discountValue: 10,
statusId: 'N',
empStatusId: 1,
dateInsert: '2024-03-01T14:00:00',
marked: 'Y',
empMarkedId: 1,
reasonMarked: '',
userDescription: '',
additionalInfo: '',
comments: '',
companyId: 1,
responsibleId: 1,
recurringId: 1,
lockedBy: 1,
recountFlag: 'N',
affiliateId: 1,
updated1c: 'N',
orderTopic: '',
xmlId: '',
id1c: '',
version1c: '',
externalOrder: 'N',
canceled: 'Y',
empCanceledId: 1,
reasonCanceled: '',
}
}
);
const result = response.getData().result;
console.log(result);
}
catch(error)
{
console.error(error);
}
try {
$response = $b24Service
->core
->call(
'sale.order.update',
[
'id' => 300,
'fields' => [
'price' => 100,
'discountValue' => 10,
'statusId' => 'N',
'empStatusId' => 1,
'dateInsert' => '2024-03-01T14:00:00',
'marked' => 'Y',
'empMarkedId' => 1,
'reasonMarked' => '',
'userDescription' => '',
'additionalInfo' => '',
'comments' => '',
'companyId' => 1,
'responsibleId' => 1,
'recurringId' => 1,
'lockedBy' => 1,
'recountFlag' => 'N',
'affiliateId' => 1,
'updated1c' => 'N',
'orderTopic' => '',
'xmlId' => '',
'id1c' => '',
'version1c' => '',
'externalOrder' => 'N',
'canceled' => 'Y',
'empCanceledId' => 1,
'reasonCanceled' => '',
],
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error updating sale order: ' . $e->getMessage();
}
BX24.callMethod(
'sale.order.update',
{
id: 300,
fields: {
price: 100,
discountValue: 10,
statusId: 'N',
empStatusId: 1,
dateInsert: '2024-03-01T14:00:00',
marked: 'Y',
empMarkedId: 1,
reasonMarked: '',
userDescription: '',
additionalInfo: '',
comments: '',
companyId: 1,
responsibleId: 1,
recurringId: 1,
lockedBy: 1,
recountFlag: 'N',
affiliateId: 1,
updated1c: 'N',
orderTopic: '',
xmlId: '',
id1c: '',
version1c: '',
externalOrder: 'N',
canceled: 'Y',
empCanceledId: 1,
reasonCanceled: '',
}
},
function(result)
{
if(result.error())
console.error(result.error());
else
console.log(result.data());
}
);
require_once('crest.php');
$result = CRest::call(
'sale.order.update',
[
'id' => 300,
'fields' => [
'price' => 100,
'discountValue' => 10,
'statusId' => 'N',
'empStatusId' => 1,
'dateInsert' => '2024-03-01T14:00:00',
'marked' => 'Y',
'empMarkedId' => 1,
'reasonMarked' => '',
'userDescription' => '',
'additionalInfo' => '',
'comments' => '',
'companyId' => 1,
'responsibleId' => 1,
'recurringId' => 1,
'lockedBy' => 1,
'recountFlag' => 'N',
'affiliateId' => 1,
'updated1c' => 'N',
'orderTopic' => '',
'xmlId' => '',
'id1c' => '',
'version1c' => '',
'externalOrder' => 'N',
'canceled' => 'Y',
'empCanceledId' => 1,
'reasonCanceled' => '',
]
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
Обработка ответа
HTTP-статус: 200
{
"result": {
"order": {
"accountNumber": "456",
"additionalInfo": "",
"affiliateId": 1,
"canceled": "Y",
"clients": [],
"comments": "",
"companyId": 1,
"currency": "RUB",
"dateCanceled": "2024-04-12T14:06:05+03:00",
"dateInsert": "2024-03-01T13:00:00+03:00",
"dateLock": null,
"dateMarked": "2024-04-15T10:21:14+03:00",
"dateStatus": "2024-04-12T14:06:04+03:00",
"dateUpdate": "2024-04-15T10:21:15+03:00",
"deducted": "N",
"discountValue": 10,
"empCanceledId": 1,
"empMarkedId": 1,
"empStatusId": 1,
"externalOrder": "N",
"id": 300,
"id1c": "",
"lid": "s1",
"lockedBy": "1",
"marked": "N",
"orderTopic": "",
"payed": "N",
"personTypeId": 1,
"personTypeXmlId": "",
"price": 100,
"reasonCanceled": "",
"reasonMarked": "",
"recountFlag": "N",
"recurringId": "1",
"requisiteLink": [],
"responsibleId": 1,
"statusId": "N",
"statusXmlId": "",
"taxValue": null,
"updated1c": "N",
"userDescription": "",
"userId": 1,
"version": 3,
"version1c": "",
"xmlId": ""
}
},
"time": {
"start": 1713169274.29568,
"finish": 1713169275.698528,
"duration": 1.4028480052947998,
"processing": 0.9852678775787354,
"date_start": "2024-04-15T11:21:14+03:00",
"date_finish": "2024-04-15T11:21:15+03:00"
}
}
Возвращаемые данные
|
Название |
Описание |
|
result |
Корневой элемент ответа |
|
order |
Объект с информацией об обновленном заказе |
|
time |
Информация о времени выполнения запроса |
Обработка ошибок
HTTP-статус: 400
{
"error":200540400001
"error_description":"order is not exists"
}
|
Название |
Описание |
|
error |
Строковый код ошибки. Может состоять из цифр, латинских букв и знака подчеркивания |
|
error_description |
Текстовое описание ошибки. Описание не предназначено для показа конечному пользователю в необработанном виде |
Возможные коды ошибок
|
Код |
Описание |
|
|
Обновляемый заказ не найден |
|
|
Недостаточно прав для обновления заказа |
|
|
Не указан параметр |
|
|
Не указан или пустой параметр |
|
|
Другие ошибки (например, фатальные ошибки) |
Статусы и коды системных ошибок
HTTP-статус: 20x, 40x, 50x
Описанные ниже ошибки могут возникнуть при вызове любого метода
|
Статус |
Код |
Описание |
|
|
|
Возникла внутренняя ошибка сервера, обратитесь к администратору сервера или в техническую поддержку Битрикс24 |
|
|
|
Возникла внутренняя ошибка сервера, обратитесь к администратору сервера или в техническую поддержку Битрикс24 |
|
|
|
Превышен лимит на интенсивность запросов |
|
|
|
Текущий метод не разрешен для вызова с помощью batch |
|
|
|
Превышена максимальная длина параметров, переданных в метод batch |
|
|
|
Неверный access-токен или код вебхука |
|
|
|
Для вызовов методов требуется использовать протокол HTTPS |
|
|
|
REST API заблокирован из-за перегрузки. Это ручная индивидуальная блокировка, для снятия необходимо обращаться в техническую поддержку Битрикс24 |
|
|
|
REST API доступен только на коммерческих планах |
|
|
|
У пользователя, с чьим access-токеном или вебхуком был вызван метод, не хватает прав |
|
|
|
Манифест недоступен |
|
|
|
Запрос требует более высоких привилегий, чем предоставляет токен вебхука |
|
|
|
Предоставленный access-токен доступа истек |
|
|
|
Пользователь не имеет доступа к приложению. Это означает, что приложение установлено, но администратор портала разрешил доступ к этому приложению только конкретным пользователям |
|
|
|
Публичная часть сайта закрыта. Чтобы открыть публичную часть сайта на коробочной установке отключите опцию «Временное закрытие публичной части сайта». Путь к настройке: Рабочий стол > Настройки > Настройки продукта > Настройки модулей > Главный модуль > Временное закрытие публичной части сайта |
Продолжите изучение
- Добавить заказ sale.order.add
- Получить значения полей заказа и связанных объектов sale.order.get
- Получить список заказов sale.order.list
- Удалить заказ и связанные объекты sale.order.delete
- Получить поля заказа sale.order.getfields