Ürün listesi ve ayarlar

Restoran ayarı Cloud panelindedir. Entegre yazılım ya Restroid menüsünü çeker ya da kendi menüsünü Restroid’e yazar. Satış bunların ardından gider.

İki modelden birini seçin. Restroid menüsü: GET /products — her alanın anlamı bu sayfada (id, plu, price / priceAmount, status…). Kendi menünüz: POST /hooks/product-upsert (kapsam products_inbound). Fiş göndermek menü oluşturmaz — o satış işidir.
product-upsert canlı menüyü değiştirir. Yanlış PLU eşlemesi satışta stoğu başka üründen düşürür. Anahtarı istemciye koymayın. Güvenlik.

Restoran ayarını yazılım nasıl alır

Partner yazılım Cloud paneline girmez. Bağlı restoran için GET atar. Kapsam veya restoran bağı yoksa 403.

NeİstekKapsam
Restoran kimliğiGET /restaurants ve GET /restaurants/{id}
Ürün / menü + fiyatGET /restaurants/{id}/productsproducts
KategorilerGET /restaurants/{id}/categoriesproducts
Stok bakiyesiGET /restaurants/{id}/stockstock
PersonelGET /restaurants/{id}/personnelpersonnel
KasaGET /restaurants/{id}/cashcash
Z raporlarıGET /restaurants/{id}/z-reportscash
MuhasebeGET /restaurants/{id}/accountingaccounting

Listeler ?limit= (1–200, varsayılan 50) ve ?offset= kabul eder. Ürün yanıtında total vardır; 50’den fazla kart için offset ile devam edin.

GET /restaurants alanları

AlanNe işe yarar
idRestroid restoran UUID. Satış ve ürün isteklerinde restaurantId budur. Sizin şube kodunuz değil.
nameİşletme adı (paneldeki unvan).
codeRestroid restoran kodu (ör. BSK). Bilgi amaçlı; satışta id kullanın.

1. Restroid menüsünü çekmek

curl -sS "https://cloud.restroid.com/api/public/partner/v1/restaurants/RESTORAN_UUID/products?limit=200&offset=0" \
  -H "Api-Key: rkp_..." -H "Accept: application/json"
{
  "restaurantId": "3f2a1c0e-1111-4222-a333-444455556666",
  "total": 86,
  "limit": 200,
  "offset": 0,
  "products": [
    {
      "id": "a1b2c3d4-0000-4000-8000-000000000001",
      "branchId": "b7e1c2d0-4000-8000-9000-000000000010",
      "plu": "101",
      "name": "Adana",
      "categoryId": "cat-izgara",
      "categoryName": "Izgara",
      "status": "Aktif",
      "isHidden": false,
      "productType": "item",
      "sortOrder": 1,
      "price": "185,50",
      "priceAmount": 185.5,
      "barcode": "8690123456789",
      "updatedAt": "2026-08-28T08:00:00.000Z"
    }
  ]
}

Kök alanlar

AlanTipNe işe yarar
restaurantIdUUIDBu listenin restoranı. Satış ve upsert gövdesinde aynı değeri gönderin.
totalsayıSayfalama öncesi toplam kart. 86 ise ve limit 50 ise ikinci sayfa offset=50.
limitsayıBu yanıtta en fazla kaç satır olduğu (istekteki limit).
offsetsayıAtlanan satır sayısı. İlk sayfa 0.
productsdiziÜrün kartları. Boş dizi menünün boş olduğu anlamına gelir.

products[] — her kart

Restroid menüsünü kendi yazılımınıza yazarken aşağıdaki alanlar gelir. Görsel, alerjen, KDV etiketi ve porsiyon satırı bu listede yoktur; onlar Cloud panelinde kalır.

AlanTipNe işe yarar
idUUIDRestroid ürün kimliği. Satışta items[].productId budur. Sizin iç stok/ürün kodunuz değildir; kalıcı eşleme anahtarı olarak saklayın.
plumetinRestroid ürün kodu (PLU). Satışta items[].plu. Stok hareketinde de bu kod yazılır. Boş olabilir; o zaman id kullanın.
namemetinPaneldeki ürün adı. Misafire/kasiyere göstermek ve satışta items[].name için.
pricemetinGösterim fiyatı, TR biçimi ("185,50"). Hesap veya karşılaştırma için kullanmayın.
priceAmountsayıAynı fiyatın sayı hali (185.5). Kendi listenize yazın, yuvarlayın, karşılaştırın.
barcodemetinBarkod / sku. Boş olabilir. Sizin ürün kodunuzla eşlemek için kullanın; satışta zorunlu değildir.
categoryIdmetinKategori kimliği. GET /categories içindeki id ile aynıdır. Ağaç ve filtre için.
categoryNamemetinKategori adı (ör. Izgara). Yalnız etiket; aynı isim iki kategoride olabilir, id’ye bakın.
statusmetinAktif, Pasif veya Gizli. Satılabilir kart: Aktif. Pasif satışa kapalıdır. Gizli menüde görünmez.
isHiddenbooleantrue ise QR / menüde gizlidir. status = Gizli iken genelde true gelir. Satış ekranından eleyin.
productTypemetinitem = tek ürün, menu = menü/paket. İkisini de sale-created ile gönderebilirsiniz; Restroid porsiyon açmaz.
sortOrdersayıPanel sırası. Listenizi aynı sırada göstermek için. Küçük sayı önce.
branchIdUUIDKartın şubesi (tenant). Çoğu ortak için restaurantId yeter; çok şubede ayırt etmek içindir. Satış gövdesine konmaz.
updatedAtISO-8601Kartın son değişim anı. product.updated sonrası hangi satırın yenilendiğini anlamak / cache için.

Satışta hangi alanı kullanırsınız

GET /productssale-createdNeden
iditems[].productIdRestroid kartını tanır; stoğu doğru üründen düşer.
pluitems[].pluStok satırının item_code değeri. plu yoksa productId, o da yoksa name.
nameitems[].nameZorunlu. Boş satır atlanır.
priceAmountitems[].amount (isteğe bağlı)Satır tutarı. Fiş toplamı yine total’den alınır.

Kendi kodunuz ↔ id / plu eşlemesini bir kez kaydedin. Panelde kart değişince product.updated gelir; liste olayda yoktur, bu GET’i tekrar atın.

Kategori alanları

GET /restaurants/{id}/categories — kapsam products. Ürün kartındaki categoryId buradaki id ile eşleşir.

AlanTipNe işe yarar
idmetinKategori kimliği. products[].categoryId budur.
parentIdmetin veya nullÜst kategori. null ise kök (ör. Izgara). Ağaç kurmak için.
namemetinGörünen ad.
sortOrdersayıSıralama. Küçük sayı önce.

2. Kendi menünüzü Restroid’e yazmak

Kapsam products_inbound açık olmalı. Restroid kartı oluşturur veya PLU / ürün id / sku ile mevcut kartı günceller. En fazla 40 satır / istek.

curl -sS -X POST https://cloud.restroid.com/api/public/partner/v1/hooks/product-upsert \
  -H "Api-Key: rkp_..." -H "Content-Type: application/json" \
  -d '{
    "restaurantId": "3f2a1c0e-1111-4222-a333-444455556666",
    "items": [
      {
        "name": "Adana",
        "plu": "101",
        "sku": "ADANA-101",
        "categoryName": "Izgara",
        "price": 185.5,
        "status": "Aktif"
      }
    ]
  }'
AlanZorunluAnlamı
restaurantIdEvetGET /restaurants id’si.
items[].nameEvetÜrün adı. Boş satır atlanır.
items[].pluHayırYalnız rakam (en fazla 12). Yoksa Restroid numara üretir.
items[].sku / barcode / externalIdHayırSizin kodunuz. barcode olarak saklanır; sonraki upsert eşler.
items[].productIdHayırDaha önce dönen Restroid UUID. Varsa o kart güncellenir.
items[].categoryNameHayırYoksa «Entegrasyon». Aynı adda kategori yoksa oluşturulur.
items[].priceHayırSayı. 185.5. Yoksa mevcut fiyat korunur / 0.
items[].statusHayırAktif, Pasif, Gizli (veya active / hidden).

202 yanıt

{
  "accepted": true,
  "event": "product.upsert",
  "restaurantId": "…",
  "upserted": [
    { "productId": "a1b2c3d4-…", "plu": "101", "name": "Adana", "created": true }
  ]
}

Dönen productId / plu değerini satışta kullanın. Kart Cloud panelinde, QR menüde ve stok kodunda görünür.

upserted[]Ne işe yarar
productIdOluşan veya güncellenen Restroid UUID. Bundan sonra GET /products id ve satış productId.
pluKesinleşen Restroid kodu. Siz plu göndermediyseniz Restroid üretmiş olabilir.
nameKaydedilen ad.
createdtrue = yeni kart, false = mevcut kart güncellendi.

Diğer ayarlar

Stok bakiyesi (GET …/stock) ürün listesi değildir; depo adedidir. itemCode çoğu zaman ürün plu ile aynıdır.

AlanNe işe yarar
warehouseIdDepo UUID.
itemCodeStok kalem kodu. Satışta gönderdiğiniz plu / productId / name ile eşlenir.
itemNameStok satırının adı.
quantityMetin bakiye (ör. "42"). Giriş − çıkış toplamı.
  • Personel / kasa / muhasebe: ilgili GET. PIN, IBAN, telefon, e-posta dönmez. Z listesi: GET …/z-reports (cash).
  • Gün sonu Z GET ile alınmaz; kasiyer Z alınca POST /hooks/z-report-created. Anlatım kasa sayfasında.
  • Değişiklik haberi: webhook product.updated, stock.changed, personnel.updated, cash.shift_closed, accounting.posted. product.updated içinde liste yoktur; GET /products tekrar alınır.

Restoranınızı dijitalleştirin, büyümeye odaklanın

14 gün ücretsiz deneyin. Kredi kartı bilgisi gerektirmez. İstediğiniz zaman iptal edin.

0 (212) 951 02 21info@restroid.com

100+

Aktif Restoran

20M+

İşlenen Sipariş

8+

Platform Entegrasyonu

11+

Yıllık Deneyim