Блог Горошко Андрея 1C-Битрикс,Bitrix24 Обновить поля варианта свойства sale.propertyvariant.update

Обновить поля варианта свойства sale.propertyvariant.update

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Обновить поля варианта свойства sale.propertyvariant.update», проанализируем лучшие практики и покажем, как правильно использовать sale.propertyvariant.update в реальных задачах.

Обновить поля варианта свойства sale.propertyvariant.update

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

Метод обновляет вариант значения свойства. Метод актуален только для свойств с типом ENUM.

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

Название
тип
Описание
id
sale_order_property_variant.id
Идентификатор варианта значения свойства
fields
object
Значения полей для обновления варианта значения свойств

Параметр fields

Название
тип
Описание
name
string
Название варианта значения свойства
value
string
Значение (код) варианта значения свойства
sort
integer
Сортировка
description
string
Описание варианта значения свойства

Примеры кода

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"id":5,"fields":{"name":"Красный","value":"red","sort":10,"description":"Новое описание значения для красного цвета"}}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/sale.propertyvariant.update
  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"id":5,"fields":{"name":"Красный","value":"red","sort":10,"description":"Новое описание значения для красного цвета"},"auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/sale.propertyvariant.update
  • JS
    try
    {
    	const response = await $b24.callMethod(
    		"sale.propertyvariant.update", {
    			"id": 5,
    			"fields": {
    				"name": "Красный",
    				"value": "red",
    				"sort": 10,
    				"description": "Новое описание значения для красного цвета"
    			}
    		}
    	);
    	
    	const result = response.getData().result;
    	console.info(result);
    }
    catch( error )
    {
    	console.error(error);
    }
  • PHP
    try {
        $response = $b24Service
            ->core
            ->call(
                'sale.propertyvariant.update',
                [
                    'id' => 5,
                    'fields' => [
                        'name'        => 'Красный',
                        'value'       => 'red',
                        'sort'        => 10,
                        'description' => 'Новое описание значения для красного цвета',
                    ],
                ]
            );
    
        $result = $response
            ->getResponseData()
            ->getResult();
    
        echo 'Success: ' . print_r($result, true);
        // Нужная вам логика обработки данных
        processData($result);
    
    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Error updating property variant: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod(
        "sale.propertyvariant.update", {
            "id": 5,
            "fields": {
                "name": "Красный",
                "value": "red",
                "sort": 10,
                "description": "Новое описание значения для красного цвета"
            }
        },
        function(result) {
            if (result.error()) {
                console.error(result.error());
            } else {
                console.info(result.data());
            }
        }
    );
  • PHP CRest
    require_once('crest.php');

    $result = CRest::call(
        'sale.propertyvariant.update',
        [
            'id' => 5,
            'fields' => [
                'name' => 'Красный',
                'value' => 'red',
                'sort' => 10,
                'description' => 'Новое описание значения для красного цвета'
            ]
        ]
    );

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

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

HTTP-статус: 200

{
    "result":{
        "propertyVariant":{
            "description":"Новое описание значения для красного цвета",
            "id":5,
            "name":"Красный",
            "orderPropsId":49,
            "sort":10,
            "value":"red"
        }
    },
    "time":{
        "start":1711630589.257634,
        "finish":1711630589.527446,
        "duration":0.26981210708618164,
        "processing":0.010741949081420898,
        "date_start":"2024-03-28T15:56:29+03:00",
        "date_finish":"2024-03-28T15:56:29+03:00"
    }
}

Возвращаемые данные

Название
тип
Описание
result
object
Корневой элемент ответа
propertyVariant
sale_order_property_variant
Объект с информацией об обновленном варианте значения свойства
time
time
Информация о времени выполнения запроса

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

HTTP-статус: 400

{
    "error":0,
    "error_description":"Required fields: name"
}

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

КодОписание
201540400001Обновляемый вариант значения свойства не найден
200040300020Недостаточно прав для обновления варианта значения свойства
100Не указан параметр id
100Не указан или пустой параметр fields
0Не переданы обязательные поля структуры fields
0Другие ошибки (например, фатальные ошибки)
ERROR_NO_VALUEПередано пустое значение символьного кода значения варианта свойства
ERROR_NO_NAMEПередано пустое значение названия значения варианта свойства
  • [](./index)
  • [](./sale-property-variant-add)
  • [](./sale-property-variant-get)
  • [](./sale-property-variant-list)
  • [](./sale-property-variant-delete)
  • [](./sale-property-variant-get-fields)

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

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

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

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

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

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

Related Post

Как использовать метод SDK crm.currency.fields в Битрикс24Как использовать метод SDK crm.currency.fields в Битрикс24

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Как использовать метод SDK crm.currency.fields в Битрикс24». Вы узнаете экспертные методики работы с

Получить настройки службы доставки sale.delivery.config.getПолучить настройки службы доставки sale.delivery.config.get

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

Настройка электронной коммерции (E-Commerce) в Яндекс Метрике для 1С-БитриксНастройка электронной коммерции (E-Commerce) в Яндекс Метрике для 1С-Битрикс

Бесшовная и отказоустойчивая интеграция сайта на 1С-Битрикс с внешними учетными системами, банками, службами доставки и маркетплейсами — основа масштабирования современного бизнеса. Услуга «Настройка электронной коммерции (E-Commerce) в Яндекс Метрике для