Yeni Ürün Yaratma ve Güncelleme API Dökümantasyonu (Varyantlı Ürün)

Bu API, yeni ürünlerin yaratılması veya mevcut ürünlerin güncellenmesi için kullanılır.

API Endpoint

API, aşağıdaki endpoint üzerinden çağrılabilir:

POST https://apiurl/pim/SaveProductsManually?companyId=8

İstek Başlıkları (Request Headers)

  • Authorization: Kullanıcı kimlik doğrulaması için kullanılan JWT (JSON Web Token) kimlik belgesi.
  • Content-Type: İstek gövdesinin JSON formatında olduğunu belirten başlık.

İstek Gövdesi (Request Body)

API isteği, aşağıdaki JSON verilerini içeren bir dizi ürün bilgisi içerir:

Ürün Bilgileri

  • Main: Temel ürün bilgilerini içeren nesne.
    • Model: Ürünün model numarası.
    • Option: Ürünün seçeneği.
    • Sku: Ürünün stok birimi (SKU).
    • Type: Ürünün tipi. varyantlar için 3 olmalıdır. model=1,option=2

Ürün Adları

  • Ürünün farklı kültürler için farklı adlarını içeren bir dizi nesne.
    • Value: Ürünün adı.
    • EntityListId: Dil kodunu içeren kimlik.
    • Culture: Dil kodu (örneğin: "std" standart, "en" İngilizce, "tr" Türkçe).

Ürün Açıklaması

  • Ürünün açıklamasını içeren bir dizi nesne.
    • Value: Ürünün açıklaması.
    • EntityListId: Dil kodunu içeren kimlik.
    • Culture: Dil kodu (örneğin: "std" standart, "en" İngilizce, "tr" Türkçe).

Ürün Fiyatları

  • Ürünün fiyat bilgilerini içeren bir dizi nesne.
    • IsTransferable: Fiyatın transfer edilebilir olup olmadığını belirten bayrak.
    • EntityListId: Fiyat bilgisini tanımlayan kimlik.
    • CurrencyId: Para birimi kimliği.
    • ListPrice: Ürünün liste fiyatı.
    • SalePrice: Ürünün satış fiyatı.
    • CampaignPrice: Ürünün kampanya fiyatı (varsa).
    • OperationType: Fiyat işlem türü (örneğin: "upsert").

Ürün Fotoğraf ve Video (Assets)

  • Ürünün medya varlıklarını içeren bir dizi nesne. (örneğin, ürün görselleri)
    • EntityListId: Varlığı tanımlayan kimlik.
    • Name: Varlığın URL'si veya adı.
    • Order: Varlığın sıralama düzeni.
    • AssetType: Varlığın tipi video=3,fotoğraf=1.

Ürün Özellikleri

  • Ürünün özelliklerini içeren bir dizi nesne.
    • EntityListId: Özelliği tanımlayan kimlik.
    • Value: Özelliğin değeri.
    • Key: Özelliğin anahtarı.
    • OperationType: Özellik işlem türü (örneğin: "upsert").
    • Culture: Dil kodu (örneğin: "std" standart, "en" İngilizce, "tr" Türkçe).

Örnek Kullanım

Aşağıda API'yi kullanarak yeni bir ürün eklemek için bir örnek CURL isteği bulunmaktadır.

curl --location 'https://apiurl/pim/SaveProductsManually?companyId=8' \
--header 'Authorization: Bearer [YourJWTToken]' \
--header 'Content-Type: application/json' \
--data '[
    {
        "Main": {
            "Model": "TestAyakkabi3",
            "Type": 1
        },
        "ProductLists": [
            {
                "OperationType": "upsert",
                "EntityListId": 10
            }
        ]
    },
    {
        "Main": {
            "Option": "TestAyakkabi3KIRMIZI",
            "Model": "TestAyakkabi3",
            "Type": 2
        },
        "Attributes": [
            {
                "EntityListId": 49,
                "Value": "Turkuaz",
                "Key": 260,
                "OperationType": "upsert",
                "Culture": "std"
            },
            {
                "EntityListId": 49,
                "Value": "Unisex",
                "Key": 267,
                "OperationType": "upsert",
                "Culture": "std"
            },
            {
                "EntityListId": 49,
                "Value": "Adidas",
                "Key": 270,
                "OperationType": "upsert",
                "Culture": "std"
            }
        ],
        "Prices": [
            {
                "IsTransferable": true,
                "EntityListId": 7,
                "CurrencyId": 1,
                "ListPrice": 100,
                "SalePrice": 100
            }
        ],
        "ProductLists": [
            {
                "OperationType": "upsert",
                "EntityListId": 10
            }
        ],
        "Name": [
            {
                "Value": "Test Ayakkabi 1 KIRMIZI",
                "EntityListId": 4,
                "Culture": "std"
            }
        ],
        "Description": [
            {
                "Value": "<h1>Çok güzel kırmızı ayakkabı</h1><b>Alt Başlık Deneme</b> <p class=\"table-text\">Burada ürünle ilgili kısa bilgi verilecektir. </p><table><tbody><tr class=\"table-baslik\"> <td>Ürün Özellikleri</td><td>Açıklama</td><tr> <td>Dahili Hafıza</td><td>128 GB</td></tr><tr> <td>Ekran Boyutu</td><td>32\"</td></tr><tr class=\"table-baslik\"> <td>Fiziksel Özellikler</td><td>Açıklama</td><tr> <td>Bölme Sayısı</td><td>3 Bölme</td></tr></tbody></table>",
                "EntityListId": 4,
                "Culture": "std"
            }
        ],
        "Title": [
            {
                "Value": "Test Ayakkabi 1 KIRMIZI",
                "EntityListId": 4,
                "Culture": "std"
            }
        ],
        "SeoDescription": [
            {
                "Value": "Test Ayakkabi 1 KIRMIZI",
                "EntityListId": 4,
                "Culture": "std"
            }
        ]
    },
    {
        "Main": {
            "Type": 3,
            "Option": "TestAyakkabi3KIRMIZI",
            "Model": "TestAyakkabi3",
            "Sku": "TestAyakkabi3KIRMIZI37",
            "Barcode": "TestAyakkabi3KIRMIZI37"
        },
        "Attributes": [
            {
                "EntityListId": 49,
                "Value": "37",
                "Key": 269,
                "OperationType": "upsert",
                "Culture": "std"
            }
        ],
        "ProductLists": [
            {
                "OperationType": "upsert",
                "EntityListId": 10
            }
        ]
    },
    {
        "Main": {
            "Type": 3,
            "Option": "TestAyakkabi3KIRMIZI",
            "Model": "TestAyakkabi3",
            "Sku": "TestAyakkabi3KIRMIZI38",
            "Barcode": "TestAyakkabi3KIRMIZI38"
        },
        "Attributes": [
            {
                "EntityListId": 49,
                "Value": "38",
                "Key": 269,
                "OperationType": "upsert",
                "Culture": "std"
            }
        ],
        "ProductLists": [
            {
                "OperationType": "upsert",
                "EntityListId": 10
            }
        ]
    },
    {
        "Main": {
            "Type": 3,
            "Option": "TestAyakkabi3KIRMIZI",
            "Model": "TestAyakkabi3",
            "Sku": "TestAyakkabi3KIRMIZI39",
            "Barcode": "TestAyakkabi3KIRMIZI39"
        },
        "Attributes": [
            {
                "EntityListId": 49,
                "Value": "39",
                "Key": 269,
                "OperationType": "upsert",
                "Culture": "std"
            }
        ],
        "ProductLists": [
            {
                "OperationType": "upsert",
                "EntityListId": 10
            }
        ]
    }
]'
Bu dökümanda