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"
}
]
}
| Alan | Tip | Zorunlu | Aciklama |
|---|---|---|---|
parentId | Guid? | Hayir | Ust kategori ID (bos ise kok kategori) |
coverImageMediaFileId | Guid? | Hayir | Kategori kapak gorseli icin Media Manager dosya ID |
sortOrder | int | Hayir | Siralama degeri |
isActive | bool | Hayir | Aktiflik durumu (varsayilan: true) |
translations | ProductCategoryTranslationRequest[] | Evet | Dil cevirileri |
ProductCategoryTranslationRequest
| Alan | Tip | Zorunlu | Aciklama |
|---|---|---|---|
languageId | Guid | Evet | Dil ID |
name | string | Evet | Kategori adi |
slug | string | Hayir | URL slug (bos ise otomatik olusturulur) |
description | string | Hayir | Aciklama |
metaTitle | string | Hayir | SEO basligi |
metaDescription | string | Hayir | SEO 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
| Kod | Durum |
|---|---|
401 | Token eksik veya gecersiz |
403 | Tenant kullanicisi yetkisi yok veya product-catalog modul erisimi yok |
404 | Kategori, ust kategori veya medya kaydi bulunamadi |
409 | Slug cakismasi |