Sipariş Durumları
Durum sözlüğü, hangi durumda hangi eylemin yapılabildiği ve teslim edilemedi sonucu.
Durum sözlüğü
Siparişin status alanı aşağıdaki değerlerden birini taşır. Sipariş ödeme kapısından doğar; ileri geçişleri işletme (ya da onun adına kasa yazılımı) yazar. delivered ve cancelled uç durumlardır.
| Alan | Tip | Açıklama |
|---|---|---|
pending | iki dikey | Sipariş işletmeye iletildi, kabul bekliyor. Kabul edilmezse 12 dakika sonra otomatik iptal edilir (Sipariş Yaşam Döngüsü). |
preparing | iki dikey | Restoranda accept ile; hazırlık süresi kabulle kesinleşir. Çarşı'da toplama sürüyor ya da kapandı; toplamanın kapanıp kapanmadığı picking.completed alanındadır. |
ready | restoran | ready ile. Hazırlık bitti; kurye çağrısı ya da kendi teslimatınız bundan sonra başlar. |
confirmed | Çarşı | accept ile. Toplama başlamadan önceki durumdur; ilk kalem sonucu yazıldığında sipariş preparing olur. |
on_the_way | iki dikey | dispatch ile. |
delivered | iki dikey | deliver ile. |
cancelled | iki dikey | cancel ile ya da platform tarafından. Sebep cancelReason alanındadır. |
Eylem ve durum ayrımı
Durum yazarken hedef durumu değil eylemi gönderirsiniz: accept, ready, dispatch, deliver, cancel. Her eylem bir geçişe karşılık gelir. Listede olmayan geçiş 409 invalid_transition ve allowed alanıyla döner. Sunucunun kendisi yazdığı durumlar (ödeme, otomatik iptal) eylem olarak gönderilemez.
| Alan | Tip | Açıklama |
|---|---|---|
pending | accept · cancel | |
preparing | ready · cancel | |
ready | dispatch · cancel | |
on_the_way | deliver · cancel |
| Alan | Tip | Açıklama |
|---|---|---|
pending | accept · cancel | |
confirmed | cancel; toplama kapalıysa ayrıca ready | |
preparing | cancel; toplama kapalıysa ayrıca ready ve dispatch | |
on_the_way | deliver · cancel |
Çarşı'da ready durumu değiştirmez; toplamanın kapandığını doğrular. Toplama kapanmadan ready ve dispatch 409 picking_incomplete döner.
Zaman alanları
| Alan | Tip | Açıklama |
|---|---|---|
createdAt | date-time | Sipariş oluşturuldu. |
updatedAt | date-time | Son değişiklik anı; updatedSince ile senkron için kullanılır. |
prep.readyAt | date-time | Restoranda kabulle kesinleşen hazır olma zamanı. |
deliveryFailed.at | date-time | Teslim edilemedi sonucunun zamanı. |
Geç bildirilen geçişte gerçek zamanı occurredAt ile gönderin (yalnız restoranda uygulanır; Çarşı'da geçiş isteğin geldiği anda yazılır).
Teslim edilemedi
Kurye müşteriye ulaşamazsa ya da adres yanlışsa yoldaki sipariş yalnız customer_unreachable (müşteriye ulaşılamadı) ya da invalid_address (adres hatalı ya da eksik) sebebiyle cancel edilir. Bu sebepler yalnız sipariş on_the_way iken kabul edilir; yoldaki sipariş başka bir sebeple iptal edilemez.
curl -X POST "https://api.supergelsin.com/api/partner/v1/orders/cm_ornek_siparis/status" \
-H "Authorization: Basic $(printf '%s:%s' "$API_KEY" "$API_SECRET" | base64)" \
-H "X-Integrator: Ornek POS" \
-H "X-Operator: kasiyer_01" \
-H "Content-Type: application/json" \
-d '{ "action": "cancel", "reasonCode": "customer_unreachable", "occurredAt": "2026-01-31T19:42:00+03:00" }'Sipariş nesnesinde status cancelled olur; cancelReason sebebi, deliveryFailed sonucu taşır. Restoranda deliveryFailed.completedSale değeri payment.channel değerinin online olmasıdır: true ise satış tamamlanmıştır, kasada iptal edilmez ve online ödenmiş satış olarak kapatılır; olay order.updated olarak gelir. Çarşı'da completedSale her zaman false olur, online ödemede tutarın tamamı müşteriye iade edilir ve olay order.cancelled olarak gelir; dönüş POST /orders/{id}/return ile onaylanır. Sebebin işletme performansına yazılıp yazılmadığı GET /cancel-reasons yanıtındaki affectsPerformance alanındadır.