> ## Documentation Index
> Fetch the complete documentation index at: https://docs.plato.ae/llms.txt
> Use this file to discover all available pages before exploring further.

# Menü Ürünleri

> Yayınlanan restoran ürünlerini filtreler, sayfalandırmalar, değiştiriciler ve CMS verileriyle okuyun.

Plato dışındaki ürün listelerini oluşturmak için API menü ürünlerini kullanın.

```text theme={null}
GET /api/public/menu/products
```

Bu uç nokta şu anda sorgu dizesinde API anahtarını bekliyor.

## Örnek

```bash theme={null}
curl "https://api.plato.ae/api/public/menu/products?apiKey=$PLATO_API_KEY&limit=20&page=1"
```

## Sorgu Parametreleri

| Parametre        | Tip            | Varsayılan  | Notlar                                                                      |
| ---------------- | -------------- | ----------- | --------------------------------------------------------------------------- |
| `apiKey`         | sicim          | gerekli     | Plato API anahtarı.                                                         |
| `search`         | sicim          | hiçbiri     | Ürün adlarını arayın.                                                       |
| `q`              | sicim          | hiçbiri     | Alternatif arama parametresi.                                               |
| `categoryId`     | sicim          | hiçbiri     | Kategori kimliğine göre filtreleyin.                                        |
| `categorySlug`   | sicim          | hiçbiri     | Bir kategori bilgisine göre filtreleyin.                                    |
| `categorySlugs`  | virgül listesi | hiçbiri     | Birden çok kategoriye göre filtreleyin.                                     |
| `published`      | boolean        | `true`      | İzin verildiğinde yayınlanmamış ürünleri getirmek için `false`'yi kullanın. |
| `soldout`        | boolean        | hiçbiri     | Tükenmiş durumu filtreleyin.                                                |
| `minPrice`       | sayı           | hiçbiri     | Fiyat seçeneklerine göre filtreleyin.                                       |
| `maxPrice`       | sayı           | hiçbiri     | Fiyat seçeneklerine göre filtreleyin.                                       |
| `slug`           | sicim          | hiçbiri     | Tam ürün bilgisine göre getir.                                              |
| `ids`            | virgül listesi | hiçbiri     | Belirli ürün kimliklerini alın.                                             |
| `sortBy`         | sicim          | `createdAt` | `name`, `createdAt`, `updatedAt` veya `slug`.                               |
| `sortOrder`      | sicim          | `desc`      | `asc` veya `desc`.                                                          |
| `page`           | sayı           | `1`         | Sayfa numarası.                                                             |
| `limit`          | sayı           | `20`        | Minimum `1`, maksimum `100`.                                                |
| `includeCmsData` | boolean        | `true`      | Ürünlerle ilgili CMS girişlerini ekleyin.                                   |

## Cevap

```json theme={null}
{
  "data": [
    {
      "id": "product_123",
      "slug": "classic-burger",
      "barcode": null,
      "name": {
        "en": "Classic Burger"
      },
      "intro": null,
      "description": null,
      "priceOptions": [
        {
          "id": "regular",
          "price": 38
        }
      ],
      "thumbnail": null,
      "images": [],
      "published": true,
      "soldout": false,
      "preparationTime": null,
      "nutritionFacts": null,
      "suggestions": [],
      "category": {
        "id": "category_123",
        "slug": "burgers",
        "name": {
          "en": "Burgers"
        }
      },
      "optionSets": [],
      "cmsData": {},
      "createdAt": "2026-06-17T08:20:00.000Z",
      "updatedAt": "2026-06-17T09:15:00.000Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 42,
    "totalPages": 3,
    "hasMore": true
  }
}
```

## CMS Verileri

`includeCmsData=true` olduğunda Plato, `MenuProduct` ile ilgili CMS girişlerini arar.

`cmsData` nesnesi CMS veritabanı tanımlayıcısına göre gruplandırılır:

```json theme={null}
{
  "cmsData": {
    "product_badges": [
      {
        "id": "entry_123",
        "label": {
          "en": "Popular"
        }
      }
    ]
  }
}
```

Yalnızca temel ürün alanlarına ihtiyaç duyduğunuzda `includeCmsData=false`'yi ayarlayın.

## Notlar

* Ürünler varsayılan olarak `published=true`'dir.
* Ürün fiyat seçeneklerine göre fiyat filtrelemesi uygulanır.
* Ürün detay sayfaları için `slug` kullanın.
* Başka bir sistem ürün kimliklerini zaten biliyorsa `ids`'yi kullanın.
