Ana içeriğe geç

Urun Kategorileri

Urun kategorilerinin hiyerarsik yapida CRUD islemleri. Kategori kapak gorseli varsa Media Manager'daki dosya ID'si ile referans verilir.

Base URL: /api/tenant/product-catalog/categories Yetkilendirme: Bearer Token + X-Api-Key Modul: Product Catalog modulu musteriye atanmis olmalidir.

Headers:

Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
X-Api-Key: customer-api-key

POST /

Yeni urun kategorisi olusturur. Hiyerarsik yapi icin parentId kullanilir.

Request Body:

{
"parentId": null,
"coverImageMediaFileId": "media-category-cover-id-...",
"sortOrder": 1,
"isActive": true,
"translations": [
{
"languageId": "9cd14a82-...",
"name": "Elektronik",
"slug": "elektronik",
"description": "Elektronik urunler kategorisi",
"metaTitle": "Elektronik Urunler",
"metaDescription": "En iyi elektronik urunler"
}
]
}
AlanTipZorunluAciklama
parentIdGuid?HayirUst kategori ID (bos ise kok kategori)
coverImageMediaFileIdGuid?HayirKategori kapak gorseli icin Media Manager dosya ID
sortOrderintHayirSiralama degeri
isActiveboolHayirAktiflik durumu (varsayilan: true)
translationsProductCategoryTranslationRequest[]EvetDil cevirileri

ProductCategoryTranslationRequest

AlanTipZorunluAciklama
languageIdGuidEvetDil ID
namestringEvetKategori adi
slugstringHayirURL slug (bos ise otomatik olusturulur)
descriptionstringHayirAciklama
metaTitlestringHayirSEO basligi
metaDescriptionstringHayirSEO aciklamasi

Response — 201 Created:

{
"success": true,
"data": {
"id": "3fa85f64-...",
"parentId": null,
"sortOrder": 1,
"isActive": true,
"coverImageUrl": null,
"createdAt": "2026-03-28T14:00:00Z",
"updatedAt": null,
"translations": [
{
"languageId": "9cd14a82-...",
"languageCode": "tr",
"name": "Elektronik",
"slug": "elektronik",
"description": "Elektronik urunler kategorisi",
"metaTitle": "Elektronik Urunler",
"metaDescription": "En iyi elektronik urunler"
}
],
"children": []
}
}

GET /

Tum kategorileri duz liste olarak getirir.

Response — 200 OK:

{
"success": true,
"data": [
{
"id": "3fa85f64-...",
"parentId": null,
"sortOrder": 1,
"isActive": true,
"coverImageUrl": null,
"createdAt": "2026-03-28T14:00:00Z",
"updatedAt": null,
"translations": [...],
"children": []
}
]
}

GET /tree

Kategorileri hiyerarsik agac yapisi olarak getirir. Sadece kok kategoriler (parentId = null) doner, alt kategoriler children alaninda yer alir.

Response — 200 OK:

{
"success": true,
"data": [
{
"id": "3fa85f64-...",
"parentId": null,
"sortOrder": 1,
"isActive": true,
"translations": [
{ "languageId": "...", "languageCode": "tr", "name": "Elektronik", "slug": "elektronik" }
],
"children": [
{
"id": "7ba92e31-...",
"parentId": "3fa85f64-...",
"sortOrder": 1,
"isActive": true,
"coverImageUrl": "https://api.example.com/media/acme/cc4d4a1df9894a8da60f0a5e8cb8583d.webp",
"translations": [
{ "languageId": "...", "languageCode": "tr", "name": "Telefonlar", "slug": "telefonlar" }
],
"children": []
}
]
}
]
}

GET /{id}

Belirli bir kategoriyi alt kategorileriyle birlikte getirir.

Response — 200 OK: ProductCategoryResponse objesi doner.


PUT /{id}

Kategoriyi gunceller.

Request Body: CreateProductCategoryRequest ile ayni yapidir.

Response — 200 OK: ProductCategoryResponse objesi doner.


DELETE /{id}

Kategoriyi siler (soft delete).

Response — 204 No Content


Olasi Hatalar

KodDurum
401Token eksik veya gecersiz
403Tenant kullanicisi yetkisi yok veya product-catalog modul erisimi yok
404Kategori, ust kategori veya medya kaydi bulunamadi
409Slug cakismasi