catalog.productPropertyFeature.add
Добавить параметр свойства товаров или вариаций
Описание
Метод catalog.productPropertyFeature.add добавляет параметр свойства товара или вариации.
Параметры
fields
object
обязательный
Набор полей нового параметра свойства (подробное описание)
Параметр fields
propertyId
catalog_product_property.id
обязательный
Идентификатор свойства товара или вариации.
Идентификаторы свойств можно получить методом catalog.productProperty.list
moduleId
string
обязательный
Идентификатор модуля, которому принадлежит параметр свойства.
Идентификатор модуля можно получить методом catalog.productPropertyFeature.getAvailableFeaturesByProperty
featureId
string
обязательный
Код параметра свойства.
Код параметра можно получить методом catalog.productPropertyFeature.getAvailableFeaturesByProperty
isEnabled
char
обязательный
Признак активности параметра. Допустимые значения:
- Y — включен
- N — выключен
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"fields":{"propertyId":901,"moduleId":"iblock","featureId":"LIST_PAGE_SHOW","isEnabled":"Y"}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/catalog.productPropertyFeature.add
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"fields":{"propertyId":901,"moduleId":"iblock","featureId":"LIST_PAGE_SHOW","isEnabled":"Y"},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/catalog.productPropertyFeature.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 AddProductPropertyFeatureResult = {
productPropertyFeature: {
featureId: string
id: number
isEnabled: string
moduleId: string
propertyId: number
}
}
try {
const response = await $b24.actions.v2.call.make<AddProductPropertyFeatureResult>({
method: 'catalog.productPropertyFeature.add',
params: {
fields: {
propertyId: 901,
moduleId: 'iblock',
featureId: 'LIST_PAGE_SHOW',
isEnabled: 'Y',
},
},
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.productPropertyFeature)
}
} 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 addProductPropertyFeature() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'catalog.productPropertyFeature.add',
params: {
fields: {
propertyId: 901,
moduleId: 'iblock',
featureId: 'LIST_PAGE_SHOW',
isEnabled: 'Y',
},
},
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.productPropertyFeature)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', addProductPropertyFeature)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.catalog.product_property_feature.add(
fields={
"propertyId": 901,
"moduleId": "iblock",
"featureId": "LIST_PAGE_SHOW",
"isEnabled": "Y",
},
).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(
'catalog.productPropertyFeature.add',
[
'fields' => [
'propertyId' => 901,
'moduleId' => 'iblock',
'featureId' => 'LIST_PAGE_SHOW',
'isEnabled' => 'Y',
],
]
);
print_r($response->getResponseData()->getResult());
} catch (\Throwable $exception) {
echo $exception->getMessage();
}
BX24.callMethod(
'catalog.productPropertyFeature.add',
{
fields: {
propertyId: 901,
moduleId: 'iblock',
featureId: 'LIST_PAGE_SHOW',
isEnabled: 'Y',
}
},
function(result) {
if (result.error()) {
console.error(result.error());
} else {
console.log(result.data());
}
}
);
require_once('crest.php');
$result = CRest::call(
'catalog.productPropertyFeature.add',
[
'fields' => [
'propertyId' => 901,
'moduleId' => 'iblock',
'featureId' => 'LIST_PAGE_SHOW',
'isEnabled' => 'Y',
]
]
);
print_r($result);
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "catalog.productPropertyFeature.add", b24.Params{
"fields": b24.Params{
"propertyId": 901,
"moduleId": "iblock",
"featureId": "LIST_PAGE_SHOW",
"isEnabled": "Y",
},
})
if err != nil {
return fmt.Errorf("catalog.productPropertyFeature.add: %w", err)
}
// Метод заворачивает ответ в объект с ключом "productPropertyFeature".
raw, ok := b24.Unwrap(res.Result, "productPropertyFeature")
if !ok {
return fmt.Errorf("в ответе нет ключа productPropertyFeature")
}
var item struct {
FeatureID string `json:"featureId"`
ID b24.ID `json:"id"`
IsEnabled string `json:"isEnabled"`
ModuleID string `json:"moduleId"`
PropertyID b24.ID `json:"propertyId"`
}
if err := json.Unmarshal(raw, &item); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println(item.FeatureID, item.ID)
Ответ
HTTP-статус: 200
{
"result": {
"productPropertyFeature": {
"featureId": "LIST_PAGE_SHOW",
"id": 101,
"isEnabled": "Y",
"moduleId": "iblock",
"propertyId": 901
}
},
"time": {
"start": 1774013002,
"finish": 1774013002.429777,
"duration": 0.4297769069671631,
"processing": 0,
"date_start": "2026-03-20T16:23:22+03:00",
"date_finish": "2026-03-20T16:23:22+03:00",
"operating_reset_at": 1774013602,
"operating": 0
}
}
Возвращаемые данные
result
object
Корневой объект ответа
productPropertyFeature
catalog_product_property_features
Объект добавленного параметра свойства
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error": "0",
"error_description": "Required fields: moduleId, featureId, isEnabled"
}
| Код | Описание | Значение |
|---|---|---|
0 |
Access Denied | Недостаточно прав для изменения свойства инфоблока |
0 |
productPropertyFeature does not exist. | Свойство с переданным propertyId не найдено или не относится к торговому каталогу |
0 |
Required fields: moduleId, featureId, isEnabled | Не переданы обязательные поля moduleId, featureId, isEnabled |
0 |
Ошибочный набор параметров свойства | Передан некорректный набор moduleId, featureId, isEnabled |
0 |
Mysql query error: (1062) Duplicate entry '...' for key 'b_iblock_property_feature.ix_iblock_property_feature' | Запись с такой комбинацией propertyId + moduleId + featureId уже существует |

