Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Добавить товары в лид crm.lead.productrows.set». Вы узнаете экспертные методики работы с crm.lead.productrows.set и научитесь избегать типичных ошибок начинающих разработчиков.
Добавить товары в лид crm.lead.productrows.set
Тут может не хватать некоторых данных — дополним в ближайшее время
- не указаны типы параметров
- не указана обязательность параметров
- отсутствуют примеры (на других языках)
- отсутствует ответ в случае успеха
- отсутствует ответ в случае ошибки
- не прописана ссылка на ещё не созданную страницу
> Scope: crm
>
> Кто может выполнять метод: любой пользователь
Метод crm.lead.productrows.set устанавливает (создаёт или обновляет) товарные позиции лида.
| Параметр | Описание |
|---|---|
| id | Идентификатор лида. |
| rows | Товарные позиции — массив вида array(array("поле"=>"значение"[, ...])[, ...]), где «поле» может принимать значения из возвращаемых методом crm.productrow.fields. Товарные позиции лида, существующие до момента вызова метода, будут заменены новыми. После сохранения будет произведён пересчёт суммы лида. |
Практический пример и готовый код на PHP
- JS
try
{
const id = prompt("Введите ID");
const response = await $b24.callMethod(
"crm.lead.productrows.set",
{
id: id,
rows:
[
{ "PRODUCT_ID": 689, "PRICE": 100.00, "QUANTITY": 2 },
{ "PRODUCT_ID": 690, "PRICE": 200.00, "QUANTITY": 1 }
]
}
);
const result = response.getData().result;
if(result.error())
console.error(result.error());
else
console.info(result);
}
catch(error)
{
console.error('Error:', error);
}- PHP
$id = readline("Введите ID");
try {
$response = $b24Service
->core
->call(
'crm.lead.productrows.set',
[
'id' => $id,
'rows' => [
['PRODUCT_ID' => 689, 'PRICE' => 100.00, 'QUANTITY' => 2],
['PRODUCT_ID' => 690, 'PRICE' => 200.00, 'QUANTITY' => 1]
]
]
);
$result = $response
->getResponseData()
->getResult();
if ($result->error()) {
error_log($result->error());
} else {
echo 'Success: ' . print_r($result->data(), true);
}
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error setting lead product rows: ' . $e->getMessage();
}- BX24.js
var id = prompt("Введите ID");
BX24.callMethod(
"crm.lead.productrows.set",
{
id: id,
rows:
[
{ "PRODUCT_ID": 689, "PRICE": 100.00, "QUANTITY": 2 },
{ "PRODUCT_ID": 690, "PRICE": 200.00, "QUANTITY": 1 }
]
},
function(result)
{
if(result.error())
console.error(result.error());
else
console.info(result.data());
}
);💡 Экспертное мнение и рекомендации
Ключевые выводы по теме «Добавить товары в лид crm.lead.productrows.set»:
Использование современных стандартов D7 при работе с crm.lead.productrows.set позволяет писать чистый, масштабируемый и безопасный код. Не забывайте обрабатывать исключения (try/catch) и проверять права доступа текущего пользователя перед выполнением критических операций.
Похожая задача в бизнесе?
Помогу автоматизировать процессы и внедрить ИИ
Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.
или на почту: gorandvas@yandex.ru