turkmvc/n11-php-api

dev-main 2021-01-31 14:55 UTC

This package is auto-updated.

Last update: 2024-09-29 05:56:16 UTC


README

此API是为N11编写的。为N11编写的先进PHP集成API。此外,还有一个函数可以将N11上到达您商店的订单传输到您的网站。

快速浏览

安装

安装时需要使用Composer。如果您没有Composer,可以从这里下载Windows版本。

composer require turkmvc/n11-php-api

使用

use turkmvc\PazarYeri\N11\N11Client;

include "vendor/autoload.php";

$client = new N11Client();
$client->setApiKey('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx');
$client->setApiPassword('xxxxxxxxxxxxxxxx');

城市服务(CityService)

/**
 *
 * @description N11 Üzerindeki bütün şehirlerin listesini döndürür.
 *
 */
$client->city->getCities();

/**
 *
 * @description Şehir hakkında birkaç bilgi döndürür.
 * @param int Şehir Id - Zorunlu
 *
 */
$client->city->getCity(34);

/**
 *
 * @description Plaka kodu verilen şehre ait ilçelerinin listelenmesi için kullanılır.
 * @param int Şehir Id - Zorunlu
 *
 */
$client->city->getDistrict(34);

/**
 *
 * @description İlçe kodu verilen semt/mahallelerin listelenmesi için kullanılır.
 * @param int İlçe Id - Zorunlu
 *
 */
$client->city->getNeighborhoods(22569);

运输公司服务(ShipmentCompanyService)

/**
 *
 * @description N11 Üzerinde tanımlı olan tüm kargo şirketlerini listeler
 *
 */
$client->shipmentcompany->getShipmentCompanies();

发货模板服务(ShipmentService)

/**
 *
 * @description Oluşturulan teslimat şablonu bilgilerini listelemek için kullanılan metoddur.
 *
 */
$client->shipment->getShipmentTemplateList();

/**
 *
 * @description Teslimat şablon ismi ile aratılan şablonun bilgilerini döndürür.
 * @param string Şablon Adı - Zorunlu
 *
 */
$client->shipment->getShipmentTemplate('Ücretsiz Kargo');

分类服务(CategoryService)

/**
 *
 * @description N11 üzerinde tanımlanmış tüm üst seviye kategorileri döndürür.
 *
 */
$client->category->getTopLevelCategories();

/**
 *
 * @description İstenilen kategori, üst seviye kategori veya diğer seviye kategorilerden olabilir,
	bu kategorilere ait olan özelliklerin
 *	ve bu özelliklere ait değerlerin listelenmesi için kullanılan metottur.
 * @param int Kategori Id - Zorunlu
 * @param array Sayfalama - İsteğe Bağlı
 *
 */
$client->category->getCategoryAttributes(1002841, array('currentPage' => 1, 'pageSize' => 20));

/**
 *
 * @description İstenilen kategori, üst seviye kategori veya diğer seviye kategorilerden olabilir, 
 * 				bu kategorilere ait olan özelliklerin listelenmesi için kullanılan metoddur.
 * @param int Kategori Id - Zorunlu
 *
 */
$client->category->getCategoryAttributesId(1002841);

/**
 *
 * @description Özelliğe sistemimizde verilen id bilgisini (category.attributeList.attribute.id) girdi vererek,
 *				o özelliğe ait değerleri listeler.
 * @param int Kategori Id - Zorunlu
 * @param array Sayfalama - İsteğe Bağlı
 *
 */
$client->category->getCategoryAttributeValue(354080997, array('currentPage' => 0, 'pageSize' => 20));

/**
 *
 * @description Kodu verilen kategorinin birinci seviye üst kategorilerine ulaşmak için bu metot kullanılmalıdır.
	İkinci seviye üst 
 *		kategorilere ulaşmak için (Örn. “Deri ayakkabı -> Ayakkabı -> Giysi” kategori ağacında “Giysi “
		bilgisi) 
 *		birinci seviye üst kategorinin (Örn. Ayakkabı) kodu verilerek tekrar servis çağırılmalıdır. 
 *
 */
$client->category->getParentCategory(1000717);

/**
 *
 * @description Kodu verilen kategorinin birinci seviye alt kategorilerine ulaşmak için bu metot kullanılmalıdır.
	İkinci seviye alt 
 *	kategorilere ulaşmak için (Örn. “Giysi -> Ayakkabı -> Deri ayakkabı” kategori ağacında “Deri ayakkabı” bilgisi) 
 *	birinci Seviye alt kategorinin (Örn. Ayakkabı) kodu verilerek tekrar servis çağırılmalıdır. 
 *
 */
$client->category->getSubCategories(1002841);

产品服务(ProductService)

/**
 *
 * @description N11 ürün ID sini kullanarak sistemde kayıtlı olan ürünün bilgilerini getirir.
 *
 */
$client->product->getProductByProductId(359620750);

/**
 *
 * @description Mağaza ürün kodunu kullanarak sistemde kayıtlı olan ürünün bilgilerini getirir.
 *
 */
$client->product->getProductBySellerCode('IS-20014');

/**
 *
 * @description N11 Üzerindeki ürünleri listelemek için kullanılır.
 * @param array Sayfalama - İsteğe Bağlı 
 *
 */
$client->product->getProductList(array('currentPage' => 0, 'pageSize' => 20));

/**
 *
 * @description Kayıtlı olan bir ürünü N11 Id si kullanarak silmek için kullanılır.
 * @param int N11 Ürün Id - Zorunlu
 *
 */
$client->product->deleteProductById(1234567890);

/**
 *
 * @description Kayıtlı olan bir ürünü mağaza ürün kodu kullanılarak silmek için kullanılır.
 * @param string N11 Ürünün Mağazadaki Ürün Kodu - Zorunlu
 *
 */
$client->product->deleteProductBySellerCode(1234567890);

产品销售状态服务(ProductSellingService)

/**
 *
 * @description Satışta olan ürünün n11 ürün ID si kullanılarak satışa kapatılması için kullanılır.
 * @param int N11 Ürün Id - Zorunlu
 *
 */
$client->selling->stopSellingProductByProductId(1234567890);	

/**
 *
 * @description Satışta olmayan bir ürünün N11 ürün ID si kullanılarak satışa başlanması için kullanılır.  
 * @param string N11 Ürün Mağaza Id - Zorunlu
 *
 */
$client->selling->startSellingProductBySellerCode('IS-20014');

/**
 *
 * @description Satışta olmayan bir ürünün N11 ürün ID si kullanılarak satışa başlanması için kullanılır.
 * @param int N11 Ürün Id - Zorunlu
 *
 */
$client->selling->startSellingProductByProductId(1234567890);

/**
 *
 * @description Satışta olan ürünün mağaza ürün kodu kullanılarak satışının durdurulması için kullanılır.
 * @param string N11 Ürün Mağaza Id - Zorunlu
 *
 */
$client->selling->stopSellingProductBySellerCode('IS-20014');

产品库存服务(ProductStockService)

/**
 *
 * @description Sistemde kayıtlı olan ürünün N11 ürün ID si ile ürün stok bilgilerini getiren metottur. 
 * 				Cevap içinde stok durumunun “version” bilgisi de vardır, ürün stoklarında değişme olduysa 
 *				bu versiyon bilgisi artacaktır, çağrı yapan taraf versiyon bilgisini kontrol ederek N11 e 
 *				verilen stok bilgilerinde değişim olup olmadığını anlayabilir.
 * @param int N11 Ürün Id - Zorunlu
 *
 */
$client->stock->getProductStockByProductId(1234567890);

订单服务(Order Service)

/**
 *
 * @description Bu metot sipariş ile ilgili özet bilgileri listelemek için kullanılır.
 * @note İsteğe bağlı olarak dizideki alanların istenilen bölümleri eklenmeyebilir veya dizi hiç gönderilmeyebilir.
 * @param array Arama Sorgusu - İsteğe Bağlı
 *
 */
$client->order->orderList(
	array(
		// Ürün ID Numarası
		'productId'         => 1234567890,
		// Sipariş Durumu   => New, Approved, Rejected, Shipped, Delivered, Completed, Claimed, LATE_SHIPMENT
		'status'            => 'New',
		// Alıcı Adı 
		'buyerName'         => 'cuma',
		// Sipariş Numarası
		'orderNumber'       => 1234567890,
		// Ürün Mağaza Kodu
		'productSellerCode' => 'IS-20014',
		// Teslim alacak kişinin adı
		'recipient'         => 'cuma',
		// Sipariş oluşturma tarihi başlangıç
		'period'            => array(
			// Başlangıç Tarihi => d/m/Y H:i:s
			'startDate' => '28/06/2019',
			// Bitiş Tarihi => d/m/Y H:i:s
			'endDate'   => '01/07/2019'
		),
		// Güncellenen Siparişleri Listeler
		'sortForUpdateDate' => false,
		// Sayfalama
		'pagingData' => array(
			// Şuanki Sayfa
			'currentPage' => 0,
			// Gösterilecek nesne
			'pageSize'    => 20
		)

	)
);

/**
 *
 * @description Sipariş N11 ID bilgisi kullanarak sipariş detaylarını almak için kullanılır, 
 *				sipariş N11 ID bilgisine orderList metotlarıyla ulaşılabilir.
 * @param int Sipariş ID Numarası - Zorunlu
 *
 */
$client->order->orderDetail(123456789);

N11 订单通知 WebHook(N11 订单 WebHook 测试版)

由于N11没有提供用于订单通知的webhook,因此这个webhook是为个人编写的。要使用webhook,您需要在服务器上安装sqlite pdo驱动程序。

注意:您创建的此文件需要在Linux下后台持续运行。为此,您可以使用tmux或通过创建服务来使用。请勿使用Cronjob

请记住,这个Webhook仍在测试版阶段!

include "vendor/autoload.php";

use turkmvc\PazarYeri\N11\N11Client;

$client = new N11Client();
$client->setApiKey('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx');
$client->setApiPassword('xxxxxxxxxxxxxxxx');

/**
 *
 * @description Webhook istek hızı
 * @param string 
 * 	  'slow'   => 300 saniye,
 *	  'medium' => 180 saniye (default/taviye edilen),
 * 	  'fast'   => 60 saniye
 * 	  'vfast'  => 30 saniye
 * 	   
 */
$client->webhook->setRequestMode('medium');

/**
 *
 * @description N11 sonuçlarında kaç siparişin getirileceği
 * @param string 
 * 	  'vmax'     => 100 adet,
 *	  'max'      => 75 adet,
 * 	  'medium'   => 50 adet (default/taviye edilen),
 * 	  'min'      => 30 adet
 * 	   
 */
$client->webhook->setResultMode('medium');

/**
 *
 * @description Sipariş bildirimlerinde geçmiş siparişler kontrol edilsinmi?
 * @param bool  
 * 	  true     => Evet (default/Tavsiye edilen),
 *	  false    => Hayır,
 * 	   
 */
// Uyarı! Bu fonksiyon versiyon 1.1.0'dan itibaren kaldırılmıştır.
// $client->webhook->setOldConsumeMode(true);

/* Anonymous function ile siparişleri almak */
$client->webhook->orderConsume(function($order){
	
	echo "Sipariş Bilgileri";
	echo "<pre>";
	print_r($order);
	echo "</pre>";
	
});

/* Class ile siparişleri almak */

Class N11Orders
{
	
	public function consume($order)
	{

		echo "Sipariş Bilgileri";
		echo "<pre>";
		print_r($order);
		echo "</pre>";	

	}

}

$client->webhook->orderConsume(array(new N11Orders(), 'consume'));