Блог Горошко Андрея 1C-Битрикс,Bitrix24 Добавить единицу измерения catalog.measure.add

Добавить единицу измерения catalog.measure.add

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Добавить единицу измерения catalog.measure.add». Вы узнаете экспертные методики работы с catalog.measure.add и научитесь избегать типичных ошибок начинающих разработчиков.

Добавить единицу измерения catalog.measure.add

> Scope: catalog
>
> Кто может выполнять метод: администратор

Метод добавляет новую единицу измерения.

Параметры метода

Название
тип
Описание
fields
object
Значения полей для создания новой единицы измерения

Параметр fields

Название
тип
Описание
code
integer
Уникальный код единицы измерения
isDefault
string
Используется ли текущая единица измерения в качестве единицы измерения по умолчанию для новых товаров. Возможные значения:
— Y — да
— N — нет

Если значение поля не указано, то автоматически устанавливается значение N.

Только одна единица измерения из всего справочника может принимать значение Y

measureTitle*
string
Название единицы измерения
symbol
string
Условное обозначение
symbolIntl
string
Международное условное обозначение
symbolLetterIntl
string
Международное кодовое буквенное обозначение

Примеры кода

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"fields":{"code":715,"measureTitle":"Пара","symbol":"пар","symbolLetterIntl":"NPR","symbolIntl":"pr; 2","isDefault":"N"}}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/catalog.measure.add
  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"fields":{"code":715,"measureTitle":"Пара","symbol":"пар","symbolLetterIntl":"NPR","symbolIntl":"pr; 2","isDefault":"N"},"auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/catalog.measure.add
  • JS
    try
    {
    	const response = await $b24.callMethod(
    		'catalog.measure.add', 
    		{
    			fields: {
    				code: 715,
    				measureTitle: "Пара",
    				symbol: 'пар',
    				symbolLetterIntl: 'NPR',
    				symbolIntl: 'pr; 2',
    				isDefault: 'N'
    			}
    		}
    	);
    	
    	const result = response.getData().result;
    	console.log(result);
    }
    catch( error )
    {
    	console.error(error);
    }
  • PHP
    try {
        $response = $b24Service
            ->core
            ->call(
                'catalog.measure.add',
                [
                    'fields' => [
                        'code'            => 715,
                        'measureTitle'    => "Пара",
                        'symbol'          => 'пар',
                        'symbolLetterIntl' => 'NPR',
                        'symbolIntl'      => 'pr; 2',
                        'isDefault'       => 'N',
                    ],
                ]
            );
    
        $result = $response
            ->getResponseData()
            ->getResult();
    
        echo 'Success: ' . print_r($result, true);
    
    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Error adding measure: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod(
        'catalog.measure.add', 
        {
            fields: {
                code: 715,
                measureTitle: "Пара",
                symbol: 'пар',
                symbolLetterIntl: 'NPR',
                symbolIntl: 'pr; 2',
                isDefault: 'N'
            }
        },
        function(result) {
            if (result.error())
                console.error(result.error());
            else
                console.log(result.data());
        }
    );
  • PHP CRest
    require_once('crest.php');

    $result = CRest::call(
        'catalog.measure.add',
        [
            'fields' => [
                'code' => 715,
                'measureTitle' => "Пара",
                'symbol' => 'пар',
                'symbolLetterIntl' => 'NPR',
                'symbolIntl' => 'pr; 2',
                'isDefault' => 'N'
            ]
        ]
    );

    echo '<PRE>';
    print_r($result);
    echo '</PRE>';

Обработка ответа

HTTP-статус: 200

{
    "result": {
        "measure": {
            "code": 715,
            "id": 6,
            "isDefault": "N",
            "measureTitle": "Пара",
            "symbol": "пар",
            "symbolIntl": "pr; 2",
            "symbolLetterIntl": "NPR"
        }
    },
    "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
Корневой элемент ответа
measure
catalog_measure
Объект с информацией о созданной единице измерения
time
time
Информация о времени выполнения запроса

Обработка ошибок

HTTP-статус: 400

{
    "error": 200040300020,
    "error_description": "Access Denied"
}

Возможные коды ошибок

КодОписание
200040300020Нет доступа к редактированию
200600000000Единица измерения с заданным параметром code уже существует
200600000010Единица измерения, у которой параметр isDefault равен Y, уже существует
100Не передан обязательный параметр fields
0Не установлены обязательные поля
0Другие ошибки (например, фатальные ошибки)
  • [](./catalog-measure-update)
  • [](./catalog-measure-get)
  • [](./catalog-measure-list)
  • [](./catalog-measure-delete)
  • [](./catalog-measure-get-fields)

💡 Экспертное мнение и рекомендации

Практические рекомендации:

  • При написании кастомных компонентов для «Добавить единицу измерения catalog.measure.add» всегда разделяйте бизнес-логику и представление (шаблон).
  • Используйте отладку SQL-запросов через конструкцию $wpdb->last_query или стандартный трекер Битрикса, чтобы контролировать нагрузку.

Похожая задача в бизнесе?

Помогу автоматизировать процессы и внедрить ИИ

Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.

Related Post

Как использовать метод SDK tasks.task.result.list в Битрикс24Как использовать метод SDK tasks.task.result.list в Битрикс24

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Как использовать метод SDK tasks.task.result.list в Битрикс24», проанализируем

Редизайн и упрощение многошаговой корзины до современного одностраничного чекаута (One-Step Checkout)Редизайн и упрощение многошаговой корзины до современного одностраничного чекаута (One-Step Checkout)

Миграция сайта на платформу 1С-Битрикс или комплексный редизайн интерфейса — это стратегический шаг для устранения технических ограничений, защиты от санкционных рисков и масштабирования онлайн-продаж. Услуга «Редизайн и упрощение многошаговой корзины

Создать иконку Приложения для чатаСоздать иконку Приложения для чата

Оптимизация производительности и безопасности — залог успешного проекта на 1С-Битрикс. Данный материал посвящен практическому применению «Создать иконку Приложения для чата». Мы подготовили подробный разбор принципов работы и развернутые примеры интеграции.