İptal Akışı
Sipariş iptali yalnızca üzerinde işlem yapılmamış (iade) siparişlere yapılabilir. Bu durumda entegrasyon kapsamında BiSU'da sipariş tamamlanana kadar iptal (iade yapılmamışsa) edilebilir.
Sipariş otomatik iptal (reject) veya Cockpit ile Partner Panel üzerinden iptal
olabilir.
Bunun haricinde Yemeksepeti tarafından da iptal edilebilmektedir.
İptal edilen sipariş tekrar akışa sokulamaz.
Örnek bir iptal isteği için gövdesi için şuraya bakabilirsiniz.
Otomatik İptal
Reject işlemi sipariş YS tarafından webhook'a gönderildiğinde yapılan kontroller
sonucu siparişteki ürünlerin hiçbirinin stoğu yoksa (Biri_Stock.quantity <= 0)
siparişin iptal edilmesidir. Bu noktada sipariş BiSU tarafında oluşmadan entegrasyonda
iptal sağlanır.
Operasyon İptalleri
Cockpit veya Partner Panel üzerinden yürütülen iptal işlemlerine operasyon iptali denilebilir. Müşteri Hizmetleri veya Depo teslimatın gerçekleştirilemeyeceğine karar verdiğinde arayüzler üzerinden iptal sağlayabilmektedir.
Yemeksepeti tarafında yapılacak iptallerde siparişin YS'deki durumu kontrol edilmektedir.
Eğer iptal edilemeyecek bir statüde ise sipariş (DISPATCHED, DELIVERED, CANCELLED
gibi) kullanıcıya hata dönülmektedir.
Teknik olarak iptal işlemi sipariş gövdesindeki ürünlerin, siparişin durumunu değiştirmek
ve iptal nedenini (cancellation) ekleyip YS tarafına sipariş güncelleme isteğinin
(PUT) çıkılmasından ibarettir.
Yemeksepeti Taraflı İptaller
Yemeksepeti tarafı siparişi iptal edebilmektedir. Bu durumda sipariş webhook'una sipariş gövdesini göndermektedir. Buradaki siparişin durumu kontrol edilip iptal akışına yönlendirilmektedir. Sipariş BiSU tarafında da iptal edilmektedir.
Tamamlanmış siparişlerin (ORDER_COMPLETED) iptali durumunda depoya bilgilendirme
yapılmaktadır.
Tanımlı İptal Sebepleri
Sipariş gövdesi içindeki cancellation objesindeki reason değerleri şunlar olabilir:
TEST_ORDER: Entegrasyon geliştirme sırasında test siparişleri için
CLOSED: Deponun kapalı olduğunu belirtir
ITEM_UNAVAILABLE: Siparişteki ürünler tedarik edilemediğinde
TOO_BUSY: Depo yoğun olduğunda
NEVER_DELIVERED: YS taraflı iptallerde siparişin teslim edilmediğini ifade eder
MISTAKE_ERROR: YS taraflı iptallerde gelmektedir
TECHNICAL_PROBLEM: YS taraflı iptallerde entegrasyon problemini ifade eder