Блог Горошко Андрея Bitrix24,PHP Получить товары сделки crm.deal.productrows.get

Получить товары сделки crm.deal.productrows.get

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

Получить товары сделки crm.deal.productrows.get

> Scope: crm
>
> Кто может выполнять метод: пользователь с правом «чтения» сделки

Метод crm.deal.productrows.get возвращает товарные позиции сделки.

Название
тип
Описание
*id^^
integer
Идентификатор сделки. Можно получить с помощью метода получения списка сделок: crm.deal.list или при создании сделки: crm.deal.add

Примеры кода

Получить товарные позиции сделки с id = 5

  • cURL (Webhook)
    curl -X POST \
	-H "Content-Type: application/json" \
	-H "Accept: application/json" \
	-d '{"id":5}' \
	https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/crm.deal.productrows.get
  • cURL (OAuth)
    curl -X POST \
	-H "Content-Type: application/json" \
	-H "Accept: application/json" \
	-d '{"id":5,"auth":"**put_access_token_here**"}' \
	https://**put_your_bitrix24_address**/rest/crm.deal.productrows.get
  • JS
    try
    {
    	const response = await $b24.callMethod(
    		'crm.deal.productrows.get',
    		{
    			id: 5,
    		}
    	);
    	
    	const result = response.getData().result;
    	result.error()
    		? console.error(result.error())
    		: console.info(result)
    	;
    }
    catch( error )
    {
    	console.error('Error:', error);
    }
  • PHP
    try {
        $response = $b24Service
            ->core
            ->call(
                'crm.deal.productrows.get',
                [
                    'id' => 5,
                ]
            );
    
        $result = $response
            ->getResponseData()
            ->getResult();
    
        if ($result->error()) {
            echo 'Error: ' . $result->error();
        } else {
            echo 'Data: ' . print_r($result->data(), true);
        }
    
    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Error getting deal product rows: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod(
        'crm.deal.productrows.get',
        {
            id: 5,
        },
        (result) => {
            result.error()
                ? console.error(result.error())
                : console.info(result.data())
            ;
        },
    );
  • PHP CRest
    require_once('crest.php');

	$result = CRest::call(
		'crm.deal.productrows.get',
		[
			'id' => 5
		]
	);

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

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

HTTP-статус: 200

{
	"result": [
		{
			"ID": "5",
			"OWNER_ID": "5",
			"OWNER_TYPE": "D",
			"PRODUCT_ID": 450,
			"PRODUCT_NAME": "Товар #2",
			"ORIGINAL_PRODUCT_NAME": "Товар #2",
			"PRODUCT_DESCRIPTION": null,
			"PRICE": 899.1,
			"PRICE_EXCLUSIVE": 899.1,
			"PRICE_NETTO": 999,
			"PRICE_BRUTTO": 999,
			"PRICE_ACCOUNT": "899.10",
			"QUANTITY": 1,
			"DISCOUNT_TYPE_ID": 2,
			"DISCOUNT_RATE": 10,
			"DISCOUNT_SUM": 99.9,
			"TAX_RATE": null,
			"TAX_INCLUDED": "Y",
			"CUSTOMIZED": "Y",
			"MEASURE_CODE": 796,
			"MEASURE_NAME": "шт",
			"SORT": 10,
			"XML_ID": "sale_basket_651",
			"TYPE": 1,
			"STORE_ID": 0,
			"RESERVE_ID": 31,
			"DATE_RESERVE_END": "26.12.2024",
			"RESERVE_QUANTITY": 1
		},
		{
			"ID": "4",
			"OWNER_ID": "5",
			"OWNER_TYPE": "D",
			"PRODUCT_ID": 449,
			"PRODUCT_NAME": "Товар #1",
			"ORIGINAL_PRODUCT_NAME": "Товар #1",
			"PRODUCT_DESCRIPTION": "Детальное описание",
			"PRICE": 100,
			"PRICE_EXCLUSIVE": 100,
			"PRICE_NETTO": 100,
			"PRICE_BRUTTO": 100,
			"PRICE_ACCOUNT": "100.00",
			"QUANTITY": 1,
			"DISCOUNT_TYPE_ID": 2,
			"DISCOUNT_RATE": 0,
			"DISCOUNT_SUM": 0,
			"TAX_RATE": null,
			"TAX_INCLUDED": "Y",
			"CUSTOMIZED": "Y",
			"MEASURE_CODE": 796,
			"MEASURE_NAME": "шт",
			"SORT": 20,
			"XML_ID": "sale_basket_650",
			"TYPE": 1,
			"STORE_ID": 1,
			"RESERVE_ID": 30,
			"DATE_RESERVE_END": "26.12.2024",
			"RESERVE_QUANTITY": 1
		}
	],
	"time": {
		"start": 1734969122.936213,
		"finish": 1734969123.586089,
		"duration": 0.6498758792877197,
		"processing": 0.14046597480773926,
		"date_start": "2024-12-23T17:52:02+02:00",
		"date_finish": "2024-12-23T17:52:03+02:00",
		"operating": 0
	}
}

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

Название
тип
Описание
result
productrow[]
Корневой элемент ответа, содержащий массив товарных позиций сделки
time
time
Информация о времени выполнения запроса

Тип productrow {#productrow}

Название
тип
Описание
ID
integer
Идентификатор товарной позиции
OWNER_ID
integer
Идентификатор сущности, к которой привязан товар. Для данного метода всегда будет равен id сделки
OWNER_TYPE
string
Строковый идентификатор типа сущности, к которому привязан товар. Для данного метода всегда будет равен D
PRODUCT_ID
integer
Идентификатор товара в каталоге. 0 если не из каталога

Для получения более подробной информации о товаре используйте catalog.product.get

PRODUCT_NAME
string
Наименование товарной позиции
ORIGINAL_PRODUCT_NAME
string
Наименование товарной позиции в каталоге
PRODUCT_DESCRIPTION
string
Описание товарной позиции
PRICE
double
Итоговая стоимость товара за единицу
PRICE_EXCLUSIVE
double
Стоимость за единицу с учетом скидок, без учета налогов
PRICE_NETTO
double
Стоимость за единицу без учета скидок и налогов
PRICE_BRUTTO
double
Стоимость за единицу без учета скидок, но с учетом налогов
PRICE_ACCOUNT
string
Стоимость товара в «валюте отчетов»
QUANTITY
integer
Количество единиц товара
DISCOUNT_TYPE_ID
integer
Тип скидки
Возможные типы:
— 1 — Абсолютный
— 2 — Процентный
DISCOUNT_RATE
double
Значение скидки в процентах (если используется тип скидки с процентным значением)
DISCOUNT_SUM
double
Абсолютное значение скидки (если используется тип скидки с абсолютным значением)
TAX_RATE
double
Ставка налога в процентах
TAX_INCLUDED
boolean
Индикатор того, включен ли налог в стоимость
Возможные значения:
— Y – налог включен
— N – налог не включен
CUSTOMIZED
boolean
Изменен (Устаревшее)
Возможные значения:
— Y — Да
— N — Нет
MEASURE_CODE
catalog_measure.code
Код единицы измерения
MEASURE_NAME
string
Текстовое представление единицы измерения (например — шт, кг, м, л и т.д.)
SORT
integer
Сортировка
XML_ID
string
Внешний код товара
TYPE
integer
Тип товара
Возможные значения:
— 1 — Простой товар
— 4 — Торговое предложение/вариация
— 7 — Услуга
STORE_ID
integer
Идентификатор склада. Для получения подробной информации о складе используйте catalog.store.get
RESERVE_ID
integer
Идентификатор резерва
DATE_RESERVE_END
date
Дата окончания резервации
RESERVE_QUANTITY
integer
Количество зарезервированных единиц товара

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

HTTP-статус: 400

{
  "error": "",
  "error_description": "The parameter id is invalid or not defined."
}

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

ОписаниеЗначение**
The parameter id is invalid or not defined.В параметр id передано некорректное значение
Access deniedУ пользователя нет прав на «чтение» сделки
Not foundСделка с переданным id не найдена
  • [](./crm-deal-productrows-set)

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

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

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

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

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

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

Related Post

Удалить открытую линию imopenlines.config.deleteУдалить открытую линию imopenlines.config.delete

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

Создать чат от лица чат-бота imbot.chat.addСоздать чат от лица чат-бота imbot.chat.add

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

Внедрение Битрикс24 для сервисных центров по ремонту электроники и бытовой техникиВнедрение Битрикс24 для сервисных центров по ремонту электроники и бытовой техники

Профессиональная настройка и комплексная автоматизация Битрикс24 CRM позволяет выстроить прозрачный отдел продаж, исключить потерю обращений и автоматизировать рутинный документооборот компании. Услуга «Внедрение Битрикс24 для сервисных центров по ремонту электроники и