Блог Горошко Андрея 1C-Битрикс,Bitrix24 Обновить значения свойств отгрузки sale.shipmentpropertyvalue.modify

Обновить значения свойств отгрузки sale.shipmentpropertyvalue.modify

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

Обновить значения свойств отгрузки sale.shipmentpropertyvalue.modify

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

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

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

Название
тип
Описание
fields
object
Корневой элемент, в котором передаются параметры запроса

Параметр fields

Название
тип
Описание
shipment
object
Объект, содержащий значения идентификатора отгрузки и значения свойств отгрузки (подробное описание приведено ниже)

Параметр shipment {#shipment}

Название
тип
Описание
id
sale_order_shipment.id
Идентификатор отгрузки
propertyValues
object[]
Массив объектов, содержащих идентификатор свойства отгрузки и значение свойства (подробное описание приведено ниже)

Параметр propertyValues {#propertyvalues}

Название
тип
Описание
shipmentPropsId
sale_shipment_property.id
Идентификатор свойства отгрузки
value
string
Значение свойства

Примеры кода

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"fields":{"shipment":{"id":4120,"propertyValues":[{"shipmentPropsId":105,"value":"Comments value"},{"shipmentPropsId":106,"value":"Description value"}]}}}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/sale.shipmentpropertyvalue.modify
  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"fields":{"shipment":{"id":4120,"propertyValues":[{"shipmentPropsId":105,"value":"Comments value"},{"shipmentPropsId":106,"value":"Description value"}]}},"auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/sale.shipmentpropertyvalue.modify
  • JS
    try
    {
    	const response = await $b24.callMethod(
    		'sale.shipmentpropertyvalue.modify', {
    			fields: {
    				shipment: {
    					id: 4120,
    					propertyValues: [{
    							shipmentPropsId: 105,
    							value: 'Comments value'
    						},
    						{
    							shipmentPropsId: 106,
    							value: 'Description value'
    						},
    					],
    				},
    			}
    		}
    	);
    	
    	const result = response.getData().result;
    	console.info(result);
    }
    catch( error )
    {
    	console.error(error);
    }
  • PHP
    try {
        $response = $b24Service
            ->core
            ->call(
                'sale.shipmentpropertyvalue.modify',
                [
                    'fields' => [
                        'shipment' => [
                            'id'            => 4120,
                            'propertyValues' => [
                                [
                                    'shipmentPropsId' => 105,
                                    'value'           => 'Comments value'
                                ],
                                [
                                    'shipmentPropsId' => 106,
                                    'value'           => 'Description value'
                                ],
                            ],
                        ],
                    ],
                ]
            );
    
        $result = $response
            ->getResponseData()
            ->getResult();
    
        echo 'Success: ' . print_r($result, true);
    
    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Error modifying shipment property value: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod(
        'sale.shipmentpropertyvalue.modify', {
            fields: {
                shipment: {
                    id: 4120,
                    propertyValues: [{
                            shipmentPropsId: 105,
                            value: 'Comments value'
                        },
                        {
                            shipmentPropsId: 106,
                            value: 'Description value'
                        },
                    ],
                },
            }
        },
        function(result) {
            if (result.error()) {
                console.error(result.error());
            } else {
                console.info(result.data());
            }
        }
    );
  • PHP CRest
    require_once('crest.php');

    $result = CRest::call(
        'sale.shipmentpropertyvalue.modify',
        [
            'fields' => [
                'shipment' => [
                    'id' => 4120,
                    'propertyValues' => [
                        [
                            'shipmentPropsId' => 105,
                            'value' => 'Comments value'
                        ],
                        [
                            'shipmentPropsId' => 106,
                            'value' => 'Description value'
                        ],
                    ],
                ],
            ]
        ]
    );

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

Ответ в случае успеха

HTTP-статус: 200

{
    "result":{
        "propertyValues":[
            {
                "code":null,
                "id":38164,
                "name":"Comments",
                "value":"Comments value"
            },
            {
                "code":null,
                "id":38165,
                "name":"Description",
                "value":"Description value"
            }
        ]
    },
    "time":{
        "start":1718022201.149589,
        "finish":1718022201.726496,
        "duration":0.5769069194793701,
        "processing":0.38397693634033203,
        "date_start":"2024-06-10T15:23:21+03:00",
        "date_finish":"2024-06-10T15:23:21+03:00"
    }
}

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

Название
тип
Описание
result
object
Корневой элемент ответа
propertyValues
sale_shipment_property_value[]
Массив объектов, содержащих информацию о значениях свойств отгрузок
time
time
Информация о времени выполнения запроса

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

HTTP-статус: 400

{
    "error":100,
    "error_description":"Could not find value for parameter {fields}"
}

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

КодОписание
200040300020Недостаточно прав для изменения значений свойств
100Не указаны обязательные параметры
201040400006Некорректный идентификатор отгрузки
201040400007Отгрузка не найдена
201040400008Ошибка сохранения заказа
0Другие ошибки (например, фатальные ошибки)
  • [](./sale-shipment-property-value-get)
  • [](./sale-shipment-property-value-list)
  • [](./sale-shipment-propertyvalue-delete)
  • [](./sale-shipment-property-value-get-fields)

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

Советы эксперта по интеграции:

  • Всегда используйте кэширование при частых запросах к sale.shipmentpropertyvalue.modify, чтобы разгрузить базу данных.
  • Соблюдайте стандарты PSR при написании обработчиков для «Обновить значения свойств отгрузки sale.shipmentpropertyvalue.modify».
  • Регулярно проводите аудит производительности системы с помощью встроенного монитора 1С-Битрикс.

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

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

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

Related Post

Оптимизация работы модуля почтовых событий и шаблонов писем в 1С-БитриксОптимизация работы модуля почтовых событий и шаблонов писем в 1С-Битрикс

Высокая скорость загрузки сайта и безупречная серверная безопасность — обязательные требования для успешного коммерческого проекта на 1С-Битрикс. Услуга «Оптимизация работы модуля почтовых событий и шаблонов писем в 1С-Битрикс» обеспечивает перенос

Получить список всех настраиваемых полей заданного шаблона реквизитов crm.req…Получить список всех настраиваемых полей заданного шаблона реквизитов crm.req…

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

Bitrix\Main\Web\HttpClient: Правильная отправка GET и POST запросов (замена cURL)Bitrix\Main\Web\HttpClient: Правильная отправка GET и POST запросов (замена cURL)

Многие разработчики по привычке используют стандартные функции PHP curl_* для обращения к внешним сервисам. Однако в Битрикс есть собственная мощная обертка — \Bitrix\Main\Web\HttpClient. Она учитывает настройки прокси сервера (из .settings.php), корректно работает с