Voorraad
Beschikbaarheid
Read-only voorraadbeschikbaarheid van producten en varianten voor de storefront.
Bekijk als MarkdownDe Voorraad-module stelt read-only beschikbaarheid van Commerce-producten beschikbaar: een batch-endpoint voor overzichtspagina's en een endpoint voor één product dat kan inzoomen op één variant. Beide routes leven onder /v1/api/stock, vereisen de scope stock:read op je API-key, en vereisen dat de stock-module voor je winkel is ingeschakeld (anders 403 {"error":"Module not enabled: stock"}).
De Voorraad-module stelt read-only beschikbaarheid van Commerce-producten beschikbaar: een batch-endpoint voor overzichtspagina's en een endpoint voor één product dat kan inzoomen op één variant. Beide routes leven onder /v1/api/stock, vereisen de scope stock:read op je API-key, en vereisen dat de stock-module voor je winkel is ingeschakeld (anders 403 {"error":"Module not enabled: stock"}).
Het availability-object
| Veld | Type | Beschrijving |
|---|---|---|
product_id | string (uuid) | Het Commerce-product-id. |
variant_id | string (uuid) or null | Alleen op het endpoint voor één product. Echoot de queryparameter variant_id; null wanneer weggelaten. |
tracked | boolean | false wanneer stock_status untracked is, anders true. |
available | number or null | Som van quantity - reserved over de actieve voorraadlocaties van de winkel, in de unit van het product. Een JSON-getal dat decimalen kan hebben voor producten die per gewicht, lengte, oppervlakte of volume verkocht worden (bijvoorbeeld 47.84). null wanneer untracked. |
stock_status | string | Eén van untracked, in_stock, low_stock, out_of_stock, backorder. |
stock_status wordt als volgt afgeleid:
- Het product heeft
track_stockopfalse(dat geldt voor al zijn varianten), of er bestaan geen voorraadrijen voor het product (of de variant) op een actieve locatie:untracked. availableis 0 of lager:backorderals een voorraadrij backorders toestaat, andersout_of_stock.- Een voorraadrij zit op of onder zijn lage-voorraaddrempel:
low_stock. - Anders:
in_stock.
Het availability-object
| Veld | Type | Beschrijving |
|---|---|---|
product_id | string (uuid) | Het Commerce-product-id. |
variant_id | string (uuid) or null | Alleen op het endpoint voor één product. Echoot de queryparameter variant_id; null wanneer weggelaten. |
tracked | boolean | false wanneer stock_status untracked is, anders true. |
available | number or null | Som van quantity - reserved over de actieve voorraadlocaties van de winkel, in de unit van het product. Een JSON-getal dat decimalen kan hebben voor producten die per gewicht, lengte, oppervlakte of volume verkocht worden (bijvoorbeeld 47.84). null wanneer untracked. |
stock_status | string | Eén van untracked, in_stock, low_stock, out_of_stock, backorder. |
stock_status wordt als volgt afgeleid:
- Het product heeft
track_stockopfalse(dat geldt voor al zijn varianten), of er bestaan geen voorraadrijen voor het product (of de variant) op een actieve locatie:untracked. availableis 0 of lager:backorderals een voorraadrij backorders toestaat, andersout_of_stock.- Een voorraadrij zit op of onder zijn lage-voorraaddrempel:
low_stock. - Anders:
in_stock.
GET /v1/api/stock/availability
Batch-beschikbaarheid op productniveau voor maximaal 100 producten in één request. De response bevat één entry per bekend product-id; onbekende id's worden stilzwijgend weggelaten (het endpoint retourneert nooit een 404 voor een onbekend id in de batch). Dit endpoint werkt alleen op productniveau en heeft geen variantkeys; gebruik het endpoint voor één product voor beschikbaarheid per variant.
Query-parameters
| Naam | Type | Verplicht | Beschrijving |
|---|---|---|---|
ids | array of string (uuid) | Ja | Product-id's, verstuurd als herhaalde ids[]=...-parameters. Maximaal 100 entries; elke entry moet een UUID zijn. |
Status: 200 OK.
Fouten
422wanneeridsontbreekt, meer dan 100 entries bevat, of een entry geen UUID is. Fouten per entry verschijnen onder gekeyde foutvelden, bijvoorbeelderrors["ids.0"].403{"error":"Module not enabled: stock"}wanneer de Voorraad-module is uitgeschakeld.403{"message":"Invalid ability provided."}wanneer de API-key de scopestock:readmist.
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
Batch-beschikbaarheid op productniveau voor maximaal 100 producten in één request. De response bevat één entry per bekend product-id; onbekende id's worden stilzwijgend weggelaten (het endpoint retourneert nooit een 404 voor een onbekend id in de batch). Dit endpoint werkt alleen op productniveau en heeft geen variantkeys; gebruik het endpoint voor één product voor beschikbaarheid per variant.
Query-parameters
| Naam | Type | Verplicht | Beschrijving |
|---|---|---|---|
ids | array of string (uuid) | Ja | Product-id's, verstuurd als herhaalde ids[]=...-parameters. Maximaal 100 entries; elke entry moet een UUID zijn. |
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();Status: 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"
}
]
}Fouten
422wanneeridsontbreekt, meer dan 100 entries bevat, of een entry geen UUID is. Fouten per entry verschijnen onder gekeyde foutvelden, bijvoorbeelderrors["ids.0"].403{"error":"Module not enabled: stock"}wanneer de Voorraad-module is uitgeschakeld.403{"message":"Invalid ability provided."}wanneer de API-key de scopestock:readmist.
GET /v1/api/stock/products/{productId}
Beschikbaarheid voor één product, optioneel beperkt tot één variant. Wanneer variant_id is meegegeven, weerspiegelt de response alleen de voorraadrijen van die variant.
Path-parameters
| Naam | Type | Verplicht | Beschrijving |
|---|---|---|---|
productId | string (uuid) | Ja | Een Commerce-product-id. |
Query-parameters
| Naam | Type | Verplicht | Beschrijving |
|---|---|---|---|
variant_id | string (uuid) | Nee | Beperk de berekening tot de voorraadrijen van deze variant. Wordt geëchood in de response; null wanneer weggelaten. Een onbekende variant_id geeft geen 404; die rapporteert gewoon untracked. |
Status: 200 OK.
Fouten
404wanneer het product-id niet bestaat voor deze winkel.403module- en scope-fouten zoals op het batch-endpoint.
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}
Beschikbaarheid voor één product, optioneel beperkt tot één variant. Wanneer variant_id is meegegeven, weerspiegelt de response alleen de voorraadrijen van die variant.
Path-parameters
| Naam | Type | Verplicht | Beschrijving |
|---|---|---|---|
productId | string (uuid) | Ja | Een Commerce-product-id. |
Query-parameters
| Naam | Type | Verplicht | Beschrijving |
|---|---|---|---|
variant_id | string (uuid) | Nee | Beperk de berekening tot de voorraadrijen van deze variant. Wordt geëchood in de response; null wanneer weggelaten. Een onbekende variant_id geeft geen 404; die rapporteert gewoon untracked. |
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}"Status: 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"
}
}Fouten
404wanneer het product-id niet bestaat voor deze winkel.403module- en scope-fouten zoals op het batch-endpoint.