$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 для определения успешности выполнения операции.