· 9 years ago · Sep 09, 2016, 02:26 PM
1<?php $___notjson=1; header('Content-Type: text/html; charset= utf-8');
2
3require_once $_SERVER['DOCUMENT_ROOT'].'/uAPImodule.php';
4require_once $_SERVER['DOCUMENT_ROOT'].'/PHPExcel/IOFactory.php';
5set_time_limit(500);
6// получаем xls c иÑходными данными и ÑохранÑем в файл
7$data_file_url = "http://arte-shop.ru/ost/Globo_ost.xls";
8$data = file_get_contents($data_file_url);
9$fh = fopen($_SERVER['DOCUMENT_ROOT']."/tmp_data.xls", "w");
10if(!$fh) exit("Ðе удалоÑÑŒ открыть поток Ð´Ð»Ñ tmp/tmp_data.xls");
11fwrite($fh, $data);
12fclose($fh);
13// переводим xls в csv формат
14$obj_PHPExcel_data = PHPExcel_IOFactory::load($_SERVER['DOCUMENT_ROOT']."/tmp_data.xls");
15$objWriter = PHPExcel_IOFactory::createWriter($obj_PHPExcel_data, 'CSV')
16 ->setDelimiter(',')
17 ->setEnclosure('"')
18 ->setLineEnding("\r\n")
19 ->setSheetIndex(0)
20 ->save($_SERVER['DOCUMENT_ROOT']."/tmp_data.csv");
21 ini_set('error_reporting', E_ALL);
22ini_set('display_errors', 1);
23ini_set('display_startup_errors', 1);
24// получаем маÑÑив Ñ Ð°ÐºÑ‚ÑƒÐ°Ð»ÑŒÐ½Ð¾Ð¹ информацией
25$data_to_update = array();
26$fh = fopen($_SERVER['DOCUMENT_ROOT']."/tmp_data.csv", "r");
27if(!$fh) exit("Ðе удалоÑÑŒ открыть поток Ð´Ð»Ñ tmp/tmp_data.csv");
28// пропуÑкаем заголовки
29fgetcsv($fh);
30$request = new Request(array(
31 'oauth_consumer_key' => 'Globo_stock_updater',
32 'oauth_consumer_secret' => 'zV6A.1TIqLQXfFgBEr6mtrupv2ilQ5',
33 'oauth_token' => 'kwDjOyqwdmxqOlE6DA1Op1B6N5GxaWnXweopiyFo',
34 'oauth_token_secret' => 'KwRDByM8fVy.3eyhV3NXXzrHu4HUQLuMc3KkPRcU'
35));
36$res = object_from_file($_SERVER['DOCUMENT_ROOT'].'/array_stock.txt');
37if(empty($res)) {
38 while ($string = fgetcsv($fh)) {
39 $data_to_update[$string[0]] = array(
40 "stock" => $string[1],
41 );
42 }
43 fclose($fh);
44// подготавливаем объект Ð´Ð»Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñов по api
45
46// получаем ÑпиÑок вÑех товаров
47 $all_goods = array();
48 $cur_page = 1;
49 do {
50 $response = $request->get('/shop/request', array(
51 'page' => 'allgoods',
52 'pnum' => $cur_page
53 ));
54
55 $response = json_decode($response);
56
57 $num_pages = $response->success->paginator->num_pages;
58 foreach ($response->success->goods_list as $product) {
59 if (isset($data_to_update[$product->entry_art_no])) {
60 $data_to_update[$product->entry_art_no]["id"] = $product->entry_id;
61 }
62 }
63 $cur_page++;
64 } while ($cur_page <= $num_pages);
65
66// обновлÑем информацию о наличии
67}else{
68 $data_to_update = $res;
69}
70$counter = 1;
71$schetcik = 1;
72foreach ($data_to_update as $art_no => $value) {
73 if(isset($value["id"])) {
74 $response = $request->get('/shop/editgoods', array(
75 'method' => 'cnt-save',
76 'id' => $value["id"],
77 'stock_q' => $value["stock"],
78
79 ));
80 $response = json_decode($response);
81
82 print_r($schetcik);
83 /*echo "<pre>";
84 print_r($response);
85 echo "</pre>";*/
86 $counter++;
87 $schetcik++;
88 unset($data_to_update[$art_no]);
89 if($counter == 5){
90 $counter = 1;
91
92 object2file($data_to_update,$_SERVER['DOCUMENT_ROOT'].'/array_stock.txt');
93 }
94 }
95
96}
97
98
99
100function object2file($value, $filename)
101{
102 $str_value = serialize($value);
103
104 $f = fopen($filename, 'w');
105 fwrite($f, $str_value);
106 fclose($f);
107}
108
109
110function object_from_file($filename)
111{
112 $file = file_get_contents($filename);
113 $value = unserialize($file);
114 return $value;
115}
116
117unlink($_SERVER['DOCUMENT_ROOT']."/tmp_data.csv");
118unlink($_SERVER['DOCUMENT_ROOT']."/tmp_data.xls");
119unlink($_SERVER['DOCUMENT_ROOT']."/array_stock.txt");
120
121exit();
122?>