RestAPI Servisleri

N11 MarketPlace Entegrasyonu RestAPI Geçişi 

Bilgilendirme : 1 Haziran 2024 tarihinde SOAP üzerinden yapılan stok fiyat güncellemeri ve ürün bilgileri güncelleme işlevleri kapatılacaktır.1 Haziran tarihine kadar RESTAPI UpdateProductPriceAndStock ve UpdateProduct servislerine geçiş yapmanızı rica ederiz.

Authorization 

  • Authorization no auth seçiniz.
  • UpdateProductPriceAndStock, UpdateProduct, ve TaskDetails 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
  • Authorization no auth seçiniz.
  •  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 Haziran 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.

  • Authorization no auth seçiniz.
  • 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 ID (taskId) değeri dönmektedir.  TaskDetail servisi 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.
  • listPrice ve salePrice değerlerinde küsurat noktadan sonra 2 hane iletilmelidir. Aksi takdirde isteğiniz REJECT alacaktır. 
  • 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. listPrice, salePrice'dan yüksek olmalıdır. Aksi takdirde isteğiniz REJECT alacaktır. 

 

Response Status Açıklama
IN_QUEUE İlettiğiniz task kuyrukta bekmektedir.Task Detail Servisinden taskid ile sorgulayabilirsiniz.
REJECT Veri seti yüklenmediğinde doğrudan reason parametresi ile açıklamasını iletilmektedir.
Örnek Request:
{
  "payload": {
    "integrator": "Entegratör İsmini yazabilirsiniz",
    "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": 870541,
    "processId": 351,
    "type": "SKU_UPDATE",
    "status": "IN_QUEUE",
    "reason": "2 sku işlenmeye alındı."
}

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.

  • Authorization no auth seçiniz.
  • 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 ID (taskId) değeri dönmektedir.  TaskDetail servisi 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": "Entegratör İsmini yazabilirsiniz",
        "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
Response Status Açıklama
IN_QUEUE İlettiğiniz task kuyrukta bekmektedir.Task Detail Servisinden taskid ile sorgulayabilirsiniz.
REJECT Veri seti yüklenmediğinde doğrudan reason parametresi ile açıklamasını iletilmektedir.

Task Detail Sorgulama (TaskDetails)

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

UpdateProduct ve UpdateProductPriceAndStock servislerine yapılan her başarılı istek için response’ta id(taskId)  değeri dönmektedir. Bu ID değerini requestte taskid'ye yazınız.Servis ile ilgili işlem için itemCode bazlı sonuçları alınmaktadır.

  • Authorization no auth seçiniz.
  • 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.
  • Task kuyrukta ise content değer null dönmektedir. "content": [] Eğer task tamamlanmış ise content değerini dolu görebilirsiniz.
Örnek Request;
{
    "taskId": 362
    "pageable": {
        "page": 0,
        "size": 1000
    }
}

Ö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 Haziran ayında canlıya alınacaktır.