catalog
18 uç · /api/b2b/v1/catalog
İstek örnekleri ucun GERÇEK metodu ve yolundan üretilir. 18 ucun elle doğrulanmış gövde örneği henüz yok; o uçlarda iskelet gövdesizdir — uydurma bir alan yazmıyoruz.
POST /admin/catalog/bundles — bundle + kalemleri oluştur (atomik).
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/catalog/bundles" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}GET /admin/catalog/bundles/{id} — paket + kalemleri.
idDüzenleme ekranının kalem listesini doldurabilmesi için ŞART: kalemler bugüne dek hiçbir uçtan okunamıyordu (liste yalnız paket başlıklarını veriyordu).
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/catalog/bundles/<id>" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}PATCH /admin/catalog/bundles/{id} — paketi düzenle (kalemler dâhil, ATOMİK).
idPaket oluşturulabiliyor ve silinebiliyordu ama **düzenlenemiyordu**: bir ürünün miktarını
değiştirmek ya da paketi geçici kapatmak için paketi silip yeniden kurmak gerekiyordu.
Doğrulama create ile aynı kurallardan geçer ve fixed fiyatlama kuralı **birleştirilmiş**
durum üzerinden bakılır: pricing'i fixed'e çevirip fixed_price vermemek, iki alanın
tek tek geçerli olduğu ama BİRLİKTE geçersiz olan bir paket üretirdi.
curl -X PATCH "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/catalog/bundles/<id>" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}DELETE /admin/catalog/bundles/{id} — bundle + kalemleri (cascade).
idcurl -X DELETE "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/catalog/bundles/<id>" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}PUT /admin/catalog/overlay/{product_ref} — overlay upsert (unique(tenant,product_ref)).
product_refcurl -X PUT "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/catalog/overlay/<product_ref>" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}DELETE /admin/catalog/overlay/{product_ref}.
product_refcurl -X DELETE "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/catalog/overlay/<product_ref>" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}GET /admin/catalog/relations?product_ref=… — bir ürünün ilişkileri.
**2026-08-17'de eklendi.** İlişki eklenip silinebiliyordu ama hiçbir uçtan OKUNAMIYORDU: panel bir ürünün hangi ürünlerle ilişkilendirildiğini gösteremiyor, dolayısıyla yanlış eklenmiş bir ilişki (id'si bilinmediğinden) silinemiyordu. Süzgeç ZORUNLUDUR: ilişki bir ürüne aittir, "tüm ilişkiler" listesi hiçbir ekranın işine yaramaz.
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/catalog/relations" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}DELETE /admin/catalog/relations/{id}.
idcurl -X DELETE "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/catalog/relations/<id>" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}POST /admin/catalog/visibility — görünürlük kuralı oluştur (enum doğrulaması ön-yapılır).
curl -X POST "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/catalog/visibility" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}PUT /admin/catalog/visibility/{id} — kuralı güncelle.
idNeden gerekliydi: uç yokken bir kuralın önceliğini ya da etkisini değiştirmenin tek yolu SİL + YENİDEN OLUŞTUR'du. Bu, kuralı bir an için ORTADAN KALDIRIR (arada gelen bayi isteği yanlış görünürlükle cevaplanır) ve kaydın kimliğini/denetim izini koparır.
curl -X PUT "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/catalog/visibility/<id>" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}DELETE /admin/catalog/visibility/{id}.
idcurl -X DELETE "https://{slug}.b2b.blesyum.app/api/b2b/v1/admin/catalog/visibility/<id>" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}Public-katalog örnek uç — require_b2b_public kapısından geçer (tenant+lisans
zorunlu, session opsiyonel). Anonim ziyaretçi de 200 alır; oturum varsa
authenticated:true. Gerçek katalog (BF4) bu düzleme eklenir.
curl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/catalog/info" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}GET /api/b2b/v1/catalog/products/{ref} (require_b2b_public) — misafir ürün detayı.
refcurl -X GET "https://{slug}.b2b.blesyum.app/api/b2b/v1/catalog/products/<ref>" \
-H "Authorization: Bearer <oturum-token>" \
-H "Accept: application/json"{
"data": "…",
"trace_id": "01JC…"
}