7 uç · /api/b2b/v1/quotes
İstek örnekleri ucun GERÇEK metodu ve yolundan üretilir. 7 ucun elle doğrulanmış gövde örneği henüz yok; o uçlarda iskelet gövdesizdir — uydurma bir alan yazmıyoruz.
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/quotes" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}id# Neden var Teklif detayında fiyat, KDV, geçerlilik ve not düzenlenebiliyordu ama **kalem ekleme/çıkarma ve miktar değiştirme hiçbir yerde yoktu** — ne uçta ne ekranda. Kullanıcı bunu *"teklif detayı var ama teklif düzenlenemiyor"* diye bildirdi (2026-08-20). Sipariş tarafında aynı iş zaten çalışıyordu (`manual_orders::edit_lines_handler`); bu onun ikizidir. # Sınır — fiyatlama kapısıyla AYNI Yalnız `requested`/`quoted` teklifin kalemleri değişir. Karar verilmiş bir teklifin (kabul/ret) içeriğini değiştirmek, bayinin gördüğü belgeyi geriye dönük tahrif etmek olurdu — `quote_offer_handler`'ın kapısı da tam olarak budur. # Fiyatsız kalem MEŞRUDUR `unit_net` NULL kalabilir (şemanın kendi sözleşmesi: "boş ≠ sıfır"). Fiyatsız satır varsa teklif `quoted`'a **geçmez** — gönderme hâlâ "Gönder"in (`quote_offer_handler`) işidir ve o, eksik fiyatlı teklifi zaten reddeder.
curl -X PATCH "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/quotes/<id>/lines" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}idTÜM satırlar fiyatlanmalıdır: eksik fiyatlı bir teklif bayiye "kabul et" düğmesi gösterir ama kabul edilemez (dosya başı sözleşmesi) — bunu gönderim anında reddetmek, kullanıcıyı kabul anında hayal kırıklığına uğratmaktan iyidir.
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/quotes/<id>/quote" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}idcurl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/quotes/<id>/reject" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}