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

# Menü Ürünleri, İlaveler ve Entegrasyon Kodu Yönetimi

> ORIONPOS API ürün yapısını keşfedin: entegrasyon kodu yönetimini, toplu güncelleme önerilerini ve SuitPos entegrasyonu için kritik noktaları öğrenin.

ORIONPOS API, ORIONPOS menüsündeki ürünleri ve ilaveleri dış sistemlerinizle senkronize etmenizi sağlar. Menü verilerini okuyabilir, kendi sisteminizle eşleştirebilir ve entegrasyon kodlarını toplu olarak güncelleyebilirsiniz. Bu sayede siparişleri doğru ürünlerle eşleştiren sağlam bir entegrasyon kurabilirsiniz.

## Menü Yapısı

ORIONPOS menüsü iki temel bileşenden oluşur:

* **MenuItem (Ürün):** Menüde satışa sunulan ana kalemlerdir. Her ürün bir veya birden fazla ürün grubuna bağlıdır.
* **Condiment (İlave):** Ürünlere eklenebilen seçeneklerdir (örn. sos, ekstra malzeme). İlaveler de kendi gruplarıyla organize edilir ve bir `MenuItem`'ın `RequiredCondimentGroups` veya isteğe bağlı condiment gruplarına bağlanır.

Her ürün ve ilave, gruba bağlı olarak kategori bazında filtrelenip listelenebilir.

## Önemli Ürün Alanları

| Alan                      | Tür    | Açıklama                                                                                                                                                                                  |
| ------------------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `IntegrationCode`         | string | Üçüncü parti yazılım entegrasyonu için alfanümerik kod. Kendi sisteminizdeki ürün kimliğiyle eşleştirirsiniz                                                                              |
| `Count`                   | float  | Anlık stok miktarı. `-1` değeri, ürünün stok takibinde olmadığını gösterir                                                                                                                |
| `RequiredCondimentGroups` | array  | Sipariş sırasında seçilmesi **zorunlu** olan ilave grup kimliklerini içerir                                                                                                               |
| `AllPrices`               | array  | Ürünün tüm fiyat seviyelerini içerir. Her giriş `DefaultPriceName`, `PriceName` ve `Price` alanlarına sahiptir. Belirli bir seviyede fiyat tanımlı değilse `Price` alanı `null` gelebilir |

<Note>
  `Count` değeri `-1` olan ürünler için stok azaltma veya artırma işlemi yapmaya çalışmayın. Bu ürünler ORIONPOS tarafından sınırsız stok olarak kabul edilir.
</Note>

## Entegrasyon Kodu Yönetim Akışı

Kendi sisteminizde ürünleri ORIONPOS menüsüyle eşleştirmek için aşağıdaki adımları izleyin:

<Steps>
  <Step title="Mevcut kodları çekin">
    `POST /GetItemsIntegrationCode` uç noktasını çağırarak şubeye ait tüm ürünlerin mevcut entegrasyon kodlarını alın. Bu istek size her ürünün `ItemId`, `ItemNo`, `Name` ve `IntegrationCode` bilgilerini döndürür.

    ```bash theme={null}
    curl -X POST "https://api.orionpanel.com/GetItemsIntegrationCode" \
      -H "Token: <token>" \
      -H "Content-Type: application/json" \
      -d '{
        "branch": "SUBE01"
      }'
    ```
  </Step>

  <Step title="Kendi sisteminizle eşleştirin">
    Dönen ürün listesini kendi veritabanınızdaki ürünlerle karşılaştırın. Her ORIONPOS ürünü için kendi sisteminizdeki karşılık gelen ürünün kimliğini (SKU, barkod vb.) `IntegrationCode` olarak atamaya hazır hale getirin.

    <Note>
      `IntegrationCode` değeri boş (`""`) olan ürünler henüz eşleştirilmemiştir. Bu ürünleri öncelikli olarak eşleştirmeniz, satış verilerinin doğru senkronize edilmesi için kritik önem taşır.
    </Note>

    <Warning>
      `IntegrationCode` alanına **boş string (`""`) göndermek mevcut eşleştirmeyi siler**. Eşleştirmeyi korumak istediğiniz ürünleri güncelleme isteğine dahil etmeyin.
    </Warning>
  </Step>

  <Step title="Toplu güncelleme yapın">
    `POST /UpdateIntegrationCode` uç noktasıyla eşleştirdiğiniz kodları toplu olarak ORIONPOS'a gönderin. Performanslı bir güncelleme için her istekte **500–1000 kayıt** göndermenizi öneririz.

    Her kayıtta `ItemId` **veya** `ItemNo` alanlarından en az biri zorunludur. Her ikisi de gönderilirse **`ItemId` öncelikli** olarak kullanılır.

    ```bash theme={null}
    curl -X POST "https://api.orionpanel.com/UpdateIntegrationCode" \
      -H "Token: <token>" \
      -H "Content-Type: application/json" \
      -d '{
        "branch": "SUBE01",
        "data": [
          { "ItemId": 101, "IntegrationCode": "SKU-00423" },
          { "ItemId": 102, "IntegrationCode": "SKU-00891" },
          { "ItemNo": "P-005", "IntegrationCode": "SKU-00456" }
        ]
      }'
    ```

    <Tip>
      Büyük menülerde güncellemeyi toplu partiler hâlinde gönderin. Tek seferde çok fazla kayıt göndermek istek zaman aşımına yol açabilir.
    </Tip>
  </Step>
</Steps>

## SuitPos Entegrasyonu

SuitPos sistemiyle entegrasyon gerçekleştiriyorsanız, ürün ve şube eşleştirmesinde dikkat etmeniz gereken önemli bir nokta vardır:

<Warning>
  SuitPos entegrasyonunda `outletNo` alanını, ORIONPOS'tan dönen `outletId` değeriyle doldurmanız gerekir. `outletNo` alanına farklı bir değer atanması, ürünlerin yanlış gelir merkezine bağlanmasına ve satış raporlarında tutarsızlığa neden olur.
</Warning>
