Sipariş yönetimi
Durumlar, geçişler ve önerilen akış
Durum grupları
Her siparişte ham durum (status) ve programınızda kolay kullanmanız için bir grup (statusGroup) bulunur. Restoranlar AloYemek'te özel durum adları kullanabileceği için kararlarınızı statusGroup ve availableActions üzerinden verin.
| statusGroup | Anlamı | Örnek status |
|---|---|---|
| new | Restoranın onayını bekliyor | new |
| preparing | Kabul edildi, hazırlanıyor | accepted, delayed |
| ready | Hazır / yolda | ready for pickup, delivery on its way |
| completed | Teslim edildi / tamamlandı | delivered, complete |
| cancelled | Reddedildi, iptal edildi veya teslim edilemedi | rejected, cancelled, delivery failed |
İşlemler ve izin verilen geçişler
| İşlem | Hangi gruptan? | Sipariş türü | Sonuç |
|---|---|---|---|
accept | new | Tümü | accepted |
reject | new, preparing, ready | Tümü (reason zorunlu) | rejected |
ready | new, preparing | Tümü | ready for pickup |
on-the-way | preparing, ready | delivery | delivery on its way |
delivered | preparing, ready | delivery | delivered |
complete | preparing, ready | pickup, dinein | complete |
delivery-failed | ready | delivery | delivery failed |
İzin verilmeyen bir işlem 409 INVALID_STATUS_TRANSITION döner. Her sipariş nesnesindeki availableActions dizisi o an geçerli işlemleri listeler; POS ekranınızdaki düğmeleri bu diziye göre gösterin.
Sipariş türleri
| type | Açıklama | Ek alanlar |
|---|---|---|
delivery | Paket servis | address (adres, konum, adres tarifi) |
pickup | Gel-al | — |
dinein | Masada sipariş | table (masa adı, kişi sayısı) |
İleri tarihli siparişler
scheduled: true olan siparişlerde müşteri teslim zamanı seçmiştir: deliveryDate, deliveryTime ve deliveryTimeEnd. Bu siparişleri hazırlama zamanına göre sıralayın.
Ödeme
payment.method: cod (kapıda nakit), paydelivery (kapıda kart), ocr / online yöntemler. payment.status paid ise müşteriden tahsilat yapılmaz. Kapıda nakit siparişlerde cashChangeFor müşterinin bozuk para istediği tutarı gösterir. Tahsil edilecek tutar totals.amountDue alanındadır.
Önerilen akış
order.createdwebhook'u gelir → siparişi POS'a düşürün, sesli uyarı verin.- Restoran onaylar →
POST /orders/{id}/accept. Yapamıyorsareject+ neden. - Mutfak bitirir →
ready. - Kendi kuryesi çıkar →
on-the-way; teslim edincedelivered. Gel-al siparişindecomplete. - Başka bir yerden (restoran paneli, müşteri iptali) yapılan değişiklikler
order.status_changed/order.cancelledolarak gelir; POS'unuzu güncelleyin.