Ürünler

Bu servis aracılığı ile Labs platformu üzerinde yeni ürün kartları oluşturabilir, oluşturulan ürün kartlarınızın listesini çekebilir, ürün kartlarınız üzerinden güncelleme yapabilir veya ürün kartlarınızı silebilirsiniz.


POST/v1/products

Yeni Ürün Kartı Oluştur

Yeni ürün kartı oluşturmak için gerekli parametreler aşağıdaki tabloda belirtilmiştir.

Labs platformunda ürün tipleri seçenekli/varyantlı, ticari, paket ve dijital ürün olarak 4'e ayrılır. Oluşturulan her bir ürünün en az 1 varyantı olmalıdır. Yani ürünler için en üstte bir product nesnesi ve altında en az 1 variant nesnesi bulunmalıdır. Product nesnesi, SKU, başlık, kategori ve marka gibi temel bilgileri tutar. Variant nesnesi ise barkod, renk, beden ve ürün düzeyindeki diğer özelliklerin bilgilerini içerir. Ürün ekleme işlemi yaparken bu bilgiler dikkate alınarak düzenleme yapılmalıdır.

Önemli Bilgi : Yeni ürün oluşturmak için en alt seviyedeki kategori ID bilgisi kullanılmalıdır. Seçtiğiniz kategorinin alt kategorileri var ise bu kategori bilgisi ile ürün aktarımı yapamazsınız.


  • Name
    brandId
    Type
    integer
    Description

    Marka ID bilgisidir. Marka servisinden alınan ID bilgisi iletilmelidir. Yoksa null yada 0 olarak iletilebilir.

  • Name
    categoryId
    Type
    integer
    Description

    Kategori ID bilgisidir. Kategori servisinden alınan ID bilgisi iletilmelidir. Yoksa null olarak iletilebilir.

  • Name
    supplierId
    Type
    integer
    Description

    Tedarikçi ID bilgisidir. Tedarikçi servisinden alınan ID bilgisi iletilmelidir. Yoksa null olarak iletilebilir.

  • Name
    productType* zorunlu
    Type
    integer
    Description

    Ürün tipi :

    • 0 - varyantlı ürün
    • 1 - ticari ürün (varyantsız)
    • 2 - dijital ürün
  • Name
    mainSku* zorunlu
    Type
    string
    Description

    Ürüne ait benzersiz stok kodu

  • Name
    customAttributes
    Type
    array
    Description

    Ekstra ürün özellikleri, yaka tipi, topuk boyu, son kullanma tarihi vb.

  • Name
    customAttributes.*.attributeId* zorunlu
    Type
    integer
    Description

    Ürün özellikleri servisinden alınan attributeId

  • Name
    customAttributes.*.attributeValueId* zorunlu
    Type
    integer
    Description

    Ürün özellikleri servisinden alınan özellik değerine ait attributeValueId

  • Name
    title* zorunlu
    Type
    string
    Description

    Ürün başlık bilgisi

  • Name
    subTitle
    Type
    string
    Description

    Ürün Alt başlık bilgisi

  • Name
    description
    Type
    string
    Description

    Ürün açıklaması

  • Name
    variants* zorunlu
    Type
    array
    Description

    Ürün varyantları

  • Name
    variants.barcode* zorunlu
    Type
    string
    Description

    Barkod bilgisi

  • Name
    variants.skuId* zorunlu
    Type
    string
    Description

    Varyanta ait benzersiz ürün kodu, kendi sisteminizdeki ürün eşleştirmeleri için kullanabilirsiniz.

  • Name
    variants.gtin
    Type
    string
    Description

    GTIN kodu

  • Name
    variants.desi
    Type
    integer
    Description

    Ürün desi bilgisi

  • Name
    variants.erpLineId
    Type
    integer
    Description

    Ürünün ERP uygulamanızdaki primary key bilgisi, ERP eşleştirmeleri için kullanabilirsiniz.

  • Name
    variants.attributes
    Type
    array
    Description

    Renk ve beden gibi varyant özelliklerini içerir.

  • Name
    variants.attributes.attributeType* zorunlu
    Type
    string
    Description

    Varyant özellik tipidir. Şu anda sadece color ve size değerlerini verebilirsiniz.

  • Name
    variants.attributes.attributeLabel* zorunlu
    Type
    string
    Description

    Özellik adıdır. Örneğin renk özelliği için renk adını belirtir. (Örn : Mavi)

  • Name
    variants.attributes.attributeValue* zorunlu
    Type
    string
    Description

    Özellik kodudur. Ürün eşleştirmelerinde ve gruplamalarında bu bilgi kullanılır. (Örn : BL-01)

  • Name
    variants.unit
    Type
    array
    Description

    Ürüne ait birim bilgilerini (Adet, Gram, Metre vb.) içerir.

  • Name
    variants.unit.name* zorunlu
    Type
    string
    Description

    Ürüne ait birim adı bilgisini (Adet, Gram, Metre vb.) içerir.

  • Name
    variants.unit.erpRefId
    Type
    string
    Description

    Birim bilgisinin ERP eşleştirmeleri için kullanılır. Birim bilgisine ait ERP uygulamasındaki primary key bilgisi verilebilir.

  • Name
    variants.meta
    Type
    array
    Description

    Barkod, renk yada ürün bedeni özelinde ürün başlığı, açıklaması vb. bilgileri eklemek için varyant düzeyinde ekleme yapılabilir.

  • Name
    variants.meta.title* zorunlu
    Type
    string
    Description

    Ürün varyant başlığı.

  • Name
    variants.meta.subTitle
    Type
    string
    Description

    Ürün varyant alt başlığı.

  • Name
    variants.meta.description
    Type
    string
    Description

    Ürün varyant açıklaması, HTML kodları içerebilir.

  • Name
    variants.meta.keywords
    Type
    string
    Description

    Ürün varyant anahtar kelimeleri.

  • Name
    variants.meta.source
    Type
    string
    Description

    Ürün varyant meta bilgilerinin hangi platforma ait olduğu bilgisi. Şimdilik boş bırakılmalıdır.

  • Name
    variants.inventories
    Type
    array
    Description

    Stok bilgilerini içerir

  • Name
    variants.inventories.warehouseId
    Type
    integer
    Description

    Depo ID bilgisidir. Depo servisinden alınan ID bilgisi iletilmelidir. Yoksa null olarak iletilebilir. null değer verilirse ön tanımlı depo üzerinden işlemler yapılır.

  • Name
    variants.inventories.quantity
    Type
    integer
    Description

    İlgili depoya ait ürün adedi bilgisi.

  • Name
    variants.inventories.source
    Type
    string
    Description

    Stok adedinin hangi platforma ait olduğu bilgisidir. Boş değer gönderilirse global olarak geçerli olur. Pazaryeri bazlı ayrı stok bilgisi iletebilir. Aktif platformlar servisinden iletebilecek servis bilgileri alınabilir.

  • Name
    variants.prices
    Type
    array
    Description

    Fiyat bilgilerini içerir

  • Name
    variants.prices.warehouseId
    Type
    integer
    Description

    Depo ID bilgisidir. Depo servisinden alınan ID bilgisi iletilmelidir. Yoksa null olarak iletilebilir. null değer verilirse ön tanımlı depo üzerinden işlemler yapılır.

  • Name
    variants.prices.currency
    Type
    string
    Description

    Para birimi değeridir. Ön tanımlı değer TRY'dir. İletilmezse ön tanımlı değer üzerinden işlem yapılır. Sadece hesap düzeyinde aktif olan para birimleri iletebilir.

  • Name
    variants.prices.costPrice
    Type
    float
    Description

    Maliyet fiyatı bilgisi.

  • Name
    variants.prices.listPrice
    Type
    float
    Description

    Liste fiyatı bilgisi. (Üstü çizili fiyat)

  • Name
    variants.prices.salePrice
    Type
    float
    Description

    Satış fiyatı bilgisi.

  • Name
    variants.prices.wholesalePrice
    Type
    float
    Description

    Toptan fiyatı bilgisi.

  • Name
    variants.prices.vatRate
    Type
    integer
    Description

    KDV oranı bilgisi. 0,1,8 yada 18 olarak iletilebilir.

  • Name
    variants.images
    Type
    array
    Description

    Ürün görsellerini içerir.

  • Name
    variants.images.url
    Type
    string
    Description

    Ürün görsellerine ait URL bilgisi. Kendi URL bilginizi verebilir yada görsel yükleme servisinden yükleme yapıp URL bilgisini alabilirsiniz.

  • Name
    variants.images.sortId
    Type
    integer
    Description

    Görsel sıralama bilgisi

Request

POST
/v1/products
curl --location --request POST 'https://api.labsoffice.com/v1/products' \
--header 'Authorization: Bearer {API_TOKEN}'
--header 'Content-Type: application/json' \
--data-raw '{
"brandId": 45,
"categoryId": null,
"supplierId": null,
"productType": 0,
"mainSku": "TEST-PRODUCT-301",
"customAttributes": [
{
"attributeId" : 123,
"attributeValueId" : 456
},
{
"attributeId" : 556,
"attributeValueId" : 774
},
],
"title": "Erkek Likralı Şort",
"subTitle": "Airlife Workout",
"description": "Airlife erkek basic klasik kesim şort, tatilde, sporda, günlük yaşamda ve bir çok alanda rahat bir şekilde giyebilirsiniz. ",
"variants": [
{
"barcode": "828933000000",
"skuId": "1020304_R02_005_L",
"gtin": "",
"attributes": [
{
"attributeType": "color",
"attributeLabel": "Mavi",
"attributeValue": "Mavi"
},
{
"attributeType": "size",
"attributeLabel": "S",
"attributeValue": "S"
}
],
"desi": 0,
"unit": {
"name": "ADET",
"erpRefId": null
},
"customAttributes": "",
"erpLineId": null,
"meta": [
{
"title": "Deneme 45ryr ",
"description": "",
"subTitle": "",
"keywords": "",
"source": ""
}
],
"inventories": [
{
"warehouseId": "17",
"quantity": "5",
"source": ""
},
{
"warehouseId": "1",
"quantity": "5",
"source": "HEPSIBURADA"
}
],
"prices": [
{
"warehouseId": "1",
"currency": "TRY",
"costPrice": "2314",
"listPrice": "234",
"salePrice": "23",
"wholesalePrice": "0",
"vatRate": "0"
}
],
"images": [
{
"url": "https://fastly.picsum.photos/id/768/1024/768.jpg?hmac=bRktwgzo-wkXah5iwWLKIKuITUWtQyFyYxmGs2jHrGQ",
"sortId": 2
},
{
"url": "https://fastly.picsum.photos/id/520/1024/768.jpg?hmac=Mh2_4LyT2jyyp1Q0msKUS7gwN8rhQKxu2bjfR8T2UD8",
"sortId": 1,
"isPrimary": true
},
{
"url": "https://fastly.picsum.photos/id/317/1024/768.jpg?hmac=LQh7YciLubvTg4h3FvHIQJ0QnmGmLOFO0L2d5WIc5Qc",
"sortId": 3
}
]
}
]
}'

Response

{
    "status": "success",
    "message": "Ürün ekleme işlemi başarılı",
    "payload" : {
    "id" : 123 // product id
}
}

GET/v1/products

Ürün Listesi

Bu servis aracılığı ile Labs platformu üzerinde oluşturulan ürünlerinizi listeleyebilirsiniz.

Servis pagination ile çalışmaktadır. page ve limit parametrelerinin gönderilmesi zorunludur. Filtreleme yapabilmek için gerekli parametreler aşağıdaki tabloda belirtilmiştir.

subBundleProducts alanında paket ürüne ait alt ürünlerin bilgileri gelir.

Optional attributes

  • Name
    page
    Type
    integer
    Description

    Mevcut sayfa bilgisi

  • Name
    limit
    Type
    integer
    Description

    Sayfa başına düşen içerik sayısı

  • Name
    categoryIds
    Type
    array
    Description

    Kategori ID bilgisi

  • Name
    brandIds
    Type
    array
    Description

    Marka ID bilgisi

  • Name
    collectionIds
    Type
    array
    Description

    Koleksiyon ID bilgisi

  • Name
    status
    Type
    integer
    Description

    0 : Yayında değil, 1: yayında, 2: düzenleme bekliyor

  • Name
    type
    Type
    string
    Description

    commercial : Tekil Ürün, combine: Varyantlı Ürün, bundle: Paket Ürün

Request

GET
/v1/products
curl --location --request GET 'https://api.labsoffice.com/v1/products?page=1&limit=10' \
--header 'Authorization: Bearer {API_TOKEN}'

Response

{
    "items": [
{
    "id": 1,
    "mainSku": "14001",
    "productType": "combine",
    "brandId": 1,
    "title": {
    "en": "Men's Tracksuit (Big Size)",
    "tr": "Erkek Büyük Beden Likralı Eşofman Takımı"
},
    "subTitle": {
    "en": "Airlife Sportswear",
    "tr": "Airlife Sportswear"
},
    "description": {
    "tr": "Airlife erkek büyük beden kapüşonlu fermuarlı hafif slim eşofman takımı, rahat ve modern stili sayesinde günlük yada spor aktivitelerinizde de tercih edebilirsiniz.",
    "en": "Airlife men's oversized hooded zipper lightweight slim track suit, comfortable and modern style for your daily or sports activities."
},
    "keywords": {
    "tr": "büyük beden, battal, ekru melanj, siyah melanj, lacivert melanj, bordo, kapüşon, fermuar, spor, fitness, koşu, yürüyüş, slim, dar, antrenman, günlük",
    "en": "plus size, battal, ecru melange, black melange, navy blue melange, burgundy, hoodie, zipper, sports, fitness, running, walking, slim, narrow, training, daily"
},
    "createdAt": "2019-10-23T12:31:09.000000Z",
    "customAttributes": null,
    "collections": [],
    "variants": [
       {
        "barcode": "8682417002895",
        "color": "R01_004",
        "size": "2XL",
        "modelId": "14001",
        "skuId": "14001_R01_004_2XL",
        "unitId": null,
        "status": 1,
        "attributes": [
           {
            "attributeType": "color",
            "attributeLabel": "Ekru Melanj",
            "attributeValue": "R01_004"
           },
           {
            "attributeType": "size",
            "attributeLabel": "2XL",
            "attributeValue": "2XL"
           }
        ],
        "meta": {
            "title": "",
            "subTitle": "",
            "description": "",
            "keywords": ""
           },
        "images": [
           {
            "src": "https://static-labs.s3.eu-central-1.amazonaws.com/products/1/14001/original/14001_R01_004_1.jpg",
            "sortId": 1
           },
           {
            "src": "https://static-labs.s3.eu-central-1.amazonaws.com/products/1/14001/original/14001_R01_004_2.jpg",
            "sortId": 2
           },
        ],
        "prices": [
           {           
            "currency": "TRY",
            "warehouseId": 1,
            "costPrice": "160.00",
            "salePrice": "199.90",
            "listPrice": "299.98",
            "vatRate": 8
            }
        ],
        "subBundleProducts": [
            {
            "subBarcodeId": "2121002726731",
            "unitQuantity": 1,
            "unitPercent": "33.33"
            },
            {
            "subBarcodeId": "2121002726748",
            "unitQuantity": 1,
            "unitPercent": "33.33"
            },
            {
            "subBarcodeId": "2121005940752",
            "unitQuantity": 1,
            "unitPercent": "33.33"
            }
        ],
        "quantity": [
            {
            "warehouseId": 1,
            "qty": 18,
            "source": null,
            "maxShowQty": null,
            "maxCartQty": null,
            "safeLockQty": 0,
            "isLocked": 0,
            "updatedAt": "2021-12-13T11:09:19.000000Z"
            }
        ]
    }]
}],
    "totalItems": 1,
    "totalPage": 1,
    "currentPage": 1,
    "limit": 10
}

GET/v1/products/{productId}

Ürün Görüntüle

Bu servis aracılığı ile Labs platformu üzerinde mevcut bir ürüne ait detayları listeleyebilirsiniz.

Request

GET
/v1/products/15632
curl --location --request GET 'https://api.labsoffice.com/v1/products/15632' \
--header 'Authorization: Bearer {API_TOKEN}'

Response

{
    "id": 31459,
    "mainSku": "8681715340357",
    "productType": "commercial",
    "brandId": 2044,
    "title": {
        "tr": "2020 Üretimi Konix Antibakteriyel El Dezenfektan Jel 50ML"
    },
    "subTitle": null,
    "description": null,
    "keywords": null,
    "createdAt": "2021-06-21T13:10:03.000000Z",
    "customAttributes": null,
    "collections": [],
    "variants": [
        {
            "barcode": "8681715340357",
            "color": "",
            "size": "",
            "modelId": "8681715340357",
            "skuId": "8681715340357",
            "unitId": null,
            "status": 1,
            "attributes": [],
            "meta": {
                "title": "",
                "subTitle": "",
                "description": "",
                "keywords": ""
            },
            "images": [],
            "prices": [
                {
                    "currency": "TRY",
                    "warehouseId": 31,
                    "costPrice": "12.00",
                    "salePrice": "37.56",
                    "listPrice": "50.08",
                    "vatRate": 8
                }
            ],
            "subBundleProducts": [
                    {
                    "subBarcodeId": "2121002726731",
                    "unitQuantity": 1,
                    "unitPercent": "33.33"
                    },
                    {
                    "subBarcodeId": "2121002726748",
                    "unitQuantity": 1,
                    "unitPercent": "33.33"
                    },
                    {
                    "subBarcodeId": "2121005940752",
                    "unitQuantity": 1,
                    "unitPercent": "33.33"
                    }
                ],
            "quantity": [
                {
                    "warehouseId": 31,
                    "qty": 249,
                    "source": null,
                    "maxShowQty": null,
                    "maxCartQty": null,
                    "safeLockQty": 0,
                    "isLocked": 0,
                    "updatedAt": "2021-12-12T17:49:10.000000Z"
                }
            ]
        }
    ]
}

POST/v1/products/price-and-inventory

Stok ve Fiyat Güncelleme

Yeni ürün kartı oluşturmak için gerekli parametreler aşağıdaki tabloda belirtilmiştir.

platform alanından pazaryeri bazlı stok ve fiyat bilgisi gönderebilirsiniz.

Zorunlu parametreler

  • Name
    barcode
    Type
    string
    Description

    Ürün barkodu

  • Name
    quantity
    Type
    integer
    Description

    Stok adedi

  • Name
    warehouseId
    Type
    integer
    Description

    Depo ID bilgisi, boş gönderilirse yapılan değişiklikler Labs üzerinde tanımlı olan tüm depolara uygulanır

  • Name
    salePrice
    Type
    float
    Description

    Satış fiyatı bilgisi

  • Name
    listPrice
    Type
    float
    Description

    Üstü çizili fiyat bilgisi

  • Name
    platform
    Type
    array
    Description

    Platform bazında fiyat ve stok kuralı uygulamak için kullanılabilir

  • Name
    platform.salePrice
    Type
    float
    Description

    Platform özelinde belirlenen satış fiyatı

  • Name
    platform.quantityDiff
    Type
    integer
    Description

    Girilen değer kadar stok farkı ilgili platforma yansıtılır. 10 yada -10 şeklinde değerler gönderilebilir.

  • Name
    platform.name
    Type
    string
    Description

    Platform adını belirtmelisiniz. Uppercase formatında gönderilmelidir. Örneğin : TRENDYOL, HEPSIBURADA vb.

Request

POST
/v1/products/price-and-inventory
curl --location --request GET https://api.labsoffice.com/v1/products/price-and-inventory \
--header "Authorization: Bearer {API_TOKEN}" \
--header "Content-Type: application/json" \
--data-raw '
{
    "items": [
{
    "barcode": "8682417002895",
    "quantity": 150,
    "warehouseId": 1,
    "salePrice": 122.85,
    "listPrice": 133.85,
    "platform" : [
        {
            "salePrice": 122.85,
            "quantityDiff": 100,
            "name" : "TRENDYOL"
        },
        {
            "salePrice": 122.85,
            "quantityDiff": -10,
            "name" : "HEPSIBURADA"
        }
    ]
},
{
    "barcode": "8682417002896",
    "quantity": 150,
    "warehouseId": 1,
    "salePrice": 122.85,
    "listPrice": 133.85,
    "platform" : []
},
{
    "barcode": "8682417002897",
    "quantity": 150,
    "warehouseId": 1,
    "salePrice": 122.85,
    "listPrice": 133.85,
    "platform" : []
},
{
    "quantity": 150,
    "warehouseId": 1,
    "salePrice": 122.85,
    "listPrice": 133.85,
    "platform" : []
}
    ]
}'

Response

{
    "batchRequestId": "fjj03333-45k4-4730-44lo-9349493k434-3912831312",
    "totalItems" : 1, // toplam gönderilen istek
    "validItems" : 1, // işleme alınan istek
    "invalidItems" : 0, // geçersiz & hatalı istekler
}

GET/v1/products/batch-requests/{batchRequestId}

İşlem Sonucu Sorgulama

Stok ve fiyat güncelleme işlem sonuçlarını bu servis aracılı ile kontrol edebilirsiniz.

Request

GET
/v1/products/batch-requests/{batchRequestId}
curl --location --request GET
https://api.labsoffice.com/v1/products/batch-requests/4e029e39-a1f6-4462-9e95-0a970fd84811 \
--header "Authorization: Bearer {API_TOKEN}" \
--header "Content-Type: application/json" \

Response

{
    "batchRequestId": "fjj03333-45k4-4730-44lo-9349493k434-3912831312",
    "items" : [
    // işlem sonucu
    ]
}