Paket Kalemleri — POST /plugin-api/packets/update-orders ✓ Canlı

Bir paketin TÜM kalemlerini (cart) değiştirir — merge değil, FULL REPLACE. total Restomenum ürün fiyatlarından yeniden hesaplanır (gönderdiğin fiyat yok sayılır). Transaction'lı (paket oku → doğrula → yaz, atomik).

← API Uçları · Yazma ailesi: create · update · update-payments.

İstek

POST {RESTOMENUM_BASE}/plugin-api/packets/update-orders
Authorization: Bearer <apiKey>

{
  "packetId": "a72d70cd-...",                    // ZORUNLU
  "cart": [                                       // ZORUNLU (en az 1) — paketin YENİ kalem listesi (FULL REPLACE)
    { "product": "<productId>", "quantity": 2, "options": ["Acılı"], "discount": 0, "note": "" }
  ]
}
  • Scope: orders:write.
  • cart paketin tüm kalemlerini değiştirir (merge değil). Kalem: { product(id), quantity, options?(adlar), discount?, note? }.
  • Fiyat otoriter: total Restomenum kaydından yeniden hesaplanır.

Yanıt

{ "success": true, "data": { "packetId": "a72d70cd-...", "total": 240 } }

Kurallar & hatalar

Hepsi HTTP 200 + { success:false, message } (rate limit 429 hariç). Gerçek mesajlar:

Kuralmessage (teyitli)
quantity en az 0.001 (tartılı ürün ondalık); 0 reddedilir"cart[0].quantity" must be greater than or equal to 0.001
Olmayan ürünProduct not found: <id>
Mevcut paid yeni total'ı aşıyorreddedilir — önce ödemeleri düşür (update-payments)
Timer/süre-bazlı ürün (perMin+perPrice)reddedilir — total zamana bağlı, snapshot yanlış olur
Hesaplanan total negatif (aşırı indirim)reddedilir
Eşzamanlılık: aynı paket için update-payments ile EŞ ZAMANLI çağırma — biri total'i düşürürken diğeri paid'i yükseltirse paid ≤ total invariantı geçici bozulabilir (farklı alanlar yazıldığından çakışma yakalanmaz). Sıralı çağır (önce kalem, sonra ödeme — ya da tersi).