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

Добавить привязку оплаты к отгрузке sale.paymentItemShipment.add

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

Добавить привязку оплаты к отгрузке sale.paymentItemShipment.add

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

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

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

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

fields: {
    shipmentId: значение,
    paymentId: значение,
    xmlId: 'значение'
}

Параметр fields

Название
тип
Описание
shipmentId
sale_order_shipment.id
Идентификатор отгрузки
paymentId*
sale_order_payment.id
Идентификатор оплаты
xmlId
string
Внешний идентификатор записи

Примеры кода

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"fields":{"shipmentId":2471,"paymentId":1025,"xmlId":"myXmlId"}}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/sale.paymentitemshipment.add
  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"fields":{"shipmentId":2471,"paymentId":1025,"xmlId":"myXmlId"},"auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/sale.paymentitemshipment.add
  • JS
    try
    {
    	const response = await $b24.callMethod(
    		'sale.paymentitemshipment.add', {
    			fields: {
    				shipmentId: 2471,
    				paymentId: 1025,
    				xmlId: 'myXmlId',
    			}
    		}
    	);
    	
    	const result = response.getData().result;
    	console.info(result);
    }
    catch( error )
    {
    	console.error(error);
    }
  • PHP
    try {
        $response = $b24Service
            ->core
            ->call(
                'sale.paymentitemshipment.add',
                [
                    'fields' => [
                        'shipmentId' => 2471,
                        'paymentId' => 1025,
                        'xmlId'     => 'myXmlId',
                    ],
                ]
            );
    
        $result = $response
            ->getResponseData()
            ->getResult();
    
        echo 'Success: ' . print_r($result, true);
        // Нужная вам логика обработки данных
        processData($result);
    
    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Error adding payment item shipment: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod(
        'sale.paymentitemshipment.add', {
            fields: {
                shipmentId: 2471,
                paymentId: 1025,
                xmlId: 'myXmlId',
            }
        },
        function(result) {
            if (result.error()) {
                console.error(result.error());
            } else {
                console.info(result.data());
            }
        }
    );
  • PHP CRest
    require_once('crest.php');

    $result = CRest::call(
        'sale.paymentitemshipment.add',
        [
            'fields' => [
                'shipmentId' => 2471,
                'paymentId' => 1025,
                'xmlId' => 'myXmlId',
            ]
        ]
    );

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

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

HTTP-статус: 200

{
    "result":{
        "paymentItemShipment":{
            "dateInsert":"2024-04-15T09:22:26+03:00",
            "id":1181,
            "paymentId":1025,
            "shipmentId":2471,
            "xmlId":"myXmlId"
        }
    },
    "time":{
        "start":1713165816.941795,
        "finish":1713165817.220281,
        "duration":0.2784857749938965,
        "processing":0.045699119567871094,
        "date_start":"2024-04-15T10:23:36+03:00",
        "date_finish":"2024-04-15T10:23:37+03:00"
    }
}

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

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

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

HTTP-статус: 400

{
    "error":201240400003,
    "error_description":"shipment not exists"
}

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

КодОписание
201250000001Элемент с указанными значениями полей shipmentId и paymentId уже существует.

В случае, если требуется изменить указанный ранее внешний идентификатор привязки, нужно воспользоваться методом sale.paymentitemshipment.update

201240400002Оплата не найдена. Некорректное значение переданного параметра paymentId
201240400003Отгрузка не найдена. Некорректное значение переданного параметра shipmentId
200040300020Недостаточно прав для добавления привязки оплаты к отгрузке
100Не указан или пустой параметр fields
0Не переданы обязательные поля
0Другие ошибки (например, фатальные ошибки)
  • [](./index)
  • [](./sale-payment-item-shipment-update)
  • [](./sale-payment-item-shipment-get)
  • [](./sale-payment-item-shipment-list)
  • [](./sale-payment-item-shipment-delete)
  • [](./sale-payment-item-shipment-get-fields)

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

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

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

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

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

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

Related Post

Добавить внешнюю линию telephony.externalLine.addДобавить внешнюю линию telephony.externalLine.add

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

Событие при создании записи в листе ожидания onBookingWaitListItemAddСобытие при создании записи в листе ожидания onBookingWaitListItemAdd

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

Комплексный расчет сметы на сопровождение и развитие интернет-магазина на 1С-БитриксКомплексный расчет сметы на сопровождение и развитие интернет-магазина на 1С-Битрикс

Прозрачный расчет бюджета, честные сметы и понимание совокупной стоимости владения (TCO) — залог успешного сотрудничества и окупаемости инвестиций в веб-разработку на 1С-Битрикс. В статье «Комплексный расчет сметы на сопровождение и