B2B

quotes

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.

GET/api/b2b/v1/admin/quotes

`GET /admin/quotes?status=` — tüm bayilerin teklifleri (`b2b.orders.view`).

Oturum
İstek
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/quotes" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/b2b/v1/admin/quotes

`POST /admin/quotes` — personel elle teklif oluşturur (`b2b.orders.manage`).

Oturum
İstek
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/quotes" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/b2b/v1/admin/quotes/{id}

`GET /admin/quotes/{id}`.

OturumYol parametresi: id
İstek
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/quotes/<id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
PATCH/api/b2b/v1/admin/quotes/{id}/lines

`PATCH /admin/quotes/{id}/lines` — teklif kalemlerini DEĞİŞTİR (`b2b.orders.manage`).

OturumYol parametresi: 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.

İstek
curl -X PATCH "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/quotes/<id>/lines" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/b2b/v1/admin/quotes/{id}/pdf

Quote pdf

OturumYol parametresi: id
İstek
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/quotes/<id>/pdf" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/b2b/v1/admin/quotes/{id}/quote

`POST /admin/quotes/{id}/quote` — satıcı fiyatlar (`b2b.orders.manage`).

OturumYol parametresi: id

TÜ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.

İstek
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/quotes/<id>/quote" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/b2b/v1/admin/quotes/{id}/reject

`POST /admin/quotes/{id}/reject` — satıcı teklifi reddeder (fiyat veremiyor/stok yok).

OturumYol parametresi: id
İstek
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/quotes/<id>/reject" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
Bu sayfa işine yaradı mı?