products
8 uç · /api/b2b/v1/products
İstek örnekleri ucun GERÇEK metodu ve yolundan üretilir. 8 ucun elle doğrulanmış gövde örneği henüz yok; o uçlarda iskelet gövdesizdir — uydurma bir alan yazmıyoruz.
DELETE /api/b2b/v1/admin/marketplace/bindings/{id}
idcurl -X DELETE "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/products/<id>" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}POST /api/b2b/v1/admin/products/{id}/images — ürün görseli yükle.
idHam baytlar validate_upload'dan geçer (magic-byte tip + boyut; uzantı/Content-Type yalanı
REDDEDİLİR — portal marka varlıklarıyla aynı politika) ve portal namespace'ine yazılır, yani
GET /portal/assets/{key} ile herkese açık sunulur. **Ürün görselleri zaten herkese açık
katalogda görünür** (misafir gezinme açıkken bile), gizli nesne değildir.
Uç yalnız URL DÖNDÜRÜR; overlay'e yazmaz. Sıralama/silme ekranın işidir ve tek yazar
upsert_overlay'dir (iki yazar olsaydı biri diğerinin listesini ezerdi).
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/products/<id>/images" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}PUT — takip bayrağı ve/veya eldeki adet.
id🔴 ERP bağlıyken **409** döner. Gizlemek yetmez: paneli atlayan bir istemci yine yazardı ve ERP'nin sayısıyla panelinki sessizce ayrışırdı ("gizlemek yetmez" dersi).
curl -X PUT "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/products/<id>/stock" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}