Здравствуйте!
Подскажите, нужно сделать цикл, который разбивает запрос batch на 50, чтоб соблюсти лимит.
Есть уже открытые темы по этому вопросу, но я не смог применить те решения для моего кода.
Подскажите, нужно сделать цикл, который разбивает запрос batch на 50, чтоб соблюсти лимит.
Есть уже открытые темы по этому вопросу, но я не смог применить те решения для моего кода.
Код |
---|
<?php require_once('conf.php'); $_POST = json_decode(file_get_contents('php://input'), true); $prd = $_POST['products']; $batch = array(); $i = 0; $u = 0; foreach($prd as $value) { $num = $value['num']; $payer = $value['payer']; $prod = $value['prod']; $prod_count = count($value['prod']); $batch['list_'.$u] = 'crm.deal.list?'.http_build_query(array( 'filter' => array( 'UF_CRM_ORDERNUM' => $num ), 'select' => ['ID'] )); $batch['conts_'.$u] = 'crm.contact.list?'.http_build_query(array( 'filter' => array( 'UF_CRM_ORDERNUM' => $payer ), 'select' => ['ID'] )); $batch['company_'.$u] = 'crm.company.list?'.http_build_query(array( 'filter' => array( 'UF_CRM_ORDERNUM' => $payer ), 'select' => ['ID'] )); $batch['up_'.$u] = 'crm.deal.productrows.set?'.http_build_query(array( "id" => '$result[list_'.$u.'][0][ID]', 'rows' => $prod )); $c_res = '$result[conts_'.$u.'][0][ID]'; $comp_res = '$result[company_'.$u.'][0][ID]'; $batch['guest_'.$u] = 'crm.deal.update?'.http_build_query(array( "id" => '$result[list_'.$u.'][0][ID]', 'fields' => array( 'UF_CRM_1602240484' => $prod_count, 'CONTACT_ID' => $c_res, 'COMPANY_ID' => $comp_res ) )); $u++; } $appParams = http_build_query(array( 'halt' => 0, 'cmd' => $batch )); $appRequestUrl = CRM_WEBHOOK.'batch'; $curl=curl_init(); curl_setopt_array($curl, array( CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_POST => 1, CURLOPT_HEADER => 0, CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => $appRequestUrl, CURLOPT_POSTFIELDS => $appParams )); $out=curl_exec($curl); curl_close($curl); $result = json_decode($out, 1); print_r($out); ?> |