Php ile N11 Api Entegrasyonu – Stok Güncelleme
Merhaba;
Bu yazımızda php ile N11 üzerinden stok güncelleme işlemlerini inceleyelim. Stok güncelleme işlemlerinde N11 üzerindeki stokları ezmemek adına version gibi bir bölüm tutmaktadır, açıkcası ben bunu kullanmıyorum. Ürünlerimizin stoklarını N11 merkezli değil muhasebe programınız yada kendi eticaret siteniz üzerindeki ana veritabanınız merkezli kurguladığınızı varsayalım. N11 üzerindeki ürünlerimizin stoklarını güncellemek oldukça basit bir işlem. Mağaza ürün kodu ile stok güncelleme işlemini beraber inceleyelim.
UpdateStockByStockSellerCode ile Ürün Stok Güncelleme
<?php Class n11 { protected static $_appKey, $_appSecret, $_parameters, $_sclient; public $_debug = false; public function __construct(array $attributes = array()) { self::$_appKey = "ApiKey"; // N11 ApiKey self::$_appSecret = "AppSecret"; // N11 AppSecret self::$_parameters = ['auth' => ['appKey' => self::$_appKey, 'appSecret' => self::$_appSecret]]; } //Her seferinde Soap Bağlantısı için tekrarlanan kod yazmamak adına bağlantımızı ayrı bir private fonskiyonda tutalım private function setUrl($url) { self::$_sclient = new \SoapClient($url); } //Stok Güncelleme public function updateStock($product) { $set['stockItem'] = array( "sellerStockCode" => trim("n11 tarafındaki ürün modeliniz $product['model']"), "quantity" => "Adet Bilgisi int $product['quantity']", "version" => '', ); $this->setUrl('https://api.n11.com/ws/ProductStockService.wsdl'); self::$_parameters['stockItems'] = $set; $data = self::$_sclient->UpdateStockByStockSellerCode(self::$_parameters); $data = json_decode(json_encode($data)); if($data['result']['status'] != "success" || !$data['result']['status']) return $data['result']['errorMessage']; /* Ben burada kendi veritabanımdaki entegrasyon ürünlerime son gönderdiğim stok adedini güncelliyorum. Bazen toplu güncelleme işlemi yaparken stok adedi değişmiş olanları kontrol edip sadece onları güncelliyorum */ } } ?>
Stok güncelleme işlemleri bukadar. Eğer toplu güncelleme işlemi yapacaksınız bahsettiğim gibi sisteminizi yormamak adına son gönderdiğiniz stokları ayrı bir tabloda tutabilirsiniz. Böylece sadece değişikliğe uğramış olan stokları güncellemiş olursunuz.
Tabi aynı durum Fiyat ve İndirim güncelleme içinde gerekli olabilir.
Teşekkürler
hocam ben böyle yaptım ama beyaz sayfa geliyor herhangir bir güncelleme yapmıyor nedeni nedir yardımcı olabilirmisiniz
[‘appKey’ => self::$_appKey, ‘appSecret’ => self::$_appSecret]];
}
private function setUrl($url) {
self::$_sclient = new \SoapClient($url);
}
//Stok Güncelleme
public function updateStock($product)
{
$set[‘stockItem’] = array(
“sellerStockCode” => trim($product[‘421752948′]),
“quantity” => $product[’80’],
“version” => ”,
);
$this->setUrl(‘https://api.n11.com/ws/ProductStockService.wsdl’);
self::$_parameters[‘stockItems’] = $set;
$data = self::$_sclient->UpdateStockByStockSellerCode(self::$_parameters);
$data = json_decode(json_encode($data));
if($data[‘result’][‘status’] != “success” || !$data[‘result’][‘status’])
return $data[‘result’][‘errorMessage’];
}
}
?>
Dönen Hata nedir acaba ? birde göndermiş olduğun $product[‘421752948′] , $product[’80’] bunlar direk ürünün kendi stok kodunu ve stok sonuçlarını veriyormu ? dizinin içerisinde bunları nasıl tutuyorsun dizinin çıktısınıda yazabilirsen inceleyeyim.
yararlı bir paylaşım olmuş çok teşekkürler.