On this page
article
Поиск товаров сделки
Пример PHP-кода для получения товаров сделки в Битрикс24.
$dealId = "{{DealID}}"; // ID сделки, из которой нужно получить товары
$productIds = [];
$productCount = 0;
$operationStatus = "SUCCESS";
if (empty($dealId)) {
$this->WriteToTrackingService("КРИТИЧНО: Не указан ID сделки для получения товаров.");
$operationStatus = "ERROR: Deal ID is empty";
} else {
try {
// Вызов метода crm.deal.productrows.get для получения товаров сделки
$result = $this->call('crm.deal.productrows.get', ['id' => $dealId]);
if (isset($result['result']) && is_array($result['result'])) {
foreach ($result['result'] as $productRow) {
if (isset($productRow['PRODUCT_ID'])) {
$productIds[] = $productRow['PRODUCT_ID'];
}
}
$productCount = count($productIds);
} else {
$this->WriteToTrackingService("ОШИБКА: Не удалось получить товары для сделки ID: " . $dealId . ". Ответ API: " . json_encode($result));
$operationStatus = "ERROR: Failed to get product rows";
}
} catch (Exception $e) {
$this->WriteToTrackingService("ОШИБКА: Исключение при получении товаров для сделки ID: " . $dealId . ". Ошибка: " . $e->getMessage());
$operationStatus = "ERROR: Exception occurred";
}
}
$rootActivity = $this->GetRootActivity();
$rootActivity->SetVariable("ProductIDs", implode(",", $productIds));
$rootActivity->SetVariable("ProductCount", $productCount);
$rootActivity->SetVariable("OperationStatus", $operationStatus);
Параметры
DealID
(строка): ID сделки, из которой необходимо получить список товаров.
Возвращаемые значения
ProductIDs
(строка): Список ID товаров, разделенных запятыми.ProductCount
(целое число): Общее количество найденных товаров.OperationStatus
(строка): Статус выполнения операции. “SUCCESS” в случае успеха, или сообщение об ошибке в случае неудачи.
Рекомендации по использованию
- Убедитесь, что переменная
DealID
содержит корректный ID сделки. - Используйте
ProductIDs
для дальнейшей обработки списка товаров. - Проверяйте
OperationStatus
для определения успешности выполнения операции.