Masa Yerleşimi — GET /plugin-api/tables/layout ✓ Canlı

Mağazanın masa yerleşimini (floor plan) döndürür: bölümler (salon/alan) + her bölümdeki aktif masalar (id + ad). Masa rezervasyon/seçim eklentileri veya bir masanın detayını çözmek için. Masa id'si tables/get ve tables/open ile birebir aynıdır.

← API Uçları · ortak kurallar (base, auth, hata zarfı) orada.

İstek

GET {RESTOMENUM_BASE}/plugin-api/tables/layout
Authorization: Bearer {serverId}.{pluginId}.{secret}     // install API key (token exchange)
  • Base: Sandbox https://sandbox.plugins.restomenum.app, Production https://plugins.restomenum.app (API Uçları).
  • Parametre yok — tüm bölümler + masalar döner.
  • Auth: Authorization: Bearer <apiKey>token exchange'teki install API key (serverId.pluginId.secret).
  • Scope: orders:read (masa/dine-in domain; tables/get ile aynı, PII yok).

Yanıt

Gerçek 200 örneği
{
  "success": true,
  "data": [
    {
      "id": "a2-1",
      "title": "Bahçe",
      "tables": [
        { "id": "masa-1", "title": "Masa 1" },
        { "id": "masa%C5%9F%C4%9F%C4%B1-2", "title": "Masaşğı 2" }
      ]
    }
  ]
}

Alanlar

AlanTipAçıklama
idstringBölüm (salon) id'si
titlestringBölüm adı (ör. "Bahçe")
ranknumber?Bölüm sırası — opsiyonel; çoğu mağazada dönmez (canlı örnekte yok). Geldiğinde küçükten büyüğe sırala, gelmeyince data sırasını koru.
tables[]arrayBölümdeki aktif masalar (pasif masalar dönmez)
tables[].idstringMasa id'si — tables/get?id= ve tables/open'daki tableId ile birebir aynı. URL-safe (addan türetilir; özel/Türkçe karakter percent-encode, boşluk →-).
tables[].titlestringMasa adı (görünen ad, ör. "Masa 1")

Hatalar

messageHTTPAnlam
plugin.scope.denied200orders:read onaylı değil ({ success:false })
unauthorized401Geçersiz/eksik install key

id neden önemli — uçların birbirine bağlanması

tables[].id masanın kalıcı kimliğidir ve diğer masa uçlarıyla aynıdır:

  • tables/layout → mağazadaki tüm masaları id + adıyla verir (açık olsun olmasın).
  • tables/open → o an açık masaların tableId'si (= layout'taki id).
  • tables/get?id={id} → bir masanın tam detayı (adisyon satırları, müşteri…), masa açıkken.

Tipik akış: layout'tan masa listesini al → açık olanları tables/open ile öğren → bir masanın detayı için tables/get?id={tables[].id}.

id zaten URL-safe gelir (backend encodeURIComponent uygular). Eklenti id'yi tekrar encode etmemeli; doğrudan tables/get?id={id} olarak kullanmalı. Örn. "Masaşğı 2" → masa%C5%9F%C4%9F%C4%B1-2.

Notlar

  • Sızıntı önlemi: saatlik masa ücreti (openingPrice/perMin/perPrice) ve grid boyutları (w/h) dönmez — yalnız bölüm + masa id/adları.
  • Yalnız aktif masalar döner (pasifler hariç).