init commit
This commit is contained in:
100
grab_orders.php
Normal file
100
grab_orders.php
Normal file
@@ -0,0 +1,100 @@
|
||||
<?php
|
||||
|
||||
if (php_sapi_name() != "cli")
|
||||
{
|
||||
die("Only CLI mode allowed");
|
||||
}
|
||||
|
||||
require_once("class_livesklad.php");
|
||||
require_once("class_MysqliDb.php");
|
||||
|
||||
|
||||
$live = new livesklad(API_LOGIN, API_PASSWD);
|
||||
$db = new MysqliDb ('localhost', DB_LOGIN, DB_PASSWD, DB_NAME);
|
||||
|
||||
$pauseBetweenRequests = 7;
|
||||
$pauseLong = 5 * 60;
|
||||
$dataLimit = 100;
|
||||
$maxPageSize = 50;
|
||||
$maxQueryLimit = 10000;
|
||||
|
||||
set_time_limit(0);
|
||||
|
||||
$params = array (
|
||||
"isVisible" => 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)
|
||||
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user