sale.propertyRelation.add
Добавить привязку свойства
Описание
Метод sale.propertyRelation.add добавляет привязку свойства.
Параметры
fields
object
обязательный
Значения полей для создания привязки свойства
Параметр fields
entityId
integer
обязательный
Идентификатор объекта
entityType
string
обязательный
Тип объекта:
- P — платежная система
- D — доставка
- L — лендинг
- T — торговая платформа
propertyId
sale_order_property.id
обязательный
Идентификатор свойства
Примеры запроса
-X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"fields":{"entityId":6,"entityType":"D","propertyId":40}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/sale.propertyRelation.add
-X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"fields":{"entityId":6,"entityType":"D","propertyId":40},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/sale.propertyRelation.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
// Shape of the payload returned in result (match the "response handling" section of the page)
type PropertyRelationAddResult = {
propertyRelation: {
entityId: number
entityType: string
propertyId: number
}
}
try {
const response = await $b24.actions.v2.call.make<PropertyRelationAddResult>({
method: 'sale.propertyRelation.add',
params: {
fields: {
entityId: 6,
entityType: 'D',
propertyId: 40,
},
},
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.propertyRelation)
}
} 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 addPropertyRelation() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'sale.propertyRelation.add',
params: {
fields: {
entityId: 6,
entityType: 'D',
propertyId: 40,
},
},
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.propertyRelation)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', addPropertyRelation)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
fields = {
"entityId": 6,
"entityType": "D",
"propertyId": 40,
}
try:
bitrix_response = client.sale.propertyrelation.add(
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.propertyRelation.add',
[
'fields' => [
'entityId' => 6,
'entityType' => 'D',
'propertyId' => 40,
],
]
);
$result = $response
->getResponseData()
->getResult();
if ($result->error()) {
error_log($result->error());
} else {
echo 'Success: ' . print_r($result->data(), true);
}
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error adding property relation: ' . $e->getMessage();
}
BX24.callMethod(
'sale.propertyRelation.add',
{
fields: {
entityId: 6,
entityType: 'D',
propertyId: 40
}
},
function(result)
{
if(result.error())
console.error(result.error());
else
console.log(result.data());
}
);
require_once('crest.php');
$result = CRest::call(
'sale.propertyRelation.add',
[
'fields' => [
'entityId' => 6,
'entityType' => 'D',
'propertyId' => 40
]
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "sale.propertyRelation.add", b24.Params{
"fields": b24.Params{
"entityId": 6,
"entityType": "D",
"propertyId": 40,
},
})
if err != nil {
return fmt.Errorf("sale.propertyRelation.add: %w", err)
}
// Метод заворачивает ответ в объект с ключом "propertyRelation".
raw, ok := b24.Unwrap(res.Result, "propertyRelation")
if !ok {
return fmt.Errorf("в ответе нет ключа propertyRelation")
}
var item struct {
EntityID b24.ID `json:"entityId"`
EntityType string `json:"entityType"`
PropertyID b24.ID `json:"propertyId"`
}
if err := json.Unmarshal(raw, &item); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println(item.EntityID, item.EntityType)
Ответ
HTTP-статус: 200
{
"result": {
"propertyRelation": {
"entityId": 6,
"entityType": "D",
"propertyId": 40
}
},
"time": {
"start": 1712244475.495277,
"finish": 1712244476.402808,
"duration": 0.9075310230255127,
"processing": 0.08538603782653809,
"date_start": "2024-04-04T18:27:55+03:00",
"date_finish": "2024-04-04T18:27:56+03:00"
}
}
Возвращаемые данные
result
object
Корневой элемент ответа
propertyRelation
sale_order_property_relation
Объект с информацией о созданной привязке
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error":0,
"error_description":"Required fields: entityId"
}
| Код | Описание | Значение |
|---|---|---|
201650000001 |
Привязка с указанными значениями entityId, entityType, propertyId уже существует |
|
201650000002 |
Свойство не существует. Некорректное значение переданного параметра propertyId |
|
200040300020 |
Недостаточно прав для создания привязки свойства | |
100 |
Не указан или пустой параметр fields |
|
0 |
Не переданы обязательные поля | |
0 |
Другие ошибки (например, фатальные ошибки) |

