API referansı · 3 uç nokta
Admin · Stock
Şube bazlı stok seviyeleri ve hareket defteri. ADMIN rolü gerekir.
GET
/v1/admin/stock Bearer Stok seviyeleri
Stok (ürün, şube) çiftinde tutulur — ürün başına değil, raf başına.
Parametreler
| Ad | Yer | Tip | Açıklama |
|---|---|---|---|
page | query | integer ≥ 1 · varsayılan 1 | |
perPage | query | integer 1–100 · varsayılan 24 | |
categoryId | query | string | |
branch | query | string en fazla 64 karakter | Şube kodu (id değil), ör. cesme. Boş bırakılırsa tüm şubeler. |
search | query | string en fazla 64 karakter | %, _ ve \ karakterleri sunucuda temizlenir. |
lowOnly | query | boolean | Yalnızca eşiğin altındaki raflar. |
Yanıtlar
| Durum | Gövde | Açıklama |
|---|---|---|
| 200 | PageMeta + { items: StockLevelDto[] } | Stok sayfası. |
| 400 | ApiError | validation_failed — gövde veya query şemaya uymuyor (details). |
| 401 | ApiError | missing_token, invalid_token veya unauthenticated. |
| 403 | ApiError | insufficient_role — kimlik doğru, rol yetkili değil. |
GET
/v1/admin/stock/movements Bearer Stok hareket defteri
Parametreler
| Ad | Yer | Tip | Açıklama |
|---|---|---|---|
page | query | integer ≥ 1 · varsayılan 1 | |
perPage | query | integer 1–100 · varsayılan 24 | |
productId | query | string | |
branch | query | string en fazla 64 karakter | Şube kodu (id değil), ör. cesme. Boş bırakılırsa tüm şubeler. |
Yanıtlar
| Durum | Gövde | Açıklama |
|---|---|---|
| 200 | PageMeta + { items: StockMovementDto[] } | Hareket sayfası. |
| 400 | ApiError | validation_failed — gövde veya query şemaya uymuyor (details). |
| 401 | ApiError | missing_token, invalid_token veya unauthenticated. |
| 403 | ApiError | insufficient_role — kimlik doğru, rol yetkili değil. |
POST
/v1/admin/products/{id}/stock Bearer Stok hareketi kaydeder
branch her zaman zorunludur ve şube kodudur (id değil) — stok bir rafta durur ve hangi raf olduğunu tahmin etmek malı sessizce şubeler arasında taşır.
ADJUST yalnızca onHand'e dokunur, reserved'a asla.
Belirtilen şubede o ürünün raf kaydı yoksa 404 döner — bu çağrı raf açmaz. "Bu şube bu ürünü taşıyor" kararı, sayı geldi diye çıkarsanacak bir sonuç değildir.
Yanıt, hareket kaydı değil rafın yeni durumudur; hareketin kendisi GET /admin/stock/movements ile okunur.
Parametreler
| Ad | Yer | Tip | Açıklama |
|---|---|---|---|
id * | path | string |
İstek gövdesi StockMutationRequest
Yanıtlar
| Durum | Gövde | Açıklama |
|---|---|---|
| 201 | StockRow | Hareket kaydedildi; rafın yeni durumu. |
| 400 | ApiError | validation_failed — gövde veya query şemaya uymuyor (details). |
| 401 | ApiError | missing_token, invalid_token veya unauthenticated. |
| 403 | ApiError | insufficient_role — kimlik doğru, rol yetkili değil. |
| 404 | ApiError | branch_not_found veya product_stock_not_found. |
| 409 | ApiError | adjust_below_reserved — işlem onHand'i reserved'ın altına düşürürdü. Yanıt güncel onHand ve reserved değerlerini taşır. |