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

Добавить свойство отгрузки sale.shipmentproperty.add

При разработке и поддержке проектов на платформе 1С-Битрикс критически важно использовать современные стандарты D7 API. В этом руководстве мы детально изучим тему «Добавить свойство отгрузки sale.shipmentproperty.add», разберем архитектурные особенности и предоставим готовые к интеграции примеры кода.

Добавить свойство отгрузки sale.shipmentproperty.add

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

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

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

Название
тип
Описание
fields
object
Значения полей для создания свойства отгрузки

Параметр fields

Общие параметры, актуальные для свойств отгрузки любого типа:

Название
тип
Описание
personTypeId
sale_person_type.id
Идентификатор типа плательщика
propsGroupId
sale_order_property_group.id
Идентификатор группы свойств
name
string
Название свойства отгрузки
type*
string
Тип свойства отгрузки.
Возможные значения:
— STRING
— Y/N
— NUMBER
— ENUM
— FILE
— DATE
— LOCATION
— ADDRESS
code
string
Символьный код свойства отгрузки
active
string
Индикатор активности свойства отгрузки.
Возможные значения:
— Y — да
— N — нет

Если не передано, то по умолчанию значение Y (свойство добавляется активным)

util
string
Индикатор, является ли свойство отгрузки служебным. Служебные свойства отгрузки не отображаются в публичной части.
Возможные значения:
— Y — да
— N — нет

Если не передано, то по умолчанию значение N

userProps
string
Индикатор, входит ли свойство отгрузки в профиль покупателя.
Возможные значения:
— Y — да
— N — нет

Если не передано, то по умолчанию значение N

isFiltered
string
Индикатор, доступно ли свойство отгрузки в фильтре на странице списка отгрузок.
Возможные значения:
— Y — да
— N — нет

Если не передано, то по умолчанию значение N

sort
integer
Сортировка
description
string
Описание свойства отгрузки
required
string
Индикатор обязательности заполнения значения свойства отгрузки.
Возможные значения:
— Y — да
— N — нет

Если не передано, то по умолчанию значение N

multiple
string
Индикатор, является ли свойство отгрузки множественным. Для множественных свойств возможно указать несколько значений.
Возможные значения:
— Y — да
— N — нет

Если не передано, то по умолчанию значение N

xmlId
string
Внешний идентификатор свойства отгрузки
defaultValue
any
Дефолтное значение свойства отгрузки.
Для множественных свойств отгрузки (multiple) поддерживается передача массива значений
settings
object
Объект в формате {"field_1": "value_1", ... "field_N": "value_N"} для передачи дополнительных настроек свойства отгрузки.

Список поддерживаемых ключей этого объекта зависит от типа свойства. Для некоторых типов свойств (например, Y/N) дополнительные свойства не предусмотрены. Описание параметра settings для разных типов свойств приведено ниже

Параметры, актуальные для свойств отгрузки типа STRING

Название
тип
Описание
isProfileName
string
Индикатор необходимости использования значения данного свойства отгрузки в качестве названия профиля пользователя.
Возможные значения:
— Y — да
— N — нет

Если не передано, то по умолчанию выставляется в значение N

isPayer
string
Индикатор необходимости использования значения данного свойства отгрузки в качестве имени плательщика.
Возможные значения:
— Y — да
— N — нет

Если не передано, то по умолчанию выставляется в значение N

isEmail
string
Индикатор необходимости использования значения данного свойства отгрузки в качестве e-mail (например, при регистрации нового пользователя при оформлении заказа).
Возможные значения:
— Y — да
— N — нет

Если не передано, то по умолчанию выставляется в значение N

isPhone
string
Индикатор необходимости использования значения данного свойства отгрузки в качестве номера телефона.
Возможные значения:
— Y — да
— N — нет

Если не передано, то по умолчанию выставляется в значение N

isZip
string
Индикатор необходимости использования значения данного свойства отгрузки в качестве почтового индекса.
Возможные значения:
— Y — да
— N — нет

Если не передано, то по умолчанию выставляется в значение N

isAddress
string
Индикатор необходимости использования значения данного свойства отгрузки в качестве адреса.
Возможные значения:
— Y — да
— N — нет

Если не передано, то по умолчанию выставляется в значение N

Параметры, актуальные для свойств отгрузки типа LOCATION

Название
тип
Описание
isLocation
string
Индикатор необходимости использования значения данного свойства отгрузки в качестве местоположения покупателя для расчета стоимости доставки.
Возможные значения:
— Y — да
— N — нет

Если не передано, то по умолчанию выставляется в значение N

isLocation4tax
string
Индикатор необходимости использования значения данного свойства отгрузки в качестве местоположения покупателя для определения ставок налогов.
Возможные значения:
— Y — да
— N — нет

Если не передано, то по умолчанию выставляется в значение N

inputFieldLocation
string
Устаревшее поле. Не используется

Параметры, актуальные для свойств отгрузки типа ADDRESS

Название
тип
Описание
isAddressFrom
string
Индикатор необходимости использования значения данного свойства отгрузки в качестве адреса покупателя, откуда необходимо забрать заказ для расчета стоимости доставки.
Возможные значения:
— Y — да
— N — нет

Если не передано, то по умолчанию выставляется в значение N

isAddressTo
string
Индикатор необходимости использования значения данного свойства отгрузки в качестве адреса покупателя, куда необходимо доставить заказ для расчета стоимости доставки.
Возможные значения:
— Y — да
— N — нет

Если не передано, то по умолчанию выставляется в значение N

Параметр settings

Параметры, актуальные для свойств отгрузки типа STRING

Название
тип
Описание
minlength
integer
Минимально допустимая длина (кол-во символов) значения свойства отгрузки
maxlength
integer
Максимально допустимая длина (кол-во символов) значения свойства отгрузки
pattern
string
Регулярное выражение для проверки значения свойства отгрузки.
Примеры:
Регулярное выражение для проверки номера телефона «^((8\|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$«
Регулярное выражение для проверки написания даты в формате ДД/ММ/ГГГГ:
«^(0?[1-9]|[12][0-9]|3[01])[\/\-](0?[1-9]|1[012])[\/\-]\d{4}$«
multiline
string
Индикатор необходимости отображения многострочного поля для ввода значения свойства.Возможные значения:
— Y — да
— N — нет

Если не передано, то по умолчанию выставляется в значение N

cols
integer
Устаревший параметр. Не используется
rows
integer
Устаревший параметр. Не используется
size
integer
Устаревший параметр. Не используется

Параметры, актуальные для свойств отгрузки типа NUMBER

Название
тип
Описание
min
integer
Минимально допустимое значение для данного свойства отгрузки
max
integer
Максимально допустимое значение для данного свойства отгрузки
step
integer
Шаг изменения значения. Используется в некоторых пользовательских интерфейсах для удобства изменения значения свойства отгрузки

Параметры, актуальные для свойств отгрузки типа ENUM

Название
тип
Описание
multielement
string
Индикатор необходимости отображения свойства отгрузки в виде списка чекбоксов.
Значение используется в некоторых пользовательских интерфейсах.
Возможные значения:
— Y — да
— N — нет

Если не передано, то по умолчанию выставляется в значение N

size
integer
Количество отображаемых значений свойства отгрузки. Значение используется в некоторых пользовательских интерфейсах

Параметры, актуальные для свойств отгрузки типа FILE

Название
тип
Описание
maxsize
integer
Максимально допустимый размер загружаемого файла в байтах
accept
string
Список расширений файлов, которые допустимо загружать в значение данного свойства отгрузки. Пример: png, doc, zip

Параметры, актуальные для свойств отгрузки типа DATE

Название
тип
Описание
time
string
Индикатор необходимости добавления возможности выбора времени при работе со значением данного свойства отгрузки. Значение используется в некоторых пользовательских интерфейсах.
Возможные значения:
— Y — да
— N — нет

Если не передано, то по умолчанию выставляется в значение N

Примеры кода

  • cURL (Webhook)
    -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"fields":{"personTypeId":3,"propsGroupId":6,"name":"Телефон (для связи с курьером)","type":"STRING","code":"PHONE","active":"Y","util":"N","userProps":"Y","isFiltered":"N","sort":500,"description":"описание свойства","required":"Y","multiple":"N","settings":{"multiline":"Y","maxlength":100},"xmlId":"","defaultValue":"","isProfileName":"Y","isPayer":"Y","isEmail":"N","isPhone":"N","isZip":"N","isAddress":"N"},"auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/sale.shipmentproperty.add
  • cURL (OAuth)
    -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"fields":{"personTypeId":3,"propsGroupId":6,"name":"Телефон (для связи с курьером)","type":"STRING","code":"PHONE","active":"Y","util":"N","userProps":"Y","isFiltered":"N","sort":500,"description":"описание свойства","required":"Y","multiple":"N","settings":{"multiline":"Y","maxlength":100},"xmlId":"","defaultValue":"","isProfileName":"Y","isPayer":"Y","isEmail":"N","isPhone":"N","isZip":"N","isAddress":"N"}}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/sale.shipmentproperty.add
  • JS
    try
    {
    	const response = await $b24.callMethod(
    		'sale.shipmentproperty.add', {
    			fields: {
    				personTypeId: 3,
    				propsGroupId: 6,
    				name: 'Телефон (для связи с курьером)',
    				type: 'STRING',
    				code: 'PHONE',
    				active: 'Y',
    				util: 'N',
    				userProps: 'Y',
    				isFiltered: 'N',
    				sort: 500,
    				description: 'описание свойства',
    				required: 'Y',
    				multiple: 'N',
    				settings: {
    					multiline: 'Y',
    					maxlength: 100
    				},
    				xmlId: '',
    				defaultValue: '',
    				isProfileName: 'Y',
    				isPayer: 'Y',
    				isEmail: 'N',
    				isPhone: 'N',
    				isZip: 'N',
    				isAddress: 'N',
    			}
    		}
    	);
    	
    	const result = response.getData().result;
    	console.info(result);
    }
    catch( error )
    {
    	console.error(error);
    }
  • PHP
    try {
        $response = $b24Service
            ->core
            ->call(
                'sale.shipmentproperty.add',
                [
                    'fields' => [
                        'personTypeId'  => 3,
                        'propsGroupId'  => 6,
                        'name'          => 'Телефон (для связи с курьером)',
                        'type'          => 'STRING',
                        'code'          => 'PHONE',
                        'active'        => 'Y',
                        'util'          => 'N',
                        'userProps'     => 'Y',
                        'isFiltered'    => 'N',
                        'sort'          => 500,
                        'description'   => 'описание свойства',
                        'required'      => 'Y',
                        'multiple'      => 'N',
                        'settings'      => [
                            'multiline' => 'Y',
                            'maxlength' => 100,
                        ],
                        'xmlId'         => '',
                        'defaultValue'  => '',
                        'isProfileName' => 'Y',
                        'isPayer'       => 'Y',
                        'isEmail'       => 'N',
                        'isPhone'       => 'N',
                        'isZip'         => 'N',
                        'isAddress'     => 'N',
                    ],
                ]
            );
    
        $result = $response
            ->getResponseData()
            ->getResult();
    
        echo 'Success: ' . print_r($result, true);
    
    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Error adding shipment property: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod(
    'sale.shipmentproperty.add', {
        fields: {
            personTypeId: 3,
            propsGroupId: 6,
            name: 'Телефон (для связи с курьером)',
            type: 'STRING',
            code: 'PHONE',
            active: 'Y',
            util: 'N',
            userProps: 'Y',
            isFiltered: 'N',
            sort: 500,
            description: 'описание свойства',
            required: 'Y',
            multiple: 'N',
            settings: {
                multiline: 'Y',
                maxlength: 100
            },
            xmlId: '',
            defaultValue: '',
            isProfileName: 'Y',
            isPayer: 'Y',
            isEmail: 'N',
            isPhone: 'N',
            isZip: 'N',
            isAddress: 'N',
        }
    },
    function(result) {
        if (result.error()) {
            console.error(result.error());
        } else {
            console.info(result.data());
        }
    }
    );
  • PHP CRest
    require_once('crest.php');

    $result = CRest::call(
        'sale.shipmentproperty.add',
        [
            'fields' => [
                'personTypeId' => 3,
                'propsGroupId' => 6,
                'name' => 'Телефон (для связи с курьером)',
                'type' => 'STRING',
                'code' => 'PHONE',
                'active' => 'Y',
                'util' => 'N',
                'userProps' => 'Y',
                'isFiltered' => 'N',
                'sort' => 500,
                'description' => 'описание свойства',
                'required' => 'Y',
                'multiple' => 'N',
                'settings' => [
                    'multiline' => 'Y',
                    'maxlength' => 100
                ],
                'xmlId' => '',
                'defaultValue' => '',
                'isProfileName' => 'Y',
                'isPayer' => 'Y',
                'isEmail' => 'N',
                'isPhone' => 'N',
                'isZip' => 'N',
                'isAddress' => 'N',
            ]
        ]
    );

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

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

HTTP-статус: 200

{
   "result":{
      "property":{
         "active":"Y",
         "code":"PHONE",
         "defaultValue":"",
         "description":"описание свойства",
         "id":96,
         "inputFieldLocation":"0",
         "isAddress":"N",
         "isAddressFrom":"N",
         "isAddressTo":"N",
         "isEmail":"N",
         "isFiltered":"N",
         "isLocation":"N",
         "isLocation4tax":"N",
         "isPayer":"Y",
         "isPhone":"N",
         "isProfileName":"Y",
         "isZip":"N",
         "multiple":"N",
         "name":"Телефон (для связи с курьером)",
         "personTypeId":3,
         "propsGroupId":6,
         "required":"Y",
         "settings":{
            "maxlength":"100",
            "multiline":"Y"
         },
         "sort":500,
         "type":"STRING",
         "userProps":"Y",
         "util":"N",
         "xmlId":""
      }
   },
   "time":{
      "start":1712818563.754118,
      "finish":1712818566.840385,
      "duration":3.0862669944763184,
      "processing":1.0286660194396973,
      "date_start":"2024-04-11T09:56:03+03:00",
      "date_finish":"2024-04-11T09:56:06+03:00"
   }
}

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

Название
тип
Описание
result
object
Корневой элемент ответа
property
sale_shipment_property
Объект с информацией о добавленном свойстве отгрузки
time
time
Информация о времени выполнения запроса

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

HTTP-статус: 400

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

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

КодОписание
200850000005Указано пустое значение для типа плательщика
200850000006Внутренняя ошибка добавления свойства
200850000009Ошибка возникает при попытке создать свойство отгрузки со значением параметра multiple, выставленным в Y, в том случае, если не передан параметр isFiltered.
Фильтрация по множественным свойствам отгрузок не поддерживается
200850000010Ошибка возникает при попытке создать свойство отгрузки со значением параметра multiple, выставленным в Y, в том случае, если значение параметра isFiltered не равно N.
Фильтрация по множественным свойствам отгрузок не поддерживается
200850000011Ошибка возникает при попытке создать свойство отгрузки с типом LOCATION и значением параметра isLocation, выставленным в Y, в том случае, если значение параметра multiple не указано.
Не поддерживается множественность у свойств отгрузки, отмеченных индикатором isLocation
200850000012Ошибка возникает при попытке создать свойство отгрузки с типом LOCATION и значением параметра isLocation, выставленным в Y, в том случае, если значение параметра multiple не равно N.
Не поддерживается множественность у свойств отгрузки, отмеченных индикатором isLocation
200850000013Ошибка возникает при попытке создать свойство отгрузки с типом LOCATION и значением параметра isLocation4tax, выставленным в Y, в том случае, если значение параметра multiple не указано.
Не поддерживается множественность у свойств отгрузки, отмеченных индикатором isLocation4tax
200850000014Ошибка возникает при попытке создать свойство отгрузки с типом LOCATION и значением параметра isLocation4tax, выставленным в Y, в том случае, если значение параметра multiple не равно N.
Не поддерживается множественность у свойств отгрузки, отмеченных индикатором isLocation4tax
200850000015Ошибка возникает при попытке создать свойство отгрузки с типом STRING и значением параметра isProfileName, выставленным в Y, в том случае, если значение параметра required не указано.
Название профиля обязательно и не может быть пустым
200850000016Ошибка возникает при попытке создать свойство отгрузки с типом STRING и значением параметра isProfileName, выставленным в Y, в том случае, если значение параметра required не равно Y.
Название профиля обязательно и не может быть пустым
200040300020Недостаточно прав для добавления свойства отгрузки
100Не указан или пустой параметр fields
0Не переданы обязательные поля
0Другие ошибки (например, фатальные ошибки)
  • [](./index)
  • [](./sale-shipment-property-update)
  • [](./sale-shipment-property-get)
  • [](./sale-shipment-property-list)
  • [](./sale-shipment-property-delete)
  • [](./sale-shipment-property-get-fields-by-type)
  • [](../../../tutorials/sale/delivery-in-crm)

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

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

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

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

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

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

Related Post

Обновить статус «доставлено» imconnector.send.status.deliveryОбновить статус «доставлено» imconnector.send.status.delivery

При разработке и поддержке проектов на платформе 1С-Битрикс критически важно использовать современные стандарты D7 API. В этом руководстве мы детально изучим тему «Обновить статус «доставлено» imconnector.send.status.delivery», разберем архитектурные особенности и

Стоимость разработки мобильного приложения для интернет-магазина БитриксСтоимость разработки мобильного приложения для интернет-магазина Битрикс

Выбор редакции, расчет точной сметы и покупка официальных лицензий 1С-Битрикс и Битрикс24 — это ключевой этап планирования любого цифрового проекта. Информация по теме «Стоимость разработки мобильного приложения для интернет-магазина Битрикс»

Верстка блока подписки на рассылку с интеграцией с email-сервисамиВерстка блока подписки на рассылку с интеграцией с email-сервисами

Качественная frontend-разработка и профессиональная натяжка макетов на 1С-Битрикс являются фундаментальным фактором конверсии сайта и его позиций в поисковых системах. Услуга «Верстка блока подписки на рассылку с интеграцией с email-сервисами» гарантирует