catalog.section.add
Добавить раздел торгового каталога
Описание
Метод catalog.section.add добавляет раздел торгового каталога.
Параметры
fields
object
обязательный
Значения полей для создания нового раздела каталога
Параметр fields
iblockId
catalog_catalog.id
обязательный
Идентификатор инфоблока.
Для получения существующих идентификаторов необходимо использовать catalog.catalog.list
iblockSectionId
catalog_section.id
необязательный
Идентификатор родительского раздела.
Для получения существующих идентификаторов необходимо использовать catalog.section.list.
По умолчанию выбирается верхний уровень
name
string
обязательный
Название раздела каталога
xmlId
string
необязательный
Внешний идентификатор.
Можно использовать для синхронизации текущего раздела каталога с аналогичной позицией во внешней системе
code
string
необязательный
Код раздела каталога. Должен быть уникальным
sort
integer
необязательный
Сортировка.
По умолчанию 500
active
string
необязательный
Индикатор активности раздела каталога:
- Y — активен
- N — неактивен
По умолчанию Y
description
string
необязательный
Описание
descriptionType
string
необязательный
Тип описания. Доступные типы: text, html
Примеры запроса
-X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"fields": {
"name": "Детские игрушки",
"iblockId": 14,
"iblockSectionId": 13,
"sort": "100",
"active": "Y",
"code": "toys",
"xmlId": "myXmlId",
"description": "Товары для детей - игрушки",
"descriptionType": "text"
}
}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/catalog.section.add
-X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"fields": {
"name": "Детские игрушки",
"iblockId": 14,
"iblockSectionId": 13,
"sort": "100",
"active": "Y",
"code": "toys",
"xmlId": "myXmlId",
"description": "Товары для детей - игрушки",
"descriptionType": "text"
},
"auth": "**put_access_token_here**"
}' \
https://**put_your_bitrix24_address**/rest/catalog.section.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 SectionAddResult = {
section: {
active: string
code: string
description: string
descriptionType: string
iblockId: number
iblockSectionId: number
id: number
name: string
sort: number
xmlId: string
}
}
try {
const response = await $b24.actions.v2.call.make<SectionAddResult>({
method: 'catalog.section.add',
params: {
fields: {
name: "Kids Toys",
iblockId: 14,
iblockSectionId: 13,
sort: '100',
active: 'Y',
code: 'toys',
xmlId: 'myXmlId',
description: "Products for children - toys",
descriptionType: "text",
},
},
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.section.id, result.section.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 addCatalogSection() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'catalog.section.add',
params: {
fields: {
name: "Kids Toys",
iblockId: 14,
iblockSectionId: 13,
sort: '100',
active: 'Y',
code: 'toys',
xmlId: 'myXmlId',
description: "Products for children - toys",
descriptionType: "text",
},
},
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.section.id, result.section.name)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', addCatalogSection)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.catalog.section.add(
fields={
"name": "Детские игрушки",
"iblockId": 14,
"sort": "100",
"active": "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.section.add',
[
'fields' => [
'name' => 'Детские игрушки',
'iblockId' => 14,
'iblockSectionId' => 13,
'sort' => '100',
'active' => 'Y',
'code' => 'toys',
'xmlId' => 'myXmlId',
'description' => "Товары для детей - игрушки",
'descriptionType' => "text",
],
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error adding catalog section: ' . $e->getMessage();
}
BX24.callMethod(
'catalog.section.add',
{
fields: {
name: 'Детские игрушки',
iblockId: 14,
iblockSectionId: 13,
sort: '100',
active: 'Y',
code: 'toys',
xmlId: 'myXmlId',
description: "Товары для детей - игрушки",
descriptionType: "text"
}
},
function(result)
{
if(result.error())
console.error(result.error());
else
console.log(result.data());
}
);
require_once('crest.php');
$result = CRest::call(
'catalog.section.add',
[
'fields' => [
'name' => 'Детские игрушки',
'iblockId' => 14,
'iblockSectionId' => 13,
'sort' => '100',
'active' => 'Y',
'code' => 'toys',
'xmlId' => 'myXmlId',
'description' => 'Товары для детей - игрушки',
'descriptionType' => 'text'
]
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "catalog.section.add", b24.Params{
"fields": b24.Params{
"name": "Детские игрушки",
"iblockId": 14,
"iblockSectionId": 13,
"sort": "100",
"active": "Y",
"code": "toys",
"xmlId": "myXmlId",
"description": "Товары для детей - игрушки",
"descriptionType": "text",
},
})
if err != nil {
return fmt.Errorf("catalog.section.add: %w", err)
}
// Метод заворачивает ответ в объект с ключом "section".
raw, ok := b24.Unwrap(res.Result, "section")
if !ok {
return fmt.Errorf("в ответе нет ключа section")
}
var item struct {
Active string `json:"active"`
Code string `json:"code"`
Description string `json:"description"`
DescriptionType string `json:"descriptionType"`
IblockID b24.ID `json:"iblockId"`
IblockSectionID b24.ID `json:"iblockSectionId"`
}
if err := json.Unmarshal(raw, &item); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println(item.Active, item.Code)
Ответ
HTTP-статус: 200
{
"result": {
"section": {
"active": "Y",
"code": "toys",
"description": "Товары для детей - игрушки",
"descriptionType": "text",
"iblockId": 14,
"iblockSectionId": 13,
"id": 31,
"name": "Детские игрушки",
"sort": 100,
"xmlId": "myXmlId"
}
},
"time": {
"start": 1716552521.40908,
"finish": 1716552521.69852,
"duration": 0.289434909820557,
"processing": 0.011207103729248,
"date_start": "2024-05-24T14:08:41+02:00",
"date_finish": "2024-05-24T14:08:41+02:00",
"operating": 0
}
}
Возвращаемые данные
result
object
Корневой элемент ответа
section
catalog_section
Объект с информацией о добавленном разделе каталога
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error":200040300040,
"error_description":"Access Denied"
}
| Код | Описание | Значение |
|---|---|---|
200040300040 |
Нет доступа к редактированию | |
200700300000 |
Ошибки при добавлении, например, идентификатор инфоблока создаваемого раздела не совпадает с идентификатором инфоблока раздела-родителя | |
200700300040 |
Нарушение уникальности поля code |
|
200700300050 |
Инфоблока с заданным iblockId не существует |
|
100 |
Не передан обязательный параметр fields |
|
0 |
Не установлены обязательные поля | |
0 |
Другие ошибки (например, фатальные ошибки) |

