RestAPI Servisleri

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)

GEThttps://api.n11.com/cdn/categories
  • 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)

POSThttps://api.n11.com/ms/product/tasks/price-stock-update

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)

POSThttps://api.n11.com/ms/product/tasks/product-update

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)

GEThttps://api.n11.com/ms/product/tasks/{processId}

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)

POSThttps://api.n11.com/ms/product/task-details/page-query

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.