Paylaş |
|
Tweet |
Merhaba arkadaşlar, bu yazımızda C# dışında PHP ile bir uygulama yapacağız. Bu uygulamamızda N11.Com’ un bize sağladığı servis sayesinde kategori çekme, il bilgilerini çekme, yüklenmiş ürünleri veya ürünün bilgilerini çekme, ürün kaydetme, ürünü sistemden silme ve sipariş bilgilerini çekme gibi konulardan ilk olarak yeni sipariş bilgilerini çekme konusuna değineceğiz.
Tabi bu konuları uygulayabilmeniz için N11.Com sitesinde mağaza sahibi olmanız gerekmektedir. N11.Com sitesinde mağaza sahibi değilseniz ve mağaza sahibi olmak istiyorsanız buraya tıklayınız. Mağazamızı oluşturduktan sonra giriş yapıyoruz ve üst tarafta bulunan Hesabım yazısının üzerine gelip açılan menüden API Hesapları seçeneğine tıklıyoruz. Açılan sayfada + Yeni Hesap Oluştur butonuna tıklayarak api hesabımızı oluşturuyoruz. Bütün işlemler tamam ise konuya dalalım artık 🙂
İlk olarak n11.com’ dan verileri çekebilmemiz için bir class sayfası oluşturalım. Class.php sayfa içeriği aşağıdadır.
<?php Class N11 { protected static $_appKey, $_appSecret, $_parameters, $_sclient; public $_debug = false; public function __construct(array $attributes = array()) { self::$_appKey = $attributes['appKey']; self::$_appSecret = $attributes['appSecret']; self::$_parameters = ['auth' => ['appKey' => self::$_appKey, 'appSecret' => self::$_appSecret]]; } public function setUrl($url) { self::$_sclient = new \SoapClient($url); } public function DetailedOrderList(array $searchData = Array()) { $this->setUrl('https://api.n11.com/ws/OrderService.wsdl'); self::$_parameters['searchData'] = $searchData; self::$_parameters['pagingData'] = ['itemsPerPage' => 5, 'currentPage' => 0]; return self::$_sclient->DetailedOrderList(self::$_parameters); } public function __destruct() { if ($this->_debug) { print_r(self::$_parameters); } } } ?>
Class sayfamızı oluşturduğumuza göre artık mağazamızdaki yeni siparişleri çekme vakti geldi 🙂 Siparis.php sayfamızın içeriği aşağıdaki gibi
<?php error_reporting(E_ALL); include "class.php"; $n11Params = ['appKey' => 'ApiAnahtarınız', 'appSecret' => 'ApiŞifreniz']; $n11 = new N11($n11Params); $i=0; ?> <html> <head> <meta charset="UTF-8"> <title>N11.Com Api ile Yeni Sipariş Bilgilerini Çekme - BSoylu.Com</title> </head> <body> <?php $DetailedOrderList= $n11->DetailedOrderList( [ "productId"=>'', "status"=> 'new', "buyerName"=> '', "orderNumber"=> '', "productSellerCode" =>'', "recipient"=> '', "period"=>[ "startDate"=> '?', "endDate"=> '?' ] ] ); $say=count($DetailedOrderList->orderList->order); echo "<table border='1' cellpadding='5' cellspacing='0'>"; for($i = 0; $i < $say; $i++) { echo "<tr>"; echo "<td><table border='1' cellpadding='5' cellspacing='0' width='100%'><tbody>"; echo "<tr><th>ID:</th><td>"; echo $DetailedOrderList->orderList->order[$i]->id; echo "</td></tr>"; echo "<tr><th>Sipariş No:</th><td>"; echo $DetailedOrderList->orderList->order[$i]->orderNumber; echo "</td></tr>"; echo "<tr>"; echo "<th>Ürün Adı:</th><td>"; echo $DetailedOrderList->orderList->order[$i]->orderItemList->orderItem->productName; echo "</td></tr>"; echo "<tr><th>Sipariş Tarih:</th><td>"; echo $DetailedOrderList->orderList->order[$i]->createDate; echo "</td></tr>"; echo "<tr><th>Sipariş Tutar:</th><td>"; echo $DetailedOrderList->orderList->order[$i]->totalAmount."TL"; echo "</td></tr>"; echo "</tbody></table></td>"; echo "</tr>"; } echo "</table>"; ?> </body> </html>
Evet arkadaşlar n11.com’ dan yeni siparişleri çekme işlemi bu kadar kolay. Daha sonraki yazılarda diğer konulara değineceğiz. Kendinize iyi bakın görüşmek üzere…
Merhaba üstadım;
Belirttiğin class ile siparişleri listelemeye çalıştığımda.
stdClass Object
(
[result] => stdClass Object
(
[status] => failure
[errorCode] => systemError
[errorMessage] => Sistemde bir hata oluştu.
[errorCategory] => SELLER_API
)
)
Böyle bir çıktı alıyorum bunun sebebi konusunda yardımcı olabilirmisin?
Merhaba, bugun n11 sisteminde bir sıkıntı yasanmis ondan kaynakli olabilir. Tekrar deneyip bilgi verebilir misiniz?
Merhaba
Sipariş detaylarında “orderItemList” gelmiyor. Burda bir yanlışlık olabilir mi?
Sipariş içerisinde satılan ürünlere ulaşmaya çalışıyorum.
Merhaba, normalde ürün listesi gelmesi gerekli. Hata mı veriyor nasıl bir sorunla karşılaşıyorsunuz acaba?
dediğiniz şekilde kodları yaptım ama boş bir sayfa geliyor hep hata falanda vermiyor sebebi ne olabilir acaba? teşekkür ederim
Merhaba, kodları kontrol ettiğimde herhangi bir problem gözükmemekte. Ben de normal çalışmakta. Api kodlarınızın doğruluğunu kontrol edip benimle iletişime geçebilirsiniz.
Merhaba bu güzel konun için ilk önce teşekkür ederim. Oldukça faydalı bir soru sormak istiyorum tüm classları nasıl bulabiliriz? Yardımcı olabilirmisin (Fonksiyon)
Merhaba, n11′ in api sayfasında tüm fonksiyonlar mevcut oradan bulabilirsiniz istediğinizi. Kolay gelsin 🙂
PHP Döküman olarak göremedim. Başka bir sayfasımı var fonksiyonlarım çok eksik örneğin sipariş onaylama ve kargo takip girme hakkında bilgi verirsen çok memnun olurum
Fatal error: Cannot use object of type stdClass as array in siparis.php on line 37
37.satırda.
echo $DetailedOrderList->orderList->order[$i]->id;
yazmasına rağmen hata alıyorum dün bu kodlar çalışıyordu bugün çalışmıyor.
n11 yeni sipariş ve onaylanmış siparişleri almada ara ara sorun oluyor
bazen sorunsuz yeni siparişi almakta iken bazen şu şekilde hata alıyor.
Fatal error: Cannot use object of type stdClass as array in /yeni.php on line 37
37 satırda
———————
echo $DetailedOrderList->orderList->order[$i]->id;
———————
bulunmakta.
sayfayı yenileyince de
Notice: Undefined property: stdClass::$orderList in yeni.php on line 30 şeklinde hata veriyor.
30. satırda
————————
$say=count($DetailedOrderList->orderList->order);
————————
yazmakta
bazen ise bu kodlarla siparişler açılmakta
tam randumanlı bir çalışma şekli olmadı
ne yapmalıyız.
DetailedOrderList(
[
“productId”=>”,
“status”=> ‘Shipped’,
shipped yazıldığında tüm siparişleri alıyor
new ve approwed yazınca sipariş olmasına ve onaylanmasına rağmen almıyor. bazen kendi kendine değişiklik yapmadan geliyor.
Sipariş durumu:
“New”: Yeni siparişler
“Approved”: Onaylanmış Siparişler
“Rejected”: İptal Edilmiş Siparişler
“Shipped”: Kargolanmış Siparişler
“Delivered”: Teslim Edilen Siparişler
“Completed”: Tamamlanmış Siparişler
Merhaba, bilgiler için teşekkürler, entegrasyon modülü yazmak ile uğraşıyorum eğer Siparis.php dosyasında appkey ve secret ı değişkene bağlayıp çağırmak istiyorsak nasıl yapmalıyız?
merhaba n11 de siparişlwerin bazen alınıp bazen alınanamasına yönelik bir gelişmeye ulaştınız mı sipariş sayısı bir olduğunda bilgilewr gelmiyor ancak sipariş sayısı 1 ve üzerinde olduğu vakit veriler gelmekte buna yönelik bir gelişme var mı?
Çalışmayan servisler için wsdl cache’i kapatmayı unutmayın özellikle DetailedOrderList için…. bazen alınıp bazen alınmamasının nedeni cache’in aktif olması. kolaylıklar
Merhaba, aşağıdaki hatayı alıyorum, ne yapılabilir.
PHP Parse error: syntax error, unexpected ‘[‘ in /home/vestelha/public_html/n11/siparis.php on line 4
Teşekkürler.
Merhaba.. kargolanan siparişlerin kargo takip numaralarını api ile siparişlere girme şansımız var mı? varsa yönlendirebilir misiniz?
aynı uygulamayı windows form uygulaması ile nasıl yaparsak daha sağlıklı olur ?