Stok
Stok durumu
Storefront için salt okunur ürün ve varyant stok durumu.
Markdown olarak görüntüleStock modülü, Commerce ürünleri için salt okunur stok durumu sunar: listeleme sayfaları için bir toplu (batch) endpoint ve tek bir varyanta kadar inebilen bir tekil ürün endpoint'i. Her iki route da /v1/api/stock altında yer alır, API anahtarınızda stock:read scope'unu gerektirir ve mağazanız için stock modülünün etkin olmasını gerektirir (aksi halde 403 {"error":"Module not enabled: stock"}).
Stock modülü, Commerce ürünleri için salt okunur stok durumu sunar: listeleme sayfaları için bir toplu (batch) endpoint ve tek bir varyanta kadar inebilen bir tekil ürün endpoint'i. Her iki route da /v1/api/stock altında yer alır, API anahtarınızda stock:read scope'unu gerektirir ve mağazanız için stock modülünün etkin olmasını gerektirir (aksi halde 403 {"error":"Module not enabled: stock"}).
Stok durumu nesnesi
| Alan | Tür | Açıklama |
|---|---|---|
product_id | string (uuid) | Commerce ürün id'si. |
variant_id | string (uuid) or null | Yalnızca tekil ürün endpoint'inde. variant_id query parametresini geri yansıtır; atlandığında null. |
tracked | boolean | stock_status değeri untracked olduğunda false, aksi halde true. |
available | number or null | Mağazanın aktif stok lokasyonlarındaki quantity - reserved toplamı, ürünün unit biriminde. Ağırlık, uzunluk, alan veya hacimle satılan ürünlerde ondalıklı olabilen bir JSON sayısı (örneğin 47.84). Takip edilmiyorsa null. |
stock_status | string | untracked, in_stock, low_stock, out_of_stock, backorder değerlerinden biri. |
stock_status şöyle türetilir:
- Ürünün
track_stockdeğerifalse(bu, tüm varyantlarını kapsar) veya aktif bir lokasyonda ürün (veya varyant) için hiç stok satırı yok:untracked. available0 veya daha az: herhangi bir stok satırı ön siparişe (backorder) izin veriyorsabackorder, aksi haldeout_of_stock.- Herhangi bir stok satırı düşük stok eşiğinde veya altında:
low_stock. - Aksi halde:
in_stock.
Stok durumu nesnesi
| Alan | Tür | Açıklama |
|---|---|---|
product_id | string (uuid) | Commerce ürün id'si. |
variant_id | string (uuid) or null | Yalnızca tekil ürün endpoint'inde. variant_id query parametresini geri yansıtır; atlandığında null. |
tracked | boolean | stock_status değeri untracked olduğunda false, aksi halde true. |
available | number or null | Mağazanın aktif stok lokasyonlarındaki quantity - reserved toplamı, ürünün unit biriminde. Ağırlık, uzunluk, alan veya hacimle satılan ürünlerde ondalıklı olabilen bir JSON sayısı (örneğin 47.84). Takip edilmiyorsa null. |
stock_status | string | untracked, in_stock, low_stock, out_of_stock, backorder değerlerinden biri. |
stock_status şöyle türetilir:
- Ürünün
track_stockdeğerifalse(bu, tüm varyantlarını kapsar) veya aktif bir lokasyonda ürün (veya varyant) için hiç stok satırı yok:untracked. available0 veya daha az: herhangi bir stok satırı ön siparişe (backorder) izin veriyorsabackorder, aksi haldeout_of_stock.- Herhangi bir stok satırı düşük stok eşiğinde veya altında:
low_stock. - Aksi halde:
in_stock.
GET /v1/api/stock/availability
Tek bir request'te en fazla 100 ürün için ürün düzeyinde toplu stok durumu. Response, bilinen her ürün id'si için bir kayıt içerir; bilinmeyen id'ler sessizce atlanır (endpoint, toplu istekteki bilinmeyen bir id için asla 404 döndürmez). Bu endpoint yalnızca ürün düzeyindedir ve varyant anahtarları içermez; varyant stok durumu için tekil ürün endpoint'ini kullanın.
Sorgu parametreleri
| Ad | Tür | Zorunlu | Açıklama |
|---|---|---|---|
ids | array of string (uuid) | Evet | Ürün id'leri, tekrarlanan ids[]=... parametreleri olarak gönderilir. En fazla 100 kayıt; her kayıt bir UUID olmalıdır. |
Durum: 200 OK.
Hatalar
422:idseksik olduğunda, 100'den fazla kayıt içerdiğinde veya herhangi bir kayıt UUID olmadığında. Kayıt bazlı hatalar anahtarlanmış hata alanları altında görünür, örneğinerrors["ids.0"].403{"error":"Module not enabled: stock"}: Stock modülü devre dışı olduğunda.403{"message":"Invalid ability provided."}: API anahtarındastock:readscope'u olmadığında.
curl --globoff "https://api.borkol.com/v1/api/stock/availability?ids[]=7c1f4b2e-9a3d-4e5f-8b6c-0d1e2f3a4b5c&ids[]=8d2e5c3f-0b4e-4f6a-9c7d-1e2f3a4b5c6d" \
-H "Authorization: Bearer {api_key}"const params = new URLSearchParams();
for (const id of productIds) params.append("ids[]", id);
const res = await fetch(
`https://api.borkol.com/v1/api/stock/availability?${params}`,
{ headers: { Authorization: `Bearer ${apiKey}` } },
);
const { data } = await res.json();{
"data": [
{
"product_id": "7c1f4b2e-9a3d-4e5f-8b6c-0d1e2f3a4b5c",
"tracked": true,
"available": 42,
"stock_status": "in_stock"
},
{
"product_id": "8d2e5c3f-0b4e-4f6a-9c7d-1e2f3a4b5c6d",
"tracked": false,
"available": null,
"stock_status": "untracked"
}
]
}GET /v1/api/stock/availability
Tek bir request'te en fazla 100 ürün için ürün düzeyinde toplu stok durumu. Response, bilinen her ürün id'si için bir kayıt içerir; bilinmeyen id'ler sessizce atlanır (endpoint, toplu istekteki bilinmeyen bir id için asla 404 döndürmez). Bu endpoint yalnızca ürün düzeyindedir ve varyant anahtarları içermez; varyant stok durumu için tekil ürün endpoint'ini kullanın.
Sorgu parametreleri
| Ad | Tür | Zorunlu | Açıklama |
|---|---|---|---|
ids | array of string (uuid) | Evet | Ürün id'leri, tekrarlanan ids[]=... parametreleri olarak gönderilir. En fazla 100 kayıt; her kayıt bir UUID olmalıdır. |
curl --globoff "https://api.borkol.com/v1/api/stock/availability?ids[]=7c1f4b2e-9a3d-4e5f-8b6c-0d1e2f3a4b5c&ids[]=8d2e5c3f-0b4e-4f6a-9c7d-1e2f3a4b5c6d" \
-H "Authorization: Bearer {api_key}"const params = new URLSearchParams();
for (const id of productIds) params.append("ids[]", id);
const res = await fetch(
`https://api.borkol.com/v1/api/stock/availability?${params}`,
{ headers: { Authorization: `Bearer ${apiKey}` } },
);
const { data } = await res.json();Durum: 200 OK.
{
"data": [
{
"product_id": "7c1f4b2e-9a3d-4e5f-8b6c-0d1e2f3a4b5c",
"tracked": true,
"available": 42,
"stock_status": "in_stock"
},
{
"product_id": "8d2e5c3f-0b4e-4f6a-9c7d-1e2f3a4b5c6d",
"tracked": false,
"available": null,
"stock_status": "untracked"
}
]
}Hatalar
422:idseksik olduğunda, 100'den fazla kayıt içerdiğinde veya herhangi bir kayıt UUID olmadığında. Kayıt bazlı hatalar anahtarlanmış hata alanları altında görünür, örneğinerrors["ids.0"].403{"error":"Module not enabled: stock"}: Stock modülü devre dışı olduğunda.403{"message":"Invalid ability provided."}: API anahtarındastock:readscope'u olmadığında.
GET /v1/api/stock/products/{productId}
Tek bir ürünün stok durumu, isteğe bağlı olarak tek bir varyanta daraltılabilir. variant_id verildiğinde response yalnızca o varyantın stok satırlarını yansıtır.
Yol parametreleri
| Ad | Tür | Zorunlu | Açıklama |
|---|---|---|---|
productId | string (uuid) | Evet | Bir Commerce ürün id'si. |
Sorgu parametreleri
| Ad | Tür | Zorunlu | Açıklama |
|---|---|---|---|
variant_id | string (uuid) | Hayır | Hesaplamayı bu varyantın stok satırlarıyla sınırlar. Response'ta geri yansıtılır; atlandığında null. Bilinmeyen bir variant_id 404 döndürmez; yalnızca untracked olarak raporlanır. |
Durum: 200 OK.
Hatalar
404: ürün id'si bu mağazada mevcut olmadığında.403: toplu endpoint'teki gibi modül ve scope hataları.
curl "https://api.borkol.com/v1/api/stock/products/7c1f4b2e-9a3d-4e5f-8b6c-0d1e2f3a4b5c?variant_id=3a4b5c6d-7e8f-4a1b-9c2d-0e1f2a3b4c5d" \
-H "Authorization: Bearer {api_key}"{
"data": {
"product_id": "7c1f4b2e-9a3d-4e5f-8b6c-0d1e2f3a4b5c",
"variant_id": "3a4b5c6d-7e8f-4a1b-9c2d-0e1f2a3b4c5d",
"tracked": true,
"available": 3,
"stock_status": "low_stock"
}
}GET /v1/api/stock/products/{productId}
Tek bir ürünün stok durumu, isteğe bağlı olarak tek bir varyanta daraltılabilir. variant_id verildiğinde response yalnızca o varyantın stok satırlarını yansıtır.
Yol parametreleri
| Ad | Tür | Zorunlu | Açıklama |
|---|---|---|---|
productId | string (uuid) | Evet | Bir Commerce ürün id'si. |
Sorgu parametreleri
| Ad | Tür | Zorunlu | Açıklama |
|---|---|---|---|
variant_id | string (uuid) | Hayır | Hesaplamayı bu varyantın stok satırlarıyla sınırlar. Response'ta geri yansıtılır; atlandığında null. Bilinmeyen bir variant_id 404 döndürmez; yalnızca untracked olarak raporlanır. |
curl "https://api.borkol.com/v1/api/stock/products/7c1f4b2e-9a3d-4e5f-8b6c-0d1e2f3a4b5c?variant_id=3a4b5c6d-7e8f-4a1b-9c2d-0e1f2a3b4c5d" \
-H "Authorization: Bearer {api_key}"Durum: 200 OK.
{
"data": {
"product_id": "7c1f4b2e-9a3d-4e5f-8b6c-0d1e2f3a4b5c",
"variant_id": "3a4b5c6d-7e8f-4a1b-9c2d-0e1f2a3b4c5d",
"tracked": true,
"available": 3,
"stock_status": "low_stock"
}
}Hatalar
404: ürün id'si bu mağazada mevcut olmadığında.403: toplu endpoint'teki gibi modül ve scope hataları.