N11 Ürün Servis Entegrasyonu RestAPI Geçişi
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.
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.
Ürün Fiyat-Stok Güncelleme (UpdateProductPriceAndStock)
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": 1092,
"type": "SKU_UPDATE",
"status": "IN_QUEUE",
"reasons": [
"1 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)
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)
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 işlenmesi bitti ise "status": "PROCESSED" değerinden alabilirsiniz.Buradaki değerler statu değerleri "PROCESSED" = İşlem tamamlandı ve “IN_QUEUE” = İşleniyor “REJECT” = Task işlenmemiştir.
Örnek Request;
{
"taskId": 362,
"pageable": {
"page": 0,
"size": 1000
}
}
Örnek Response;
{
"taskId": 1095,
"skus": {
"content": [
{
"id": 1585,
"taskId": 1095,
"ownerId": 2770263,
"itemCode": "1234567m",
"status": "SUCCESS",
"sku": {
"salePrice": 1100.00,
"listPrice": 1200.00,
"currencyType": "TL",
"reasons": [
"Başarıyla tamamlandı."
],
"stock": 9
},
"reasons": [
"Başarıyla tamamlandı."
]
}
] ,
"pageable": {
"sort": {
"empty": true,
"sorted": false,
"unsorted": true
},
"offset": 0,
"pageNumber": 0,
"pageSize": 100000,
"paged": true,
"unpaged": false
},
"last": true,
"totalElements": 1,
"totalPages": 1,
"sort": {
"empty": true,
"sorted": false,
"unsorted": true
},
"first": true,
"number": 0,
"numberOfElements": 1,
"size": 100000,
"empty": false
},
"createdDate": "12-08-2024 06:12:05",
"modifiedDate": "12-08-2024 06:12:11",
"status": "PROCESSED"
}