true, "page" => 1, "pageSize" => 50, "sort" => "id DESC" ); $i = 0; $db->onDuplicate(array("dateClose", "summPrice", "purchasePrice"), "orderId"); $remainRequest = 0; do { $pageSize = ($params["page"] * $params["pageSize"] >= $maxQueryLimit) ? floor( ($maxQueryLimit / ($params["page"] * $maxPageSize)) * $maxPageSize) : $maxPageSize; $params["pageSize"] = min($pageSize, $params["pageSize"]); $orders = $live->getOrders($params); if ( isset($orders["error"]) ) { echo "Error: " . $orders["error"]["statusCode"] . "\n" . $orders["error"]["message"] . "\n"; echo "Page: " . $params["page"] . "; pageSize: " . $pageSize . "\n"; $remainRequest = $orders["error"]["remainRequest"]; } else { foreach($orders["data"] as $order) { if(isset($order["id"])) { $order["dateCreate"] = date("Y-m-d H:i:s", strtotime($order["dateCreate"])); $order["dateClose"] = (isset($order["dateClose"]) && !is_null($order["dateClose"])) ? date("Y-m-d H:i:s", strtotime($order["dateClose"])) : null; $id = $db->insert ("orders", array( "orderId" => $order["id"], "counteragentId" => $order["counteragentId"], "dateCreate" => $order["dateCreate"], "dateClose" => $order["dateClose"], "shopId" => $order["shopId"], "statusId" => $order["statusId"], "typeOrderId" => $order["typeOrderId"], "summPrice" => $order["summ"]["price"], "purchasePrice" => $order["summ"]["purchasePrice"] )); if(!$id) { echo "Insert failed: " . $db->getLastError() . "\n"; } $i++; } } $remainRequest = $orders["remainRequest"]; if (!$dataLimit ) $dataLimit = $orders["total"]; echo "Grabbed: " . $i . "[" . $orders["total"] . "]; Page: " . $params["page"] . "[" . $params["pageSize"] . "]\n"; $params["page"]++; } echo "Remains: " . $remainRequest ."\n---\n"; //@file_put_contents('grab_orders.json', json_encode($params)); if ($remainRequest < 4) sleep($pauseLong); else sleep($pauseBetweenRequests); } while ($remainRequest > 1 && $i <= $dataLimit) ?>