Изменить значение свойства sale.propertyvalue.modify

Scope: sale

Кто может выполнять метод: администратор

Метод обновляет значения свойств заказа.

Обратите внимание, что данный метод принимает на вход все значения свойств заказа. Если значения каких-то свойств не будут переданы, то их текущие значения будут удалены из заказа в результате выполнения запроса.

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

Обязательные параметры отмечены *

Название
тип

Описание

fields*
object

Корневой элемент, в котором передаются параметры запроса в виде структуры:

{
            "order":
            {
                "id": "значение",
                "propertyValues": {
                    "orderPropsId": "значение",
                    "value": "значение"
                },
            }
        }
        

Параметр fields

Обязательные параметры отмечены *

Название
тип

Описание

order*
object

Объект, содержащий значения идентификатора заказа и значения свойств заказа в виде структуры:

"id": "значение",
        "propertyValues": {
            "orderPropsId": "значение",
            "value": "значение"
        },
        

Параметр order

Обязательные параметры отмечены *

Название
тип

Описание

id*
sale_order.id

Идентификатор заказа

propertyValues*
object[]

Массив объектов (смотрите описание объекта propertyValues ниже), содержащих идентификатор свойства заказа и значение свойства

Параметр propertyValues

Обязательные параметры отмечены *

Значение
тип

Описание

orderPropsId*
sale_order_property.id

Идентификатор свойства заказа

value*
string

Значение свойства заказа

Примеры кода

Как использовать примеры в документации

curl -X POST \
        -H "Content-Type: application/json" \
        -H "Accept: application/json" \
        -d '{"fields":{"order":{"id":2066,"propertyValues":[{"orderPropsId":20,"value":"John Smith"},{"orderPropsId":21,"value":"johnsmith@example.com"},{"orderPropsId":22,"value":"+10907996161"},{"orderPropsId":25,"value":"0000073738"},{"orderPropsId":26,"value":"900 S Holland Ave, Springfield, MO 65806, United States"},{"orderPropsId":51,"value":"17.04.2024"},{"orderPropsId":52,"value":"Y"},{"orderPropsId":53,"value":"948"},{"orderPropsId":54,"value":"10"}]}}}' \
        https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/sale.propertyvalue.modify
        
curl -X POST \
        -H "Content-Type: application/json" \
        -H "Accept: application/json" \
        -d '{"fields":{"order":{"id":2066,"propertyValues":[{"orderPropsId":20,"value":"John Smith"},{"orderPropsId":21,"value":"johnsmith@example.com"},{"orderPropsId":22,"value":"+10907996161"},{"orderPropsId":25,"value":"0000073738"},{"orderPropsId":26,"value":"900 S Holland Ave, Springfield, MO 65806, United States"},{"orderPropsId":51,"value":"17.04.2024"},{"orderPropsId":52,"value":"Y"},{"orderPropsId":53,"value":"948"},{"orderPropsId":54,"value":"10"}]}},"auth":"**put_access_token_here**"}' \
        https://**put_your_bitrix24_address**/rest/sale.propertyvalue.modify
        
try
        {
        	const response = await $b24.callMethod(
        		'sale.propertyvalue.modify', {
        			fields: {
        				order: {
        					id: 2066,
        					propertyValues: [{
        							orderPropsId: 20,
        							value: 'John Smith'
        						},
        						{
        							orderPropsId: 21,
        							value: 'johnsmith@example.com'
        						},
        						{
        							orderPropsId: 22,
        							value: '+10907996161'
        						},
        						{
        							orderPropsId: 25,
        							value: '0000073738'
        						},
        						{
        							orderPropsId: 26,
        							value: '900 S Holland Ave, Springfield, MO 65806, United States'
        						},
        						{
        							orderPropsId: 51,
        							value: '17.04.2024'
        						},
        						{
        							orderPropsId: 52,
        							value: 'Y'
        						},
        						{
        							orderPropsId: 53,
        							value: '948'
        						},
        						{
        							orderPropsId: 54,
        							value: '10'
        						},
        					],
        				},
        			}
        		}
        	);
        	
        	const result = response.getData().result;
        	console.info(result);
        }
        catch( error )
        {
        	console.error(error);
        }
        
try {
            $response = $b24Service
                ->core
                ->call(
                    'sale.propertyvalue.modify',
                    [
                        'fields' => [
                            'order' => [
                                'id'            => 2066,
                                'propertyValues' => [
                                    [
                                        'orderPropsId' => 20,
                                        'value'        => 'John Smith'
                                    ],
                                    [
                                        'orderPropsId' => 21,
                                        'value'        => 'johnsmith@example.com'
                                    ],
                                    [
                                        'orderPropsId' => 22,
                                        'value'        => '+10907996161'
                                    ],
                                    [
                                        'orderPropsId' => 25,
                                        'value'        => '0000073738'
                                    ],
                                    [
                                        'orderPropsId' => 26,
                                        'value'        => '900 S Holland Ave, Springfield, MO 65806, United States'
                                    ],
                                    [
                                        'orderPropsId' => 51,
                                        'value'        => '17.04.2024'
                                    ],
                                    [
                                        'orderPropsId' => 52,
                                        'value'        => 'Y'
                                    ],
                                    [
                                        'orderPropsId' => 53,
                                        'value'        => '948'
                                    ],
                                    [
                                        'orderPropsId' => 54,
                                        'value'        => '10'
                                    ],
                                ],
                            ],
                        ],
                    ]
                );
        
            $result = $response
                ->getResponseData()
                ->getResult();
        
            echo 'Success: ' . print_r($result, true);
        
        } catch (Throwable $e) {
            error_log($e->getMessage());
            echo 'Error modifying sale property value: ' . $e->getMessage();
        }
        
BX24.callMethod(
            'sale.propertyvalue.modify', {
                fields: {
                    order: {
                        id: 2066,
                        propertyValues: [{
                                orderPropsId: 20,
                                value: 'John Smith'
                            },
                            {
                                orderPropsId: 21,
                                value: 'johnsmith@example.com'
                            },
                            {
                                orderPropsId: 22,
                                value: '+10907996161'
                            },
                            {
                                orderPropsId: 25,
                                value: '0000073738'
                            },
                            {
                                orderPropsId: 26,
                                value: '900 S Holland Ave, Springfield, MO 65806, United States'
                            },
                            {
                                orderPropsId: 51,
                                value: '17.04.2024'
                            },
                            {
                                orderPropsId: 52,
                                value: 'Y'
                            },
                            {
                                orderPropsId: 53,
                                value: ‘948’
                            },
                            {
                                orderPropsId: 54,
                                value: ‘10’
                            },
                        ],
                    },
                }
            },
            function(result) {
                if (result.error()) {
                    console.error(result.error());
                } else {
                    console.info(result.data());
                }
            }
        );
        
require_once('crest.php');
        
        $result = CRest::call(
            'sale.propertyvalue.modify',
            [
                'fields' => [
                    'order' => [
                        'id' => 2066,
                        'propertyValues' => [
                            [
                                'orderPropsId' => 20,
                                'value' => 'John Smith'
                            ],
                            [
                                'orderPropsId' => 21,
                                'value' => 'johnsmith@example.com'
                            ],
                            [
                                'orderPropsId' => 22,
                                'value' => '+10907996161'
                            ],
                            [
                                'orderPropsId' => 25,
                                'value' => '0000073738'
                            ],
                            [
                                'orderPropsId' => 26,
                                'value' => '900 S Holland Ave, Springfield, MO 65806, United States'
                            ],
                            [
                                'orderPropsId' => 51,
                                'value' => '17.04.2024'
                            ],
                            [
                                'orderPropsId' => 52,
                                'value' => 'Y'
                            ],
                            [
                                'orderPropsId' => 53,
                                'value' => '948' // Corrected quotation marks
                            ],
                            [
                                'orderPropsId' => 54,
                                'value' => '10' // Corrected quotation marks
                            ],
                        ],
                    ],
                ]
            ]
        );
        
        echo '<PRE>';
        print_r($result);
        echo '</PRE>';
        

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

HTTP-статус: 200

{
            "result":{
                "propertyValues":[
                    {
                        "code":"DELIVERY_DATE",
                        "id":13167,
                        "name":"Дата доставки",
                        "orderPropsId":51,
                        "orderPropsXmlId":null,
                        "value":"17.04.2024"
                    },
                    {
                        "code":"DELEVERY_REQUIRED",
                        "id":13168,
                        "name":"Необходимость доставки",
                        "orderPropsId":52,
                        "orderPropsXmlId":null,
                        "value":"Y"
                    },
                    {
                        "code":"DOC",
                        "id":13170,
                        "name":"Документ подтверждающий наличие права на покупку товара",
                        "orderPropsId":53,
                        "orderPropsXmlId":null,
                        "value":{
                        "contentType":"image\/jpeg",
                        "description":"",
                        "externalId":"89359a6dc806e5dc5404962d1be0ba42",
                        "fileName":"fit.jpeg",
                        "fileSize":"84058",
                        "handlerId":null,
                        "height":"800",
                        "id":"948",
                        "meta":"",
                        "moduleId":"fileman",
                        "originalName":"fit.jpeg",
                        "src":"\/upload\/medialibrary\/5bd\/ukgwed4vdxe1qaqv85pqrvdgq5moyhqh\/fit.jpeg",
                        "subdir":"medialibrary\/5bd\/ukgwed4vdxe1qaqv85pqrvdgq5moyhqh",
                        "timestampX":"02.04.2024 09:13:29",
                        "versionOriginalId":null,
                        "width":"600"
                        }
                    },
                    {
                        "code":"MAX_DELIVERY_DAYS",
                        "id":13171,
                        "name":"Доставить не позднее (дней после заказа)",
                        "orderPropsId":54,
                        "orderPropsXmlId":null,
                        "value":"10"
                    },
                    {
                        "code":"FIO",
                        "id":13163,
                        "name":"Имя Фамилия",
                        "orderPropsId":20,
                        "orderPropsXmlId":null,
                        "value":"John Smith"
                    },
                    {
                        "code":"EMAIL",
                        "id":13164,
                        "name":"E-Mail",
                        "orderPropsId":21,
                        "orderPropsXmlId":null,
                        "value":"johnsmith@example.com"
                    },
                    {
                        "code":"PHONE",
                        "id":13165,
                        "name":"Телефон",
                        "orderPropsId":22,
                        "orderPropsXmlId":null,
                        "value":"+10907996161"
                    },
                    {
                        "code":"LOCATION",
                        "id":13166,
                        "name":"Местоположение",
                        "orderPropsId":25,
                        "orderPropsXmlId":"bx_63e3a3b974932",
                        "value":"0000073738"
                    },
                    {
                        "code":"ADDRESS",
                        "id":13162,
                        "name":"Адрес доставки",
                        "orderPropsId":26,
                        "orderPropsXmlId":null,
                        "value":"900 S Holland Ave, Springfield, MO 65806, United States"
                    }
                ]
            },
            "time":{
                "start":1712049055.756753,
                "finish":1712049056.823234,
                "duration":1.066481113433838,
                "processing":0.7959079742431641,
                "date_start":"2024-04-02T12:10:55+03:00",
                "date_finish":"2024-04-02T12:10:56+03:00"
            }
        }
        

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

Название
тип

Описание

result
object

Корневой элемент ответа

propertyValues
sale_order_property_value[]

Массив объектов, содержащих информацию о значениях свойств заказов

time
time

Информация о времени выполнения запроса

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

HTTP-статус: 400

{
            "error":100,
            "error_description":"Could not find value for parameter {fields}"
        }
        

Название
тип

Описание

error
string

Строковый код ошибки. Может состоять из цифр, латинских букв и знака подчеркивания

error_description
error_description

Текстовое описание ошибки. Описание не предназначено для показа конечному пользователю в необработанном виде

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

Код

Описание

200040300020

Недостаточно прав для изменения значений свойств заказа

100

Не указан или пустой параметр fields

0

Заказ не найден

0

Не указаны обязательные параметры

0

Другие ошибки (например, фатальные ошибки)

Статусы и коды системных ошибок

HTTP-статус: 20x, 40x, 50x

Описанные ниже ошибки могут возникнуть при вызове любого метода

Статус

Код
Текст ошибки

Описание

500

INTERNAL_SERVER_ERROR
Internal server error

Возникла внутренняя ошибка сервера, обратитесь к администратору сервера или в техническую поддержку Битрикс24

500

ERROR_UNEXPECTED_ANSWER
Server returned an unexpected response

Возникла внутренняя ошибка сервера, обратитесь к администратору сервера или в техническую поддержку Битрикс24

503

QUERY_LIMIT_EXCEEDED
Too many requests

Превышен лимит на интенсивность запросов

405

ERROR_BATCH_METHOD_NOT_ALLOWED
Method is not allowed for batch usage

Текущий метод не разрешен для вызова с помощью batch

400

ERROR_BATCH_LENGTH_EXCEEDED
Max batch length exceeded

Превышена максимальная длина параметров, переданных в метод batch

401

NO_AUTH_FOUND
Wrong authorization data

Неверный access-токен или код вебхука

400

INVALID_REQUEST
Https required

Для вызовов методов требуется использовать протокол HTTPS

503

OVERLOAD_LIMIT
REST API is blocked due to overload

REST API заблокирован из-за перегрузки. Это ручная индивидуальная блокировка, для снятия необходимо обращаться в техническую поддержку Битрикс24

403

ACCESS_DENIED
REST API is available only on commercial plans

REST API доступен только на коммерческих планах

403

INVALID_CREDENTIALS
Invalid request credentials

У пользователя, с чьим access-токеном или вебхуком был вызван метод, не хватает прав

404

ERROR_MANIFEST_IS_NOT_AVAILABLE
Manifest is not available

Манифест недоступен

403

insufficient_scope
The request requires higher privileges than provided by the webhook token

Запрос требует более высоких привилегий, чем предоставляет токен вебхука

401

expired_token
The access token provided has expired

Предоставленный access-токен доступа истек

403

user_access_error
The user does not have access to the application

Пользователь не имеет доступа к приложению. Это означает, что приложение установлено, но администратор портала разрешил доступ к этому приложению только конкретным пользователям

500

PORTAL_DELETED
Portal was deleted

Публичная часть сайта закрыта. Чтобы открыть публичную часть сайта на коробочной установке отключите опцию «Временное закрытие публичной части сайта». Путь к настройке: Рабочий стол > Настройки > Настройки продукта > Настройки модулей > Главный модуль > Временное закрытие публичной части сайта

Продолжите изучение