N11 MarketPlace Entegrasyonu RestAPI Geçişi
Authorization
UpdateProductPriceAndStock, UpdateProduct, GetTaskStatus ve GetTaskDetails servislerine istek atılırken Header’da key-value olarak Appkey ve Appsecret bilgileriniz iletilmelidir.
appkey | APIKey bilgisi |
appsecret | APISecret bilgisi |
Authentication için kullanılan Appkey ve Appsecret bilgisi satıcı panelinde yer alan Satıcı Ofisi > Hesabım > Api Hesapları sayfasından alınmalıdır.
n11 Kategorileri Çekme (GetCategories)
- Authentication , Headers alanına sadece appkey bilgisini eklemeniz gerekir.
- GetCategories kullanırken herhangi bir parametre gerekmemektedir.
- Tüm n11 kategori ağacını tek istekle alabilmektesiniz.
- Ürün açma servisinde en alt kırılım olan kategori id değerleri iletilmelidir.
- subCategories değerinin null dönmesi o kategorinin en alt kırılım olduğunu ifade etmektedir.
n11 Kategori Özellikleri Çekme (GetCategoryAttributes)
GetCategoryAttributes servisi Mayıs ayında canlıya alınacaktır.
Ürün Fiyat-Stok Güncelleme (UpdateProductPriceAndStock)
Bu servis kullanılarak ürünlerin fiyat ve stok bilgisini güncelleyebilirsiniz.
- Authentication, Headers alanına appkey ve appsecret bilgisini eklemeniz gerekir.
- Tek seferde maximum 1000 sku için güncelleme atabilirsiniz.
- İsteğinizi json formatında body de raw olarak iletmeniz gerekir.
- HTTP isteğinizi 'POST' methoduyla ilgili endpoint'e gönderin.
- JSON dosyanızı iletilen örnek desen formatında hazırlayın.
Servise yapılan her başarılı istek için response’ta processId değeri dönmektedir. Task sorgulama servisleri (GetTaskStatus , GetTaskDetails ) ile yapılan işlemin kontrolü sağlanabilir.
- Fiyat güncellemelerinde listPrice ve salePrice parametreleri birlikte gönderilmelidir.
- listPrice ve salePrice değerlerinde küsurat bilgisi nokta ile ayrılmalıdır. Virgül kullanımı hata alınmasına sebebiyet verecektir.
- Sadece fiyat veya sadece stok güncellemesi yapılacak ise istekte güncellemek istemediğiniz alanları göndermeyebilirsiniz. İstekte mevcut olmayan alanlar için herhangi bir update yapılmayacaktır. Burada dikkat edilmesi gereken nokta fiyat güncellemelerinde listPrice ve salePrice'ın birlikte gönderilmesi gerektiğidir.
- listPrice ve salePrice değerini aynı değer gönderebilirsiniz.
Örnek Request:
{
"payload": {
"integrator": "xxx",
"skus": [
{
"stockCode": "test_variant_ea1_1",
"listPrice": 2000,
"salePrice": 1600,
"quantity": 2,
"currencyType": "TL"
},
{
"stockCode": "test_variant_ea1_2",
"listPrice": 2200,
"salePrice": 1800,
"quantity": 1,
"currencyType": "TL"
}
]
}
}
Örnek Response:
{
"id": null,
"processId": 351,
"type": null,
"status": null,
"reason": null
}
Request Parametre | Zorunluluk | Açıklama | Veri Tipi |
integrator | Evet | Entegratör ve API kullanıcısının verilebilecek özel ismi. Tüm gönderimlerinizde aynı değer kullanmanızı rica ederiz. | string |
stockCode | Evet | Tedarikçinin ürüne belirlediği uniq kod. Ürünler (SKU) ile ilgili güncellemeleri bu değeri zorunlu olarak göndermelisiniz. | string |
listPrice | Hayır | Ürün liste fiyatı (Satış fiyatı düşük olunca üstü çizilen fiyat) PSF. | number |
salePrice | Hayır | Ürün satış fiyatı TSF. | number |
quantity | Hayır | Stok miktarı. | integer |
currencyType | Hayır | Ürün liste fiyatı para birimi. Alınan değerler TL, USD ve EUR olabilir. | text |
Ürün Bilgisi Güncelleme (UpdateProduct)
Bu servis kullanılarak ürün bilgilerinizi güncelleyebilirsiniz.
- Authentication, Headers alanına appkey ve appsecret bilgisini eklemeniz gerekir.
- Tek seferde maximum 1000 sku için güncelleme atabilirsiniz.
- İsteğinizi json formatında body de raw olarak iletmeniz gerekir.
- HTTP isteğinizi 'POST' methoduyla ilgili endpoint'e gönderin.
- JSON dosyanızı iletilen örnek desen formatında hazırlayın.
Servise yapılan her başarılı istek için response’ta processId değeri dönmektedir. Task sorgulama servisleri (GetTaskStatus , GetTaskDetails ) ile yapılan işlemin kontrolü sağlanabilir.
- Ürün gruplaması yapmak için productMainId değeri iletilmelidir.
- productMainId değeri güncellenmek isteniyorsa deleteProductMainId değeri True aktarılmalı ve yeni değer productMainId parametresi ileiletilmelidir. deleteProductMainId parametresinin False gönderildiği durumda herhangi bir güncelleme olmayacaktır.
- Ürün maximum satış adedi maxPurchaseQuantity parametresi ile iletilmelidir. Bu parametrenin güncellenebilmesi için deleteMaxPurchaseQuantity parametresi True aktarılmalıdır. deleteMaxPurchaseQuantity parametresinin False gönderildiği durumda herhangi bir güncelleme olmayacaktır.
Örnek Request;
{
"payload": {
"integrator": "xxxx",
"skus": [
{
"stockCode": "xyz-1",
"status": "Active",
"preparingDay": 3,
"shipmentTemplate": "STANDART",
"deleteProductMainId": true,
"productMainId": "ea_v_xyz",
"deleteMaxPurchaseQuantity": false,
"maxPurchaseQuantity": 3,
"description": "Test Ürün Açıklaması"
}
]
}
}
Request Parametre | Zorunluluk | Açıklama | Veri Tipi |
integrator | Evet | Entegratör ve API kullanıcısının verilebilecek özel ismi. Tüm gönderimlerinizde aynı değer kullanmanızı rica ederiz. | string |
stockCode | Evet | Tedarikçinin ürüne belirlediği uniq kod. Ürünler (SKU) ile ilgili güncellemeleri bu değeri zorunlu olarak göndermelisiniz. | string |
status | Hayır | Ürünün satışta olup olmadığını belirtir. Satışta olması isteniyorsa "Active" yazılır, ürünü satıştan çekmek için "Suspended" yazılır. | string |
preparingDay | Hayır | Ürün bazlı kargoya gönderim süresini belirtir. 0'dan büyük bir değer girilmelidir. | integer |
shipmentTemplate | Hayır | Satıcı Panelinde Hesabım > Teslimat Bilgileri alanından oluşturulan "Şablon Adı" başlığında belirtilen değeri yazabilirsiniz. | string |
currencyType | Hayır | Ürün liste fiyatı para birimi. Alınan değerler TL, USD ve EUR olabilir. | string |
deleteProductMainId | Hayır | Ana ürün kodunu (productMainId ) silmek isterseniz "True" değerini ekleyiniz. Alabildiği değerler: True, False | boolean |
productMainId | Hayır | Ana ürün kodudur. Aynı modele ait ürün özelliklerini birleştirir. | string |
deleteMaxPurchaseQuantity | Hayır | Maksimum satın alım değerini (maxPurchaseQuantity) silmek isterseniz "True" değerini ekleyiniz. Alabildiği değerler: True, False | boolean |
maxPurchaseQuantity | Hayır | Ürüne toplu alışveriş yapılmaması isteniyorsa, ürün bazlı maksimum kaç adet satın alınabileceğini belirtir. | integer |
description | Hayır | Ürün açıklaması | string |
Task Sorgulama (GetTaskStatus)
CreateProduct, UpdateProduct ve UpdateProductPriceAndStock servislerine yapılan her başarılı istek için response’ta processId değeri dönmektedir. Bu servis ile ilgili işlemin status’ü sorgulanabilir.
- Authentication , Headers alanına appkey ve appsecret bilgisini eklemeniz gerekir.
- Endpoint sonundaki süslü parantezleri kaldırarak doğrudan proccessId yazınız.
Response Status | Type | Açıklama |
REJECT | SKU_UPDATE | Veri seti yüklenmediğinde doğrudan (GetTaskStatus Servisi) reason parametresi ile açıklamasını iletilmektedir. |
IN_QUEUE | SKU_UPDATE | İlettiğiniz processId kuyrukta bekmektedir. PROCESSED statüsüne geçene kadar bekleyiniz. |
PROCESSED | SKU_UPDATE | Veri seti başarılı bir şekilde işlenmiştir.Task details Servisinde sku bazlı güncelleme sonuçlarını görebilirsiniz. |
Örnek Request; https://api.n11.com/ms/product/tasks/16891
Örnek Reponse;
{
"id": 305,
"processId": 305,
"type": "SKU_UPDATE",
"status": "PROCESSED",
"reason": "İşlem 1 başarılı ve 0 başarısız ürünle tamamlandı."
}
Task Detail Sorgulama (GetTaskDetails)
CreateProduct, UpdateProduct ve UpdateProductPriceAndStock servislerine yapılan her başarılı istek için response’ta processId değeri dönmektedir. Bu servis ile ilgili işlem için itemCode bazlı sonuçları alınmaktadır.
- Authentication, Headers alanına appkey ve appsecret bilgisini eklemeniz gerekir.
- İsteğinizi json formatında body de raw olarak iletmeniz gerekir.
Response’da yer alan itemCode değeri stock kodunu ifade eder. Status, Fail ve SUCCESS değerlerini alımaktadır. Sku alanında güncelleme alanın sonucunu görmektesiniz.
- taskId değeri başarılı update isteğinden dönen id değeridir.
Örnek Request;
{
"taskId": 362
"pageable": {
"page": 0,
"size": 100
}
}
Örnek Response;
{
"content": [
{
"id": 754,
"taskId": 362,
"processId": 362,
"ownerId": 56238,
"itemCode": "xyz-2",
"status": "FAIL",
"reason": "Ürünün indirimli fiyatı liste fiyatından düşük olmalıdır"
},
{
"id": 755,
"taskId": 362,
"processId": 362,
"ownerId": 56238,
"itemCode": "xyz-1",
"status": "FAIL",
"reason": "Ürün Fiyatında, 50 veya daha fazla oranda indirim yaptınız.Eğer bu güncellemeyi yapmak istediğinizden eminseniz http://magazadestek.n11.com/sss?contentId=4924&openTicket=true adresinden talep oluşturabilirsiniz."
}
],
"pageable": {
"sort": null,
"pageNumber": 0,
"pageSize": 100,
"offset": 0,
"paged": true,
"unpaged": false
},
"last": true,
"totalPages": 1,
"totalElements": 2,
"sort": null,
"first": true,
"number": 0,
"numberOfElements": 2,
"size": 100,
"empty": false
}
Ürün Yükleme Servisi (CreateProduct)
CreateProduct servisi Mayıs ayında canlıya alınacaktır.