Sipariş Durumu Güncelleme

Siparişi hazırlanıyor, kargoda, teslim edildi, iptal ya da iade durumuna geçirir. Kargo takip numarası da bu uçla yazılır.

PUT https://api.hizlisanalmarket.com/api/v1/orders/{id}/status · İzin: orders:write

Gövde

Alan Tür Zorunlu Açıklama
status Metin Evet Yeni durum: preparing, shipped, delivered, cancelled ya da returned. Büyük/küçük harf farkı yok sayılır.
trackingNumber Metin Hayır Kargo takip numarası (shipped için).
shippingProvider Metin Hayır Kargo firmasının adı (shipped için). Örnek: "Yurtiçi Kargo".
note Metin Hayır cancelled için iptal nedeni. Müşteriye giden iptal e-postasında görünür.

Durumlar ve etkileri

status Hangi durumdan? Etkisi
preparing Processing Sipariş hazırlanıyor durumuna geçer.
shipped Processing, Preparing Sipariş kargoya verilir. Müşteriye takip numaralı kargo e-postası gider.
shipped (tekrar) Shipped (takip numarası yoksa) Takip numarası ve kargo firması sonradan eklenir, durum değişmez. Müşteriye kargo e-postası gider.
delivered Shipped; mağaza teslimatı ve mağazadan teslim almada Processing, Preparing Teslim edildi. Kapıda ödemeli siparişte tahsilat da kaydedilir. Müşteriye e-posta gider.
cancelled Delivered, Returned, PartiallyRefunded dışındaki her durum İptal edilir. Stok ve kullanılan kupon geri verilir. Ödemesi alınmış siparişin ödeme durumu "iade bekliyor" olur, para iadesini mağaza ayrıca yapar. Müşteriye iptal e-postası gider.
returned Shipped, Delivered İade edildi. Ödemesi alınmışsa ödeme durumu "iade bekliyor" olur. Stok kendiliğinden eklenmez, çünkü dönen ürün satılabilir durumda olmayabilir.

Örnek: kargoya verme

curl -X PUT "https://api.hizlisanalmarket.com/api/v1/orders/d2a7c9e4-5f13-4b8a-9c60-3e1f7a2b8d45/status" \
  -H "Authorization: Bearer hm_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "status": "shipped",
    "trackingNumber": "1234567890",
    "shippingProvider": "Yurtiçi Kargo"
  }'

Yanıt

{
  "message": "Sipariş durumu güncellendi.",
  "orderId": "d2a7c9e4-5f13-4b8a-9c60-3e1f7a2b8d45",
  "status": "shipped"
}

Aynı isteğin tekrarı

Sipariş zaten istenen durumdaysa (preparing, delivered, cancelled, returned) istek başarılı döner. Hiçbir şey değişmez ve müşteriye ikinci e-posta gitmez. Ağ hatasından sonra isteği güvenle tekrarlayabilirsiniz. Müşterinin kendisi iptal ettiği bir siparişe cancelled göndermek de başarılı döner.

Olası hatalar (400)

code Neden
ORDER_NOT_FOUND Sipariş bu mağazada yok.
INVALID_STATUS status tanınmayan bir değer.
INVALID_STATUS_TRANSITION Sipariş şu anki durumundan istenen duruma geçemez. Örneğin kargoya verilmemiş sipariş delivered yapılamaz, teslim edilmiş sipariş iptal edilemez.
PAYMENT_NOT_COMPLETED Kartla ödemesi henüz tamamlanmamış sipariş preparing, shipped ya da delivered yapılamaz.
{
  "error": "Sipariş kargoya verilemez.",
  "code": "INVALID_STATUS_TRANSITION"
}

Havale/EFT ödemesinin onaylanması (AwaitingPayment → Processing) bu uçla yapılmaz. Havale onayını mağaza yönetici panelinden verir. Onaydan sonra sipariş updatedFrom ile çektiğiniz listede Processing olarak görünür.