Siparişler
Sepeti fiyatla
Vereceğiniz siparişi göndermeden fiyatlayın: satırlar, kampanya indirimi, hizmet bedeli ve toplam.
/public/v1/venues/{venueId}/orders/previewVereceğiniz siparişi Idempotency-Key olmadan gönderin ve ne tutacağını okuyun: her satır ekstralarıyla menü fiyatından, mekanın otomatik kampanyalarının düştüğü tutar, hizmet bedeli ve toplam. Aynı sepet sipariş edildiğinde bu toplam alınır.
Sepetle ilgili olarak sipariş vermenin kontrol ettiği her şeyi kontrol eder (biçim, menü ve masa) ve aynı hatalarla reddeder; ama mekanın açık olup olmadığına ya da aboneliğine bakmaz: mutfak kapalıyken de sitenizde fiyat gösterebilirsiniz.
Sepeti tek başına fiyatlar. Zaten açık bir masa hesabına eklenecek bir turda, hesabın tamamına bakan kampanyalar turu hesaba eklendikten sonra farklı fiyatlayabilir; geçerli olan, sipariş yanıtındaki totals değerleridir.
Parametreler
venueIdstring · uuidYol parametresizorunluMekan; GET /venues listesindeki kimliklerden biri.
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.
İstek gövdesi
Mekanın sitesinin gönderdiği sipariş ya da önce fiyatlanmasını istediği sepet. Fiyat taşımaz: sunucu her satırı mekanın menüsünden fiyatlar, mekanın kampanyalarını ve hizmet bedelini uygular ve toplamı yanıtta söyler.
typestringzorunluSiparişin misafire nasıl ulaşacağı. Zorunlu.
DineIn- Masada: tur, masanın açık hesabına eklenir ya da yeni bir hesap açar.
Takeaway- Gel-al: müşteri siparişi mekandan alır.
Delivery- Paket: mekan siparişi müşteriye götürür.
tableIdstring · uuidnull olabilirMasada verilen siparişin masası; GET /venues/{venueId}/tables listesindeki kimliklerden biri. DineIn için zorunlu, Takeaway ve Delivery için verilemez. Mekanın masalarından biri olmayan kimlik 404 alır.
customerobjectnull olabilirSiparişin kimin için olduğu. Takeaway (ad ve telefon) ve Delivery (ad, telefon ve adres) için zorunlu; DineIn için verilemez: masadaki misafire oturduğu yerde servis edilir.
Müşteri alanları
namestringzorunlunull olabilirMüşterinin adı, en fazla 100 karakter. Zorunlu.
phonestringzorunlunull olabilirSiparişle ilgili aranacak numara; uluslararası biçimde ya da yerel yazıldığı gibi (+905321112233, 0532 111 22 33). En fazla 30 karakter. Zorunlu.
addressstringnull olabilirPaketin gideceği adres, müşterinin kendi sözleriyle, en fazla 300 karakter. Delivery için zorunlu, Takeaway için verilemez.
paymentMethodstringnull olabilirGel-al ya da paket siparişte müşterinin nasıl ödeyeceğini söylediği. İsteğe bağlı; masada hesap masada kapandığı için DineIn siparişinde verilemez. Siparişi teslim edecek kişi için bir ipucudur: API üzerinden hiçbir ödeme alınmaz.
Cash- Nakit.
Card- Kart.
MealCard- Yemek kartı.
notestringnull olabilirMutfak için siparişin tamamıyla ilgili bir not, en fazla 300 karakter.
linesobject[]zorunluSipariş edilen ürünler: 1 ile 30 arası satır.
Sipariş satırı isteği alanları
productIdstring · uuidzorunluÜrün; GET /venues/{venueId}/menu listesindeki kimliklerden biri. Zorunlu.
portionIdstring · uuidzorunluO ürünün porsiyonu. Zorunlu. Mekanın tartıyla sattığı porsiyon (menüde orderable: false) sipariş edilemez.
quantityintegerzorunluKaç adet: 1 ile 20 arası.
notestringnull olabilirMutfak için bu satırla ilgili bir not, en fazla 200 karakter.
extraIdsstring[]Satırın her bir adedi için seçilen ekstralar; ürünün menüdeki extras listesinden kimlikler, en fazla 20, her biri en fazla bir kez. Ürünün kendi ekstrası olmayan ya da ürünün seçim gruplarını bozan bir seçim (bir kahvede iki şeker seviyesi, zorunlu grupta hiç seçim) reddedilir.
removedIngredientIdsstring[]Satırın her bir adedinden çıkarılacak malzemeler; ürünün menüdeki removableIngredients listesinden kimlikler, en fazla 20, her biri en fazla bir kez.
Yanıtlar
Fiyatlanmış sepet.
PUBLIC_API_ORDER_INVALID ya da PUBLIC_API_PRODUCT_OPTION_INVALID. Sorunlu kısımlar validationErrors içinde, istek gövdesindeki yollarıyla.
X-Api-Key başlığı yok (PUBLIC_API_KEY_MISSING) ya da anahtar geçersiz veya iptal edilmiş (PUBLIC_API_KEY_INVALID).
PUBLIC_API_SCOPE_MISSING: anahtar "Sipariş gönderebilir" izniyle oluşturulmamış.
PUBLIC_API_VENUE_NOT_FOUND, PUBLIC_API_TABLE_NOT_FOUND ya da PUBLIC_API_PRODUCT_NOT_FOUND.
PUBLIC_API_PRODUCT_UNAVAILABLE: bir ürün şu an sipariş edilemiyor.
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ı
Sipariş verilmeden önce sunucunun fiyatladığı sepet: menü fiyatıyla ve ekstralarıyla satırlar, mekanın kampanyalarının düştüğü tutar, hizmet bedeli ve toplam. Aynı sepet sipariş edildiğinde tam olarak bu toplam alınır.
linesobject[]İstekteki her satır için bir kayıt, aynı sırayla.
Fiyatlanmış satır alanları
productIdstring · uuidÜrün, istekte adlandırıldığı gibi.
portionIdstring · uuidPorsiyon, istekte adlandırıldığı gibi.
quantityintegerKaç adet.
unitPricenumberBir adedin fiyatı: porsiyon ve onun için seçilen ekstralar.
lineTotalnumberunitPrice × quantity, kampanyalardan önce.
subtotalnumberSatırların ekstralarıyla menü fiyatı, kampanyalardan önce.
discountnumberMekanın kampanyalarının düştüğü tutar. Uygulanan yoksa 0.
serviceFeenumberMekanın hizmet bedeli; kampanyalardan sonraki yiyecek tutarı üzerinden alınır. Mekan almıyorsa 0.
totalnumberSiparişin tutacağı: subtotal - discount + serviceFee.
currencystringTüm tutarların para birimi, ISO 4217 kodu. Her zaman TRY.