Mekanlar
Menüyü oku
Mekanın kategorileri ve ürünleri: porsiyonları, fiyatları, ekstraları, seçim grupları, çıkarılabilir malzemeleri, alerjenleri ve stok durumuyla.
/public/v1/venues/{venueId}/menuMekanın menüsünde gizlediği her şey dışarıda kalır; içinde bir şey kalmayan kategori de. Kategoriler ve ürünler mekanın gösterdiği sırayla gelir. Tüm fiyatlar TL cinsindendir ve KDV dahildir. Menü, mekanın QR menüsünün nasıl ayarlandığından bağımsızdır: mekan QR menüsünü gösterse de, yerine PDF koysa da döner.
Dil. lang, mekanın dillerinden birinin iki harfli kodudur (mekan bilgisindeki languages); sondaki bölge (en-US) yok sayılır. Mekanın sunmadığı ya da hiç verilmemiş bir dil, mekanın varsayılan diliyle yanıtlanır; hiç dil ayarlamamış mekan, metni yazdığı gibi döner. Yanıttaki language metnin gerçekte hangi dilde olduğunu söyler.
Kampanyalar. Süren bir kampanyanın indirdiği porsiyon, gösterilecek fiyatla campaign taşır. Her çağrıda hesaplanır; bir happy hour zamanında başlar ve biter.
Önbellek. Menü en fazla beş dakika önbellekte tutulur ve mekan düzenleme yaptığında hemen yenilenir. Yanıt bir ETag taşır: onu If-None-Match ile geri gönderdiğinizde değişmemiş menü gövdesiz 304 Not Modified döner. ETag zarfı değil, data içindeki menüyü temsil eder. Ayrıntılar: Menüyü okumak.
Parametreler
venueIdstring · uuidYol parametresizorunluMekanın kimliği, mekan listesinden.
langstringSorgu parametresiMenü metinlerinin dili, örneğin en. Mekanın varsayılan dili için vermeyin.
Accept-LanguagestringBaşlıkHata yanıtlarındaki userMessage metninin dili: tr (varsayılan), en, de, fr, it, es, ar ya da ru. Başlıktaki ilk dil belirler, bölgesi olmadan (en-US, en okunur) ve q ağırlıklarına bakılmadan; Cibusy'nin sunmadığı bir dil Türkçe yanıtlanır. Menünün dilini seçmez; o, menü çağrısındaki lang parametresidir.
If-None-MatchstringBaşlıkElinizdeki kopyanın ETag değeri. Hala güncel sürümse yanıt gövdesiz 304 Not Modified olur.
Yanıtlar
Mekanın menüsü, ETag başlığıyla.
ETagBu yanıttaki data alanının sürümü: bir SHA-256'nın ilk 32 onaltılık hanesi, tırnak içinde. If-None-Match ile geri gönderin.
Cache-ControlHer zaman private, no-cache: bir kopya saklayın, ama kullanmadan önce sunucuya hala geçerli olup olmadığını sorun.
Menü, If-None-Match ile adlandırılan sürümden beri değişmedi. Gövde yok; elinizdeki kopya güncel.
ETagBu yanıttaki data alanının sürümü: bir SHA-256'nın ilk 32 onaltılık hanesi, tırnak içinde. If-None-Match ile geri gönderin.
Cache-ControlHer zaman private, no-cache: bir kopya saklayın, ama kullanmadan önce sunucuya hala geçerli olup olmadığını sorun.
X-Api-Key başlığı yok (PUBLIC_API_KEY_MISSING) ya da anahtar geçersiz veya iptal edilmiş (PUBLIC_API_KEY_INVALID).
Anahtar bu çağrıyı yapamaz (PUBLIC_API_SCOPE_MISSING). Panelde oluşturulan her anahtar mekanları, menüleri ve masaları okuyabilir.
Mekan yok ya da bu anahtar ona ulaşamıyor (PUBLIC_API_VENUE_NOT_FOUND).
Anahtarın dakikada yaklaşık 120 isteklik bütçesi doldu; Retry-After kadar saniye bekleyin.
Retry-AfterBeklenecek saniye. Bir sonraki dakikalık pencere bu süre içinde açılır.
Başarılı yanıtın data alanı
Mekanın menüsü, bir sitenin çizebileceği yapıda: kategoriler, içlerindeki ürünler ve bir misafirin bir üründe seçebileceği her şey. Yalnız mekanın menüsünde gösterdikleri yer alır.
venueIdstring · uuidMenünün ait olduğu mekan.
languagestringnull olabilirMenü metinlerinin dili, mekanın dillerinden birinin iki harfli kodu. Mekan sunuyorsa lang ile istenen dil, aksi halde mekanın varsayılan dilidir. Mekan hiç dil ayarlamadıysa null; metinler o zaman mekanın yazdığı gibidir.
currencystringTüm fiyatların para birimi, ISO 4217 kodu. Her zaman TRY; fiyatlar KDV dahildir.
categoriesobject[]Menünün kategorileri, mekanın gösterdiği sırayla. İçinde görünür bir şey kalmayan kategori listede yer almaz.
Kategori alanları
idstring · uuidKategorinin kimliği.
namestringKategorinin adı, menünün dilinde.
photoUrlstringnull olabilirKategori görselinin adresi. Görseli yoksa null.
displayOrderintegerKategorinin menüdeki sırası, küçük olan önce. Kategoriler zaten bu sırayla gelir.
productsobject[]Kategorinin ürünleri, mekanın gösterdiği sırayla. Hiçbir zaman boş değildir.
Ürün alanları
idstring · uuidÜrünün kimliği; siparişte bu kullanılır.
namestringÜrünün adı, menünün dilinde.
descriptionstringnull olabilirÜrün hakkında bir satır, menünün dilinde. Mekan yazmadıysa null.
contentsstringnull olabilirÜrünün içeriği, menünün dilinde. Mekan yazmadıysa null.
photoUrlstringnull olabilirÜrün görselinin adresi. Görseli yoksa null.
displayOrderintegerÜrünün kategorisindeki sırası, küçük olan önce. Ürünler zaten bu sırayla gelir.
vatPercentintegerFiyatlara dahil KDV oranı, yüzde olarak: 0, 1, 10 ya da 20 (Temmuz 2023'ten beri geçerli dilimler). Hala kaldırılmış bir dilimde (yüzde 8 ya da 18) duran ürün, yerine gelen dilimle (10 ya da 20) okunur.
containsAlcoholbooleanÜrün alkol içeriyorsa true. Bunun için bir etiket gösterin.
containsPorkDerivativesbooleanÜrün domuz eti ya da ondan yapılmış bir şey içeriyorsa true. Bunun için bir etiket gösterin.
acceptsMealCardbooleanMekan bu ürün için yemek kartı kabul ediyorsa true.
allergensstring[]Mekanın ürün için bildirdiği alerjenler (AB yönetmeliğindeki 14 alerjen). Boş liste, alerjen bildirilmediği anlamına gelir; ürünün bunlardan kesin olarak arınmış olduğu anlamına gelmez.
Gluten- Gluten
Crustaceans- Kabuklular
Eggs- Yumurta
Fish- Balık
Peanuts- Yer fıstığı
Soybeans- Soya
Milk- Süt
Nuts- Sert kabuklu yemişler
Celery- Kereviz
Mustard- Hardal
Sesame- Susam
Sulphites- Sülfitler
Lupin- Acı bakla (lupin)
Molluscs- Yumuşakçalar
stockStatusstringnull olabilirÜrünün stokta mı, azalıyor mu, tükenmiş mi olduğu. Mekan ürünün stokunu takip etmiyorsa null; o zaman rozet göstermeyin. Tükenen ürün menüde kalır, ama onun için verilen sipariş reddedilir.
InStock- Stokta.
LowStock- Azalıyor.
OutOfStock- Tükendi; menüde kalır ama sipariş edilemez.
portionsobject[]Ürünün geldiği boyutlar ya da servisler. Sipariş bunlardan birini adlandırır.
Porsiyon alanları
idstring · uuidPorsiyonun kimliği; sipariş bunu ürünün kimliğiyle birlikte adlandırır.
namestringPorsiyonun adı, menünün dilinde. Tek servisi olan ürünlerde genellikle "Standart" adlı bir porsiyon vardır; o zaman ürünün adını tek başına gösterin.
pricenumberFiyat, TL cinsinden, KDV dahil. Ölçüyle satılan porsiyonda bir pricingUnit fiyatıdır ve porsiyon API üzerinden sipariş edilemez.
isDefaultbooleanMekanın önceden seçtiği porsiyon için true.
caloriesintegernull olabilirPorsiyonun enerjisi, kilokalori. Mekan bildirmediyse null.
weightnumbernull olabilirPorsiyonun üzerinde yazan ağırlık ya da hacim; adının yanında gösterilecek bir etiket, fiyatın hesaplandığı bir değer değil. Mekan vermediyse null; dolu olduğunda weightUnit de doludur.
weightUnitstringnull olabilirweight değerinin birimi. Ağırlık yoksa null.
Kilogram- Kilogram
Gram- Gram
Liter- Litre
Milliliter- Mililitre
Deciliter- Desilitre
Piece- Adet
Box- Kutu
Package- Paket
Dozen- Düzine
Portion- Porsiyon
Cup- Bardak
Tablespoon- Yemek kaşığı
Teaspoon- Çay kaşığı
pricingUnitstringnull olabilirPorsiyon ölçüyle satılıyorsa price değerinin hangi birim için olduğu: Kilogram, fiyatın bir kilogramın fiyatı olduğu ve misafirin aldığının mekanda tartıldığı anlamına gelir. Sıradan porsiyonda null; fiyatı bir servis içindir.
Kilogram- Kilogram
Gram- Gram
Liter- Litre
Milliliter- Mililitre
Deciliter- Desilitre
Piece- Adet
Box- Kutu
Package- Paket
Dozen- Düzine
Portion- Porsiyon
Cup- Bardak
Tablespoon- Yemek kaşığı
Teaspoon- Çay kaşığı
orderablebooleanPorsiyon ölçüyle satılıyorsa false: gösterilebilir ama API üzerinden sipariş edilemez, çünkü miktarı mekanda tartılır. Diğer porsiyonlarda true.
campaignobjectnull olabilirPorsiyonun şu an sahip olduğu indirim, price yanında göstermek için. Yoksa null. Her çağrıda hesaplanır, bu yüzden bir happy hour zamanında başlar ve biter. Burada yalnız porsiyonun kendisindeki düz indirim görünür: menüde gösterilen, en az sepet tutarı ya da kupon istemeyen bir yüzde ya da tutar indirimi. Menüler, "iki al bir öde" gibi kampanyalar sipariş fiyatlanırken hesaba katılır. Her siparişi sunucu fiyatlar; buradaki hiçbir şey siparişle geri gönderilmez.
Kampanya alanları
campaignIdstring · uuidKampanyanın kimliği.
namestringKampanyanın adı.
badgeTextstringnull olabilirMekanın rozette görmek istediği kısa etiket. Bir şey yazmadıysa null.
discountedPricenumberKampanya süresince porsiyonun bir adedinin fiyatı, TL cinsinden, KDV dahil.
endsAtstring · date-timenull olabilirKampanyanın şimdiki zaman diliminin bittiği an (UTC), geri sayım için. Bitişi yoksa null.
optionGroupsobject[]Ekstraların bazılarını bir seçime bağlayan kurallar: "bir pişirme derecesi seçin". Ekstraların hiçbiri bir seçim değilse boştur.
Seçim grubu alanları
idstring · uuidGrubun kimliği; seçeneklerinin optionGroupId alanındaki değer.
namestringGrubun adı: neyin seçildiği.
selectionTypestringEn fazla bir seçenek seçilebiliyorsa Single, istenen kadar seçilebiliyorsa Multiple.
Multiple- İstenen sayıda seçenek.
Single- En fazla bir seçenek.
isRequiredbooleanGruptan bir seçim yapılmadan ürün sipariş edilemiyorsa true.
displayOrderintegerGrubun ürünün grupları arasındaki sırası, küçük olan önce. Gruplar zaten bu sırayla gelir.
extrasobject[]Misafirin ürüne ekleyebileceği ekstralar, fiyatlarıyla. optionGroupId dolu olan ekstra o gruptaki bir seçenektir.
Ekstra alanları
idstring · uuidEkstranın kimliği; siparişte bu kullanılır.
namestringEkstranın adı, menünün dilinde.
pricenumberEkstranın birlikte sipariş edildiği porsiyonun fiyatına eklediği tutar, TL cinsinden, KDV dahil. Ücretsiz ekstrada sıfır.
optionGroupIdstring · uuidnull olabilirEkstranın seçenek olduğu seçim grubu. Hiçbir gruba ait olmayan ve serbestçe eklenebilen ekstrada null.
removableIngredientsobject[]Misafirin üründen çıkarılmasını isteyebileceği malzemeler.
Çıkarılabilir malzeme alanları
idstring · uuidMalzemenin kimliği; siparişte bu kullanılır.
namestringMalzemenin adı, menünün dilinde.