Alya Medya

PHP ile N11 Api Kullanımı

N11 Api Kullanımı

PHP ile N11 Api Kullanımı:

E-ticaret ürünlerimizin daha geniş bir kitleye satışını yapmamızı sağlıyor bu nedenle hazırlanmış olan bir e-ticaret sitesinden ürünleri satmak güzel fakat popüler çok kullanılan satış yapabileceğimiz siteler aracılığıyla ürünlerimizi farklı elektronik pazarlara çıkartmak bize fayda sağlayacaktır. Satış oranlarını artırmak adına her e-ticaret sistemi sahibinin N11, Gittigidiyor, Sanalpazar gibi sitelerde satış yapmayı düşünmesi gerekir. PHP ile N11 API kullanımı çok basittir, N11 sitesinin bize sağlamış olduğu servis sayesinde kategori çekme, il bilgilerini çekme, yüklenmiş ürünleri veya ürünün bilgilerini çekme, ürün kaydetme, ürünü sistemden silme, N11 satılan ürünleri siparişleri çekme gibi bazı konulara değineceğim. Dilerseniz N11 api entegrasyonunu e-ticaret sitenize entegre edebilirsiniz.

Sanal Pazar Entegrasyonu için buraya tıklayın.

N11 için PHP Class

Api entegrasyonu için sınıfımız alttaki gibi olacak.

<?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 GetTopLevelCategories() {
        $this->setUrl('https://api.n11.com/ws/CategoryService.wsdl');
        return self::$_sclient->GetTopLevelCategories(self::$_parameters);
    }

    public function GetCities() {
        $this->setUrl('https://api.n11.com/ws/CityService.wsdl');
        return self::$_sclient->GetCities(self::$_parameters);
    }

    public function GetProductList($itemsPerPage, $currentPage) {
        $this->setUrl('https://api.n11.com/ws/ProductService.wsdl');
        self::$_parameters['pagingData'] = ['itemsPerPage' => $itemsPerPage, 'currentPage' => $currentPage];
        return self::$_sclient->GetProductList(self::$_parameters);
    }

    public function GetProductBySellerCode($sellerCode) {
        $this->setUrl('https://api.n11.com/ws/ProductService.wsdl');
        self::$_parameters['sellerCode'] = $sellerCode;
        return self::$_sclient->GetProductBySellerCode(self::$_parameters);
    }

    public function SaveProduct(array $product = Array()) {
        $this->setUrl('https://api.n11.com/ws/ProductService.wsdl');
        self::$_parameters['product'] = $product;
        return self::$_sclient->SaveProduct(self::$_parameters);
    }

    public function DeleteProductBySellerCode($sellerCode) {
        $this->setUrl('https://api.n11.com/ws/ProductService.wsdl');
        self::$_parameters['productSellerCode'] = $sellerCode;
        return self::$_sclient->DeleteProductBySellerCode(self::$_parameters);
    }
    
    public function OrderList(array $searchData = Array()) {
        $this->setUrl('https://api.n11.com/ws/OrderService.wsdl');
        self::$_parameters['searchData'] = $searchData;
        return self::$_sclient->OrderList(self::$_parameters);
    }

    public function __destruct() {
        if ($this->_debug) {
            print_r(self::$_parameters);
        }
    }
    
}

PHP ile N11 API Kullanılarak Kategorileri Nasıl Çekebiliriz

N11 kategori çekme işlemiyle başlayalım hemen, çünkü ürünleri yüklemeyi düşünüyorsak kategori bilgilerini çekmek bizim için önemli çünkü ürünleri kategori bilgileri olmadan yükleyemiyoruz.

Anlatacağım işlemi uygulamadan önce sayfanıza sınıfı dahil etmeniz gerekmektedir. İsmini n11.class.php olarak kaydettikten sonra alttaki kod ile sınıfı ekleyebilirsiniz.

<?php

include "n11.class.php";
$n11Params = ['appKey' => 'API_BILGILERINIZDEN_DOLDURUN',
              'appSecret' => 'API_BILGILERINIZDEN_DOLDURUN'];
$n11 = new N11($n11Params);

Yukarıda hazırlanmış olan PHP Class sayesinde artık N11 kategorilerini çok rahat çekebiliriz. Alttaki kodu dosyanıza dahil edip test edebilirsiniz.

$categories = $n11->GetTopLevelCategories();
var_dump($categories);

N11 Şehir Bilgilerini Çekme

Şimdi N11 servisinden şehir bilgileri lazım olduğunda çekmek istersek nasıl çekilir görelim.

$cities = $n11->GetCities();
var_dump($cities);

N11 Ürün Listesini Çekme

N11 sitesine yüklemiş olduğumuz ürünlerin listesini nasıl alırız şimdi onu hazırlayalım. (Bu method ilk parametrede kaç tane ürün listeleneceğini ikinci parametrede sayfa numarasını almaktadır)

$productList = $n11->GetProductList(5, 0);
var_dump($productList);

N11 Kayıtlı Ürünü Çekme

N11’e daha önce yüklediğimiz bir ürünü çekelim.

$getProductBySeller = $n11->GetProductBySellerCode('db0000');
var_dump($getProductBySeller);

N11 Ürün Kaydetme

Şimdi çok işimize yarayacak olan N11’e ürün yükleme kaydetme koduna bakalım.

$saveProduct = $n11->SaveProduct(
                [
                    'productSellerCode' => 'az32897591',
                    'title' => 'Deneme üründür satın almayınız.',
                    'subtitle' => 'Api Test ürünü ',
                    'description' => 'Deneme  ürünümüz.',
                    'attributes' =>
                    [
                        'attribute' => Array()
                    ],
                    'category' =>
                    [
                        'id' => 1000038
                    ],
                    'price' => 0.99,
                    'currencyType' => 'TL',
                    'images' =>
                    [
                        'image' =>
                        [
                            'url' => 'http://alyamedya.com/uploads/alya-medya-logo1.png',
                            'order' => 1
                        ]
                    ],
                    'saleStartDate' => '',
                    'saleEndDate' => '',
                    'productionDate' => '',
                    'expirationDate' => '',
                    'productCondition' => '1',
                    'preparingDay' => '3',
                    'discount' => 10,
                    'shipmentTemplate' => 'Alıcı Öder',
                    'stockItems' =>
                    [
                        'stockItem' =>
                        [
                            'quantity' => 1,
                            'sellerStockCode' => 'stokkodu',
                            'attributes' =>
                            [
                                'attribute' => []
                            ],
                            'optionPrice' => 0.99
                        ]
                    ]
                ]
);
var_dump($saveProduct);

N11 Ürün Silme

N11 kayıtlı ürünü silme işlemi.

$deleteProductBySeller = $n11->DeleteProductBySellerCode('az3289759');
var_dump($deleteProductBySeller);

N11 Sipariş Listesi

N11 Sipariş Listesini çekmeye geldi, yaptığımız satışları çekeceğiz.

$OrderList  = $n11->OrderList (
[
    "productId"=>'',
    "status"=> 'New', 
    "buyerName"=> '',
    "orderNumber"=> '',
    "productSellerCode" =>'',
    "recipient"=> '',
    "period"=>[
        "startDate"=> '?',
        "endDate"=> '?'     
    ]     
]                
);
var_dump($orderList);

Eğer N11 için kurumsal bir üyeliğiniz yoksa vereceğim adresten kendinize bir kurumsal üyelik açarak API servis hizmetinden yararlanmaya başlayabilirsiniz. N11 kurumsal üyelik