İçeriğe geç

Siparişler

Sepeti fiyatla

Vereceğiniz siparişi göndermeden fiyatlayın: satırlar, kampanya indirimi, hizmet bedeli ve toplam.

POST/public/v1/venues/{venueId}/orders/preview
Kimlik doğrulama

X-Api-Key başlığında API anahtarı

Gereken izin
Sipariş gönderebilir
Hız sınırı
Anahtar başına dakikada yaklaşık 120 istek

Vereceğ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 parametresizorunlu

Mekan; GET /venues listesindeki kimliklerden biri.

Accept-LanguagestringBaşlık

Hata 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.

typestringzorunlu

Sipariş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 olabilir

Masada 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 olabilir

Sipariş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 olabilir

Müşterinin adı, en fazla 100 karakter. Zorunlu.

phonestringzorunlunull olabilir

Siparişle ilgili aranacak numara; uluslararası biçimde ya da yerel yazıldığı gibi (+905321112233, 0532 111 22 33). En fazla 30 karakter. Zorunlu.

addressstringnull olabilir

Paketin gideceği adres, müşterinin kendi sözleriyle, en fazla 300 karakter. Delivery için zorunlu, Takeaway için verilemez.

paymentMethodstringnull olabilir

Gel-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 olabilir

Mutfak için siparişin tamamıyla ilgili bir not, en fazla 300 karakter.

linesobject[]zorunlu

Sipariş 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 · uuidzorunlu

O ürünün porsiyonu. Zorunlu. Mekanın tartıyla sattığı porsiyon (menüde orderable: false) sipariş edilemez.

quantityintegerzorunlu

Kaç adet: 1 ile 20 arası.

notestringnull olabilir

Mutfak 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

200

Fiyatlanmış sepet.

400

PUBLIC_API_ORDER_INVALID ya da PUBLIC_API_PRODUCT_OPTION_INVALID. Sorunlu kısımlar validationErrors içinde, istek gövdesindeki yollarıyla.

401

X-Api-Key başlığı yok (PUBLIC_API_KEY_MISSING) ya da anahtar geçersiz veya iptal edilmiş (PUBLIC_API_KEY_INVALID).

403

PUBLIC_API_SCOPE_MISSING: anahtar "Sipariş gönderebilir" izniyle oluşturulmamış.

404

PUBLIC_API_VENUE_NOT_FOUND, PUBLIC_API_TABLE_NOT_FOUND ya da PUBLIC_API_PRODUCT_NOT_FOUND.

409

PUBLIC_API_PRODUCT_UNAVAILABLE: bir ürün şu an sipariş edilemiyor.

429

Anahtarın dakikada yaklaşık 120 isteklik bütçesi doldu; Retry-After kadar saniye bekleyin.

Retry-After

Beklenecek 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 · uuid

Porsiyon, istekte adlandırıldığı gibi.

quantityinteger

Kaç adet.

unitPricenumber

Bir adedin fiyatı: porsiyon ve onun için seçilen ekstralar.

lineTotalnumber

unitPrice × quantity, kampanyalardan önce.

subtotalnumber

Satırların ekstralarıyla menü fiyatı, kampanyalardan önce.

discountnumber

Mekanın kampanyalarının düştüğü tutar. Uygulanan yoksa 0.

serviceFeenumber

Mekanın hizmet bedeli; kampanyalardan sonraki yiyecek tutarı üzerinden alınır. Mekan almıyorsa 0.

totalnumber

Siparişin tutacağı: subtotal - discount + serviceFee.

currencystring

Tüm tutarların para birimi, ISO 4217 kodu. Her zaman TRY.