T-SOFT/Storefront API/Menüler

Menüler

Mağaza panelinde tanımlanan navigasyon menülerini (üst menü, mobil menü vb.) döndürür. Her menü, iç içe (ağaç) yapıda menü öğeleri içerir; öğeler hedef türü ve hazır URL ile gelir — istemcinin link kurması gerekmez. Salt-okunur bir kaynaktır.

Yetki:storefront:read — herkese açık, token isteğe bağlı.
Menünün id değeri sayısal değil, menü kodudur (büyük harf, rakam ve alt çizgi — örn. MENU_MOBILE). Tek kayıt isterken bu kodu kullanın.

Listeleme

GET /menus
curl -s 'https://<domain>/api/v3/storefront/2026-01/menus' \
  -H 'Accept: application/vnd.api+json' \
  -H 'Authorization: Bearer <TOKEN>'

Örnek bir menü kaydı:

{
  "type": "menus",
  "id": "MENU_MOBILE",
  "attributes": {
    "name": "Mobil Menü",
    "items": [
      { "label": "Kadın", "targetType": "category", "targetId": "335", "url": "https://<domain>/kadin", "opensInNewTab": false, "imageUrl": "", "sortOrder": 1, "children": [
        { "label": "Elbise", "targetType": "category", "targetId": "340", "url": "https://<domain>/kadin-elbise", "opensInNewTab": false, "imageUrl": "", "sortOrder": 1, "children": [] }
      ] },
      { "label": "Kampanya", "targetType": "url", "targetId": null, "url": "https://<domain>/kampanya", "opensInNewTab": true, "imageUrl": "https://<domain>/Data/menu/kampanya.png", "sortOrder": 2, "children": [] }
    ]
  }
}

Tek menü

GET /menus/{id}
curl -s 'https://<domain>/api/v3/storefront/2026-01/menus/MENU_MOBILE' \
  -H 'Accept: application/vnd.api+json' \
  -H 'Authorization: Bearer <TOKEN>'

Yanıt yapısı listeleme ile aynıdır; data tekil obje döner. Tanımsız kod → 404.

Menü öğesi alanları

items en fazla 5 seviye derinliğe iner; her öğe şu alanları taşır:

AlanAçıklama
labelMenüde görünen metin (mağazanın aktif diline göre)
targetTypeHedef türü: category, brand, page, content, product, model, blog, news veya url
targetIdHedef kaydın id'si (string) — targetType: url gibi kayda bağlanmayan öğelerde null
urlHazır tam URL — doğrudan yönlendirmede kullanın
opensInNewTabYeni sekmede açılmalı mı
imageUrlÖğeye tanımlı görselin tam URL'i; görsel yoksa boş string
sortOrderMenü içindeki sıra
displayInMobileÖğe mobil uygulamada gösterilmek üzere işaretli mi
hasChildrenAlt öğesi var mı — children dizisini açmadan önce kontrol edilebilir
childrenAlt öğeler (aynı yapı, boş dizi olabilir)
  • Yalnızca aktif öğeler döner; pasif öğeler ve boş menü grupları öğesiz gelir.
  • targetType: category öğelerde targetId, Kategoriler kaynağındaki id ile eşleşir; brand öğelerde Markalar kaynağıyla.

Mobil görünürlük

Mobil uygulamada kategori menüsü, mağazanın "mobilde göster" işaretine göre daraltılır. Bu daraltma iki durumda devreye girer:

  • MENU_MOBILE kodlu menü istendiğinde,
  • ya da istekte X-Storefront-Platform: ios veya X-Storefront-Platform: android başlığı gönderildiğinde.
curl "https://<domain>/api/v3/storefront/2026-01/menus?filter[id]=MENU_MOBILE" \
  -H "Accept: application/vnd.api+json" \
  -H "X-Storefront-Platform: ios" \
  -H "Authorization: Bearer <access_token>"

Daraltma açıkken mobilde gösterilmeyen kategoriler menüden düşer; başlık gönderilmezse ve menü kodu MENU_MOBILE değilse tüm menü öğeleri döner. displayInMobile alanı her iki durumda da yanıtta yer alır.

Üst kategoriye dönüş öğesi

Alt öğesi olan bir kategori öğesinin children dizisinin başına, ebeveynin kendisine giden bir kısayol eklenir: kullanıcı "Gömlek" grubunu açtığında listenin ilk satırından doğrudan "Gömlek" kategorisine gidebilir. Kısayolun hedefi ebeveynle aynıdır, hasChildren değeri false ve children dizisi boştur.

Kısayolun metni mağazanın tema sözlüğünden gelir. Sözlükte karşılığı tanımlı değilse kısayol hiç eklenmez — istemcide etiketsiz bir satır oluşmaz.

Filtreler

FiltreÖrnekDavranış
filter[id]filter[id]=MENU_MOBILE,MENU_TOPMenü koduyla sınırla — virgülle birden fazla kod