Created
February 27, 2018 15:20
-
-
Save ugurunver/d993c0e0e5b6802e39f77406d0d20b49 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/* | |
PHP 7.0.22-0ubuntu0.16.04.1 (cli) ( NTS ) | |
Copyright (c) 1997-2017 The PHP Group | |
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies | |
with Zend OPcache v7.0.22-0ubuntu0.16.04.1, Copyright (c) 1999-2017, by Zend Technologies | |
`apt-get install php-curl` | |
*/ | |
define('API_ROOT', 'https://api.propars.net/api/v1/'); | |
class SiparisClient | |
{ | |
//public $customer_endpoint = API_ROOT.'core/customer/'; | |
//public $customer_address_endpoint = API_ROOT.'core/customeraddress/'; | |
//public $invoice_endpoint = API_ROOT.'finance/saleinvoice/'; | |
//public $item_endpoint = API_ROOT.'core/item/'; | |
public $sale_endpoint = API_ROOT.'core/sale/'; | |
private $token; | |
function __construct($username, $password) | |
{ | |
$this->token = $this->_api_request('api-token-auth/', 'POST', array('username'=>$username, 'password'=> $password))['token']; | |
} | |
private function _api_request($endpoint, $method='GET', $data=null){ | |
$crl = curl_init(); | |
$headr = array(); | |
$headr[] = 'Content-type: application/json'; | |
if($this->token){ | |
$headr[] = 'Authorization: Token '.$this->token; | |
} | |
curl_setopt($crl, CURLOPT_URL, API_ROOT.$endpoint); | |
curl_setopt($crl, CURLOPT_HTTPHEADER, $headr); | |
curl_setopt($crl,CURLOPT_RETURNTRANSFER,1); | |
if(strtoupper($method) === 'POST'){ | |
curl_setopt($crl, CURLOPT_POST,true); | |
curl_setopt($crl, CURLOPT_POSTFIELDS, json_encode($data)); | |
} | |
$rest = curl_exec($crl); | |
$httpcode = curl_getinfo($crl, CURLINFO_HTTP_CODE); | |
curl_close($crl); | |
if($httpcode >= 400){ | |
var_dump($rest); | |
die(); | |
} | |
return json_decode($rest, true); | |
} | |
public function siparis_listele($sayfaNo, $sayi=30, $kaynak, $baslangicTarihi, $bitisTarihi){ | |
$sayi = $sayi || 30; | |
$endpoint = $this->sale_endpoint.'?limit='.$sayi; | |
if($kaynak){ | |
$endpoint = $endpoint.'&source='.$kaynak; | |
} | |
if($baslangicTarihi){ | |
$endpoint = $endpoint.'&order_start_date='.$baslangicTarihi; | |
} | |
if($bitisTarihi){ | |
$endpoint = $endpoint.'&order_end_date='.$bitisTarihi; | |
} | |
$sayfaNo = (int)$sayfaNo; | |
if($sayfaNo > 1){ | |
$offset = ($sayfaNo-1) * $sayi; | |
$endpoint = $endpoint.'&offset'.$offset; | |
} | |
return $this->_api_request($endpoint); | |
} | |
public function siparis_detayi($siparisID){ | |
$endpoint = $this->sale_endpoint.$siparisID.'/'; | |
return $this->_api_request($endpoint); | |
} | |
} | |
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |
/////////////////////////////////////// SIPARIS LISTELEME ORNEKLERI ////////////////////////////////////////////////////// | |
// panele giris yapilabilen bir eposta-parola cifti | |
define('EMAIL', '[email protected]'); | |
define('PASSWORD', 'parola'); | |
function tum_siparisler(){ | |
/* | |
Sistemdeki tum siparisleri, bir sayfada en fazla 30 (varsayılan) sonuc donecek sekilde sayfalayarak listeler. | |
*/ | |
$api_client = new SiparisClient(EMAIL, PASSWORD); | |
$sayfa = 1; | |
while (true) { | |
$siparis_response = $api_client->siparis_listele($sayfa, null, null, null, null); | |
$siparisler = $siparis_response['results']; | |
// sayi_bilgisi verilerini sayfalama yaparken kullanabilirsiniz | |
$sayi_bilgisi = $siparis_response['page_context']; | |
$toplam_siparis_sayisi = $siparis_response['count']; | |
// Bu kontrol sekliyle sistemdeki tum siparisleri birer kere getirene kadar devam eder. | |
if(count($siparisler) == 0){ | |
break; | |
} | |
// siparis verileri ile yapilmak istenen islem burada yapilabilir. | |
foreach ($siparisler as $siparis) { | |
print_r($siparis); | |
print_r("------------------\n"); | |
} | |
} | |
} | |
function tarihe_gore_filtreli(){ | |
/* | |
15 ocak ve 15 subat arasindaki siparisleri 50'ser parcalar (sayfalar) halinde dondurur. | |
*/ | |
$api_client = new SiparisClient(EMAIL, PASSWORD); | |
$baslangicTarihi = '2018-01-15T09:00:00'; // Yil-Ay-Gun(T)Saat:Dakika:Saniye | |
$bitisTarihi = '2018-02-15T00:00:00'; | |
$sayfa = 1; | |
$siparisSayisi = 50; // bir sayfada donulecek olan siparis sayisi | |
while (true) { | |
$siparis_response = $api_client->siparis_listele($sayfa, $siparisSayisi, null, $baslangicTarihi, $bitisTarihi); | |
$siparisler = $siparis_response['results']; | |
// sayi_bilgisi verilerini sayfalama yaparken kullanabilirsiniz | |
$sayi_bilgisi = $siparis_response['page_context']; | |
$toplam_siparis_sayisi = $siparis_response['count']; | |
// Bu kontrol sekliyle sistemdeki filtreye uyan tum siparisleri birer kere getirene kadar devam eder. | |
if(count($siparisler) == 0){ | |
break; | |
} | |
// siparis verileri ile yapilmak istenen islem burada yapilabilir. | |
foreach ($siparisler as $siparis) { | |
print_r($siparis); | |
print_r("------------------\n"); | |
} | |
} | |
} | |
function tarih_ve_kaynaga_gore_filtreli(){ | |
/* | |
15 ocak ve 15 subat arasindaki belirtilen kaynaktan gelmis olan tum siparisleri 50'ser parcalar (sayfalar) halinde dondurur. | |
Kaynak alani gg, n11, sp, hb, store degerlerini alabilmektedir. store degeri panelden girilmis siparisleri secmektedir. | |
*/ | |
$api_client = new SiparisClient(EMAIL, PASSWORD); | |
$baslangicTarihi = '2018-01-15T09:00:00'; // Yil-Ay-Gun(T)Saat:Dakika:Saniye | |
$bitisTarihi = '2018-02-15T00:00:00'; | |
$kaynak = 'n11'; | |
$sayfa = 1; | |
$siparisSayisi = 50; // bir sayfada donulecek olan siparis sayisi | |
while (true) { | |
$siparis_response = $api_client->siparis_listele($sayfa, $siparisSayisi, $kaynak, $baslangicTarihi, $bitisTarihi); | |
$siparisler = $siparis_response['results']; | |
// sayi_bilgisi verilerini sayfalama yaparken kullanabilirsiniz | |
$sayi_bilgisi = $siparis_response['page_context']; | |
$toplam_siparis_sayisi = $siparis_response['count']; | |
// Bu kontrol sekliyle sistemdeki filtreye uyan tum siparisleri birer kere getirene kadar devam eder. | |
if(count($siparisler) == 0){ | |
break; | |
} | |
// siparis verileri ile yapilmak istenen islem burada yapilabilir. | |
foreach ($siparisler as $siparis) { | |
print_r($siparis); | |
print_r("------------------\n"); | |
} | |
} | |
} | |
//tum_siparisler(); | |
//tarihe_gore_filtreli(); | |
//tarih_ve_kaynaga_gore_filtreli(); | |
?> | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment