Блог Горошко Андрея 1C-Битрикс,Bitrix24 Создать оповещения по транспортной заявке sale.delivery.request.sendmessage

Создать оповещения по транспортной заявке sale.delivery.request.sendmessage

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

Создать оповещения по транспортной заявке sale.delivery.request.sendmessage

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

Метод создает оповещения по транспортной заявке.

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

Название
тип
Описание
DELIVERY_ID
sale_delivery_service.ID
Идентификатор службы доставки, к которой относится транспортная заявка.

Получить идентификаторы sale_delivery_service.ID служб доставки можно с помощью метода sale.delivery.getlist

REQUEST_ID
string
Идентификатор транспортной заявки.

Идентификатор назначается внешней системой в ответе вебхука на создание заказа на доставку (подробнее в описании вебхука Создание заказа на доставку)

ADDRESSEE
string
Адресат сообщения.

Возможные значения:
— MANAGER — менеджер
— RECIPIENT — получатель груза

MESSAGE
object
Сообщение (подробное описание приведено ниже)

Параметр MESSAGE {#parametr-message}

Название
тип
Описание
SUBJECT
string
Заголовок сообщения.

Обязательно нужно заполнить хотя бы одно из следующих полей: SUBJECT, BODY

BODY
string
Тело сообщения.

В теле сообщения возможно использование макросов для замены времени и денежных значений.

Обязательно нужно заполнить хотя бы одно из следующих полей: SUBJECT, BODY

STATUS
object
Статус сообщения (подробное описание приведено ниже)
MONEY_VALUES
object
Объект в формате ключ => значение.

Используется для замены денежных значений в теле сообщения (смотрите пример ниже)

Параметр STATUS {#parametr-status}

Название
тип
Описание
MESSAGE
string
Текстовое название статуса сообщения
SEMANTIC
string
Значение семантики статуса.

Возможные значения:
— success — успех
— process — в процессе
— error — ошибка

Примеры кода

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"DELIVERY_ID":225,"REQUEST_ID":"4757aca4931a4f029f49c0db4374d13d","ADDRESSEE":"MANAGER","MESSAGE":{"SUBJECT":"Your order is on its way","BODY":"Estimated delivery price: #MONEY#","MONEY_VALUES":{"#MONEY#":351.2},"STATUS":{"MESSAGE":"Success","SEMANTIC":"success"}}}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/sale.delivery.request.sendmessage
  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"DELIVERY_ID":225,"REQUEST_ID":"4757aca4931a4f029f49c0db4374d13d","ADDRESSEE":"MANAGER","MESSAGE":{"SUBJECT":"Your order is on its way","BODY":"Estimated delivery price: #MONEY#","MONEY_VALUES":{"#MONEY#":351.2},"STATUS":{"MESSAGE":"Success","SEMANTIC":"success"}},"auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/sale.delivery.request.sendmessage
  • JS
    try
    {
    	const response = await $b24.callMethod(
    		'sale.delivery.request.sendmessage', {
    			DELIVERY_ID: 225,
    			REQUEST_ID: "4757aca4931a4f029f49c0db4374d13d",
    			ADDRESSEE: "MANAGER",
    			MESSAGE: {
    				SUBJECT: "Your order is on its way",
    				BODY: "Estimated delivery price: #MONEY#",
    				MONEY_VALUES: {
    					"#MONEY#": 351.2,
    				},
    				STATUS: {
    					MESSAGE: "Success",
    					SEMANTIC: "success",
    				},
    			},
    		}
    	);
    	
    	const result = response.getData().result;
    	if (result.error()) {
    		console.error(result.error());
    	} else {
    		console.info(result);
    	}
    }
    catch( error )
    {
    	console.error(error);
    }
  • PHP
    try {
        $response = $b24Service
            ->core
            ->call(
                'sale.delivery.request.sendmessage',
                [
                    'DELIVERY_ID' => 225,
                    'REQUEST_ID' => "4757aca4931a4f029f49c0db4374d13d",
                    'ADDRESSEE' => "MANAGER",
                    'MESSAGE' => [
                        'SUBJECT' => "Your order is on its way",
                        'BODY' => "Estimated delivery price: #MONEY#",
                        'MONEY_VALUES' => [
                            "#MONEY#" => 351.2,
                        ],
                        'STATUS' => [
                            'MESSAGE' => "Success",
                            'SEMANTIC' => "success",
                        ],
                    ],
                ]
            );
    
        $result = $response
            ->getResponseData()
            ->getResult();
    
        echo 'Success: ' . print_r($result, true);
    
    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Error sending delivery message: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod(
        'sale.delivery.request.sendmessage', {
            DELIVERY_ID: 225,
            REQUEST_ID: "4757aca4931a4f029f49c0db4374d13d",
            ADDRESSEE: "MANAGER",
            MESSAGE: {
                SUBJECT: "Your order is on its way",
                BODY: "Estimated delivery price: #MONEY#",
                MONEY_VALUES: {
                    "#MONEY#": 351.2,
                },
                STATUS: {
                    MESSAGE: "Success",
                    SEMANTIC: "success",
                },
            },
        },
        function(result) {
            if (result.error()) {
                console.error(result.error());
            } else {
                console.info(result.data());
            }
        }
    );
  • PHP CRest
    require_once('crest.php');

    $result = CRest::call(
        'sale.delivery.request.sendmessage',
        [
            'DELIVERY_ID' => 225,
            'REQUEST_ID' => "4757aca4931a4f029f49c0db4374d13d",
            'ADDRESSEE' => "MANAGER",
            'MESSAGE' => [
                'SUBJECT' => "Your order is on its way",
                'BODY' => "Estimated delivery price: #MONEY#",
                'MONEY_VALUES' => [
                    "#MONEY#" => 351.2,
                ],
                'STATUS' => [
                    'MESSAGE' => "Success",
                    'SEMANTIC' => "success",
                ],
            ],
        ]
    );

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

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

HTTP-статус: 200

{
    "result":true,
    "time":{
        "start":1714561617.200821,
        "finish":1714561617.526123,
        "duration":0.3253021240234375,
        "processing":0.1471860408782959,
        "date_start":"2024-05-01T14:06:57+03:00",
        "date_finish":"2024-05-01T14:06:57+03:00"
    }
}

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

Название
тип
Описание
result
boolean
Результат отправки сообщения по транспортной заявке
time
time
Информация о времени выполнения запроса

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

HTTP-статус: 400, 403

{
    "error":"DELIVERY_NOT_FOUND",
    "error_description":"Delivery service has not been found"
}

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

КодОписаниеСтатус
DELIVERY_ID_NOT_SPECIFIEDНе указан идентификатор службы доставки400
DELIVERY_NOT_FOUNDСлужба доставки не найдена400
REQUEST_ID_NOT_SPECIFIEDНе указан идентификатор транспортной заявки400
REQUEST_NOT_FOUNDТранспортная заявка не найдена400
ADDRESSEE_IS_NOT_SPECIFIEDНе указан получатель сообщения400
ADDRESSEE_UNEXPECTED_VALUEНеизвестный получатель сообщения.

Допустимые значения:
— MANAGER — менеджер
— RECIPIENT — получатель груза

400
MESSAGE_NOT_SPECIFIEDНе указано сообщение.

Либо заголовок, либо тело сообщения должны быть указаны обязательно

400
MESSAGE_STATUS_NOT_SPECIFIEDНе указан статус сообщения400
MESSAGE_STATUS_SEMANTIC_NOT_SPECIFIEDНе указана семантика статуса сообщения400
UNEXPECTED_MESSAGE_STATUS_SEMANTICНеизвестная семантика статуса сообщения400
REQUEST_SHIPMENT_NOT_FOUNDНе найдены отгрузки, привязанные к указанной транспортной заявке400
ACCESS_DENIEDНедостаточно прав для добавления службы доставки403
  • [](./sale-delivery-request-update)
  • [](./sale-delivery-request-delete)

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

Ключевые выводы по теме «Создать оповещения по транспортной заявке sale.delivery.request.sendmessage»:

Использование современных стандартов D7 при работе с sale.delivery.request.sendmessage позволяет писать чистый, масштабируемый и безопасный код. Не забывайте обрабатывать исключения (try/catch) и проверять права доступа текущего пользователя перед выполнением критических операций.

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

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

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

Related Post

Интеграция Битрикс24 с IP-АТС Mango Office с многоканальными номерами и сценариями IVRИнтеграция Битрикс24 с IP-АТС Mango Office с многоканальными номерами и сценариями IVR

Профессиональная настройка и комплексная автоматизация Битрикс24 CRM позволяет выстроить прозрачный отдел продаж, исключить потерю обращений и автоматизировать рутинный документооборот компании. Услуга «Интеграция Битрикс24 с IP-АТС Mango Office с многоканальными номерами

Получить элементы перечисления «Тип описания» crm.enum.contenttypeПолучить элементы перечисления «Тип описания» crm.enum.contenttype

При разработке и поддержке проектов на платформе 1С-Битрикс критически важно использовать современные стандарты D7 API. В этом руководстве мы детально изучим тему «Получить элементы перечисления «Тип описания» crm.enum.contenttype», разберем архитектурные

Как использовать метод SDK bizproc.activity.log в Битрикс24Как использовать метод SDK bizproc.activity.log в Битрикс24

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