Kategoriler
Yetki:
storefront:read — herkese açık, token isteğe bağlı.Ana kategoriler
En üst seviye kategorileri listelemek için filter[parentId]=0 kullan:
GET /categories
curl -s 'https://<domain>/api/v3/storefront/2026-01/categories?filter[parentId]=0' \
-H 'Accept: application/vnd.api+json' \
-H 'Authorization: Bearer <TOKEN>'
Örnek bir kategori kaydı:
{
"type": "categories",
"id": "335",
"attributes": {
"code": "mobilya",
"name": "Mobilya",
"slug": "mobilya",
"seoTitle": "Mobilya | Mağaza",
"seoDescription": "…",
"shortDescription": "Ev ve ofis için mobilya çeşitleri.",
"image": "https://<domain>/Data/EditorFiles/kategoriler/mobilya.jpg",
"parentId": 0,
"productCount": 128,
"hasChild": true,
"isActive": true
}
}
Kategori ID'lerini uygulamaya sabit değer olarak gömme (
335 gibi) — mağazadan mağazaya değişir. Ana kategorileri her zaman filter[parentId]=0 ile sorgula.Tek kategori
GET categories/{id}
curl -s 'https://<domain>/api/v3/storefront/2026-01/categories/340' \
-H 'Accept: application/vnd.api+json' \
-H 'Authorization: Bearer <TOKEN>'
Yanıt, listedeki kaydın aynısıdır (data tekil obje olarak döner). Kategori sayfası açılışında ağaç konumunu çözmek için parentId ve hasChild alanlarını kullan; alt dalları listelemek için filter[parentId]={id} ile sorgula.
Yayında olmayan veya görünürlüğü kapalı bir kategori istendiğinde 404 alınır.
Alanlar
| Alan | Açıklama |
|---|---|
code | Kategori kodu |
name | Görünen ad |
slug | URL parçası |
seoTitle, seoDescription, shortDescription | SEO/kart metinleri |
image | Tam URL, yoksa boş string |
parentId | Üst kategori id'si (kök için 0) |
productCount | Kategorideki yayın ürün sayısı |
hasChild | Alt kategori var mı? |
isActive | Kategori aktif mi? Yanıtta yalnızca görünür kategoriler döndüğü için pratikte her zaman true'dur; bu alana bakarak eleme yapmana gerek yok |
Kategori listesi ile Menüler kaynağı aynı görünürlük kümesini kullanır: menüde gizlenmiş ama mobilde gösterilmek üzere işaretlenmiş bir kategori her ikisinde de döner. Mağaza kategoriyi tamamen kapattıysa hiçbirinde görünmez.
Ağaçta drill-down
hasChild: true olan bir kategorinin alt dalları için tekrar filter[parentId]=<id> ile sorgu at:
categories?filter[parentId]=335
Sıralama
| Sort | Anlamı |
|---|---|
sortOrder | Yönetim panelinden verilen manuel sıra |
name | Alfabetik |
id | Kayıt numarası |
sort verilmezse kategoriler mağazanın verdiği manuel sıraya, eşitlikte id'ye göre döner — aynı istek her çağrıldığında aynı sırayı verir.
productCount bazı mağazalarda güncel olmayabilir — kategoride ürün olmasına rağmen 0 dönebilir. "Bu kategoride şu kadar ürün var" rozetini bu alana doğrudan bağlarken bu ihtimali göz önünde bulundur.