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

Выберите инструмент для разработки с AI-агентом:

  • используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
  • используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации

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*
any

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

Для множественных свойств заказа (multiple) поддерживается передача массива значений.

Для свойств типа file нужно передать объект в формате {"fileData": ["value1", "value2"]}:

  • value1 — название файла с расширением,
  • value2 — файл в формате base64.

Для удаления файла используется объект в формате {"remove": "Y"}

Примеры кода

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

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
        
// 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
        
        // Shape of the payload returned in result (match the "response handling" section of the page)
        type PropertyValueModifyResult = {
          propertyValues: {
            code: string
            id: number
            name: string
            orderPropsId: number
            orderPropsXmlId: string | null
            value: string | object
          }[]
        }
        
        try {
          const response = await $b24.actions.v2.call.make<PropertyValueModifyResult>({
            method: 'sale.propertyvalue.modify',
            params: {
              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' },
                  ],
                },
              },
            },
            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(result.propertyValues)
          }
        } 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 modifyPropertyValues() {
            try {
              // Initialize the SDK inside a Bitrix24 frame
              const $b24 = await B24Js.initializeB24Frame()
        
              const response = await $b24.actions.v2.call.make({
                method: 'sale.propertyvalue.modify',
                params: {
                  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' },
                      ],
                    },
                  },
                },
                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(result.propertyValues)
            } catch (error) {
              // Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
              console.error(error)
            }
          }
        
          document.addEventListener('DOMContentLoaded', modifyPropertyValues)
        </script>
        
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

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

429

OPERATION_TIME_LIMIT
Method is blocked due to operation time limit

Метод заблокирован из-за превышения лимита на ресурсоемкость запросов. Блокировка снимается автоматически через 10 минут

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

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

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