sale.property.update
Обновить свойство заказа
Описание
Метод sale.property.update обновляет свойство заказа.
Параметры
id
sale_order_property.id
обязательный
Идентификатор свойства заказа
fields
object
обязательный
Значения полей для создания свойства заказа
Параметр fields
name
string
обязательный
Название свойства заказа
code
string
необязательный
Символьный код свойства заказа
active
string
необязательный
Индикатор активности свойства заказа.
Возможные значения:
- Y — да
- N — нет
Если не передано, то по умолчанию значение Y
util
string
необязательный
Индикатор, является ли свойство заказа служебным. Служебные свойства заказа не отображаются в публичной части.
Возможные значения:
- Y — да
- N — нет
Если не передано, то по умолчанию значение N
userProps
string
необязательный
Индикатор, входит ли свойство заказа в профиль покупателя.
Возможные значения:
- Y — да
- N — нет
Если не передано, то по умолчанию значение N
isFiltered
string
необязательный
Индикатор, доступно ли свойство заказа в фильтре на странице списка заказов.
Возможные значения:
- Y — да
- N — нет
Если не передано, то по умолчанию значение N
sort
integer
необязательный
Сортировка
description
string
необязательный
Описание свойства заказа
required
string
необязательный
Индикатор обязательности заполнения значения свойства заказа.
Возможные значения:
- Y — да
- N — нет
Если не передано, то по умолчанию значение N
multiple
string
необязательный
Индикатор, является ли свойство заказа множественным. Для множественных свойств возможно указать несколько значений.
Возможные значения:
- Y — да
- N — нет
Если не передано, то по умолчанию значение N
xmlId
string
необязательный
Внешний идентификатор свойства заказа
defaultValue
any
необязательный
Дефолтное значение свойства заказа.
Для свойств типа file нужно передать объект в формате {"fileData": ["value1", "value2"]}:
- value1 — название файла с расширением,
- value2 — файл в формате base64.
Для удаления файла используется объект в формате {"remove": "Y"}.
Для множественных свойств заказа (multiple) поддерживается передача массива значений
Для удаления значения нужно передать null, либо не передавать параметр
settings
object
необязательный
Объект в формате {"field_1": "value_1", ... "field_N": "value_N"} для передачи дополнительных настроек свойства заказа.
Список поддерживаемых ключей этого объекта зависит от типа свойства. Для некоторых типов свойств (например, Y/N) дополнительные свойства не предусмотрены. Описание параметра settings для разных типов свойств приведено в описании метода sale.property.add
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"id":93,"fields":{"personTypeId":3,"propsGroupId":6,"name":"Телефон (для связи с курьером)","type":"STRING","code":"PHONE","active":"Y","util":"N","userProps":"Y","isFiltered":"N","sort":500,"description":"описание свойства","required":"Y","multiple":"N","settings":{"multiline":"Y","maxlength":100},"xmlId":"","defaultValue":"","isProfileName":"Y","isPayer":"Y","isEmail":"N","isPhone":"N","isZip":"N","isAddress":"N"},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/sale.property.update
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"id":93,"fields":{"personTypeId":3,"propsGroupId":6,"name":"Телефон (для связи с курьером)","type":"STRING","code":"PHONE","active":"Y","util":"N","userProps":"Y","isFiltered":"N","sort":500,"description":"описание свойства","required":"Y","multiple":"N","settings":{"multiline":"Y","maxlength":100},"xmlId":"","defaultValue":"","isProfileName":"Y","isPayer":"Y","isEmail":"N","isPhone":"N","isZip":"N","isAddress":"N"}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/sale.property.update
// 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 PropertyUpdateResult = {
property: {
id: number
active: string
code: string
defaultValue: string
description: string
inputFieldLocation: string
isAddress: string
isAddressFrom: string
isAddressTo: string
isEmail: string
isFiltered: string
isLocation: string
isLocation4tax: string
isPayer: string
isPhone: string
isProfileName: string
isZip: string
multiple: string
name: string
personTypeId: number
propsGroupId: number
required: string
settings: Record<string, string>
sort: number
type: string
userProps: string
util: string
xmlId: string
}
}
try {
const response = await $b24.actions.v2.call.make<PropertyUpdateResult>({
method: 'sale.property.update',
params: {
id: 93,
fields: {
personTypeId: 3,
propsGroupId: 6,
name: 'Phone (courier contact)',
type: 'STRING',
code: 'PHONE',
active: 'Y',
util: 'N',
userProps: 'Y',
isFiltered: 'N',
sort: 500,
description: 'property description',
required: 'Y',
multiple: 'N',
settings: {
multiline: 'Y',
maxlength: 100,
},
xmlId: '',
defaultValue: '',
isProfileName: 'Y',
isPayer: 'Y',
isEmail: 'N',
isPhone: 'N',
isZip: 'N',
isAddress: 'N',
},
},
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('Updated property:', result.property.id, result.property.name)
}
} 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 updateSaleProperty() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'sale.property.update',
params: {
id: 93,
fields: {
personTypeId: 3,
propsGroupId: 6,
name: 'Phone (courier contact)',
type: 'STRING',
code: 'PHONE',
active: 'Y',
util: 'N',
userProps: 'Y',
isFiltered: 'N',
sort: 500,
description: 'property description',
required: 'Y',
multiple: 'N',
settings: {
multiline: 'Y',
maxlength: 100,
},
xmlId: '',
defaultValue: '',
isProfileName: 'Y',
isPayer: 'Y',
isEmail: 'N',
isPhone: 'N',
isZip: 'N',
isAddress: 'N',
},
},
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('Updated property:', result.property.id, result.property.name)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', updateSaleProperty)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
fields = {
"personTypeId": 3,
"propsGroupId": 6,
"name": "Телефон (для связи с курьером)",
"type": "STRING",
"code": "PHONE",
"active": "Y",
"util": "N",
"userProps": "Y",
"isFiltered": "N",
"sort": 500,
"description": "описание свойства",
"required": "Y",
"multiple": "N",
"settings": {
"multiline": "Y",
"maxlength": 100,
},
"xmlId": "",
"defaultValue": "",
"isProfileName": "Y",
"isPayer": "Y",
"isEmail": "N",
"isPhone": "N",
"isZip": "N",
"isAddress": "N",
}
try:
bitrix_response = client.sale.property.update(
bitrix_id=93,
fields=fields,
).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.property.update',
[
'id' => 93,
'fields' => [
'personTypeId' => 3,
'propsGroupId' => 6,
'name' => 'Телефон (для связи с курьером)',
'type' => 'STRING',
'code' => 'PHONE',
'active' => 'Y',
'util' => 'N',
'userProps' => 'Y',
'isFiltered' => 'N',
'sort' => 500,
'description' => 'описание свойства',
'required' => 'Y',
'multiple' => 'N',
'settings' => [
'multiline' => 'Y',
'maxlength' => 100,
],
'xmlId' => '',
'defaultValue' => '',
'isProfileName' => 'Y',
'isPayer' => 'Y',
'isEmail' => 'N',
'isPhone' => 'N',
'isZip' => 'N',
'isAddress' => 'N',
],
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error updating sale property: ' . $e->getMessage();
}
BX24.callMethod(
'sale.property.update', {
id: 93,
fields: {
personTypeId: 3,
propsGroupId: 6,
name: 'Телефон (для связи с курьером)',
type: 'STRING',
code: 'PHONE',
active: 'Y',
util: 'N',
userProps: 'Y',
isFiltered: 'N',
sort: 500,
description: 'описание свойства',
required: 'Y',
multiple: 'N',
settings: {
multiline: 'Y',
maxlength: 100
},
xmlId: '',
defaultValue: '',
isProfileName: 'Y',
isPayer: 'Y',
isEmail: 'N',
isPhone: 'N',
isZip: 'N',
isAddress: 'N',
}
},
function(result) {
if (result.error()) {
console.error(result.error());
} else {
console.info(result.data());
}
}
);
require_once('crest.php');
$result = CRest::call(
'sale.property.update',
[
'id' => 93,
'fields' => [
'personTypeId' => 3,
'propsGroupId' => 6,
'name' => 'Телефон (для связи с курьером)',
'type' => 'STRING',
'code' => 'PHONE',
'active' => 'Y',
'util' => 'N',
'userProps' => 'Y',
'isFiltered' => 'N',
'sort' => 500,
'description' => 'описание свойства',
'required' => 'Y',
'multiple' => 'N',
'settings' => [
'multiline' => 'Y',
'maxlength' => 100
],
'xmlId' => '',
'defaultValue' => '',
'isProfileName' => 'Y',
'isPayer' => 'Y',
'isEmail' => 'N',
'isPhone' => 'N',
'isZip' => 'N',
'isAddress' => 'N',
]
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "sale.property.update", b24.Params{
"id": 93,
"fields": b24.Params{
"personTypeId": 3,
"propsGroupId": 6,
"name": "Телефон (для связи с курьером)",
"type": "STRING",
"code": "PHONE",
"active": "Y",
"util": "N",
"userProps": "Y",
"isFiltered": "N",
"sort": 500,
"description": "описание свойства",
"required": "Y",
"multiple": "N",
"settings": b24.Params{
"multiline": "Y",
"maxlength": 100,
},
"xmlId": "",
"defaultValue": "",
"isProfileName": "Y",
"isPayer": "Y",
"isEmail": "N",
"isPhone": "N",
"isZip": "N",
"isAddress": "N",
},
})
if err != nil {
return fmt.Errorf("sale.property.update: %w", err)
}
// Метод заворачивает ответ в объект с ключом "property".
raw, ok := b24.Unwrap(res.Result, "property")
if !ok {
return fmt.Errorf("в ответе нет ключа property")
}
var item struct {
Active string `json:"active"`
Code string `json:"code"`
DefaultValue string `json:"defaultValue"`
Description string `json:"description"`
ID b24.ID `json:"id"`
InputFieldLocation string `json:"inputFieldLocation"`
}
if err := json.Unmarshal(raw, &item); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println(item.Active, item.Code)
Ответ
HTTP-статус: 200
{
"result":{
"property":{
"active":"Y",
"code":"PHONE",
"defaultValue":"",
"description":"описание свойства",
"id":96,
"inputFieldLocation":"0",
"isAddress":"N",
"isAddressFrom":"N",
"isAddressTo":"N",
"isEmail":"N",
"isFiltered":"N",
"isLocation":"N",
"isLocation4tax":"N",
"isPayer":"Y",
"isPhone":"N",
"isProfileName":"Y",
"isZip":"N",
"multiple":"N",
"name":"Телефон (для связи с курьером)",
"personTypeId":3,
"propsGroupId":6,
"required":"Y",
"settings":{
"maxlength":"100",
"multiline":"Y"
},
"sort":500,
"type":"STRING",
"userProps":"Y",
"util":"N",
"xmlId":""
}
},
"time":{
"start":1712818736.235335,
"finish":1712818736.611224,
"duration":0.3758888244628906,
"processing":0.18679594993591309,
"date_start":"2024-04-11T09:58:56+03:00",
"date_finish":"2024-04-11T09:58:56+03:00"
}
}
Возвращаемые данные
result
object
Корневой элемент ответа
property
sale_order_property
Объект с информацией об обновленном свойстве заказа
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error":200840400001,
"error_description":"property is not exists"
}
| Код | Описание | Значение |
|---|---|---|
200840400001 |
Обновляемое свойство заказа не найдено | |
200850000003 |
Внутренняя ошибка обновления свойства | |
200850000009 |
Ошибка возникает при попытке обновить свойство заказа со значением параметра multiple, выставленным в Y, в том случае, если не передан параметр isFiltered.Фильтрация по множественным свойствам заказов не поддерживается |
|
200850000010 |
Ошибка возникает при попытке обновить свойство заказа со значением параметра multiple, выставленным в Y, в том случае, если значение параметра isFiltered не равно N.Фильтрация по множественным свойствам заказов не поддерживается |
|
200850000011 |
Ошибка возникает при попытке обновить свойство заказа с типом LOCATION и значением параметра isLocation, выставленным в Y, в том случае, если значение параметра multiple не указано.Не поддерживается множественность у свойств заказа отмеченных индикатором isLocation |
|
200850000012 |
Ошибка возникает при попытке обновить свойство заказа с типом LOCATION и значением параметра isLocation, выставленным в Y, в том случае, если значение параметра multiple не равноN.Не поддерживается множественность у свойств заказа отмеченных индикатором isLocation |
|
200850000013 |
Ошибка возникает при попытке обновить свойство заказа с типом LOCATION и значением параметра isLocation4tax, выставленным в Y, в том случае, если значение параметра multiple не указано.Не поддерживается множественность у свойств заказа отмеченных индикатором isLocation4tax |
|
200850000014 |
Ошибка возникает при попытке обновить свойство заказа с типом LOCATION и значением параметра isLocation4tax, выставленным в Y, в том случае, если значение параметра multiple не равно N.Не поддерживается множественность у свойств заказа отмеченных индикатором isLocation4tax |
|
200850000015 |
Ошибка возникает при попытке обновить свойство заказа с типом STRING и значением параметра isProfileName, выставленным в Y, в том случае, если значение параметра required не указано.Название профиля обязательно и не может быть пустым |
|
200850000016 |
Ошибка возникает при попытке обновить свойство заказа с типом STRING и значением параметра isProfileName, выставленным в Y, в том случае, если значение параметра required не равно Y.Название профиля обязательно и не может быть пустым |
|
200040300020 |
Недостаточно прав для обновления свойства заказа | |
100 |
Не указан параметр id |
|
100 |
Не указан или пустой параметр fields |
|
0 |
Не переданы обязательные поля | |
0 |
Другие ошибки (например, фатальные ошибки) |

