3.5 KiB
PUT /article/{sku}/prices
Protected. Requires a valid session cookie (credentials: 'include').
Replace POS prices by SKU (net > gross; price=net, tax=taxRate %)
Replace-all prices for the company POS customer group.
net takes precedence over price (legacy alias for net) and gross.
tax and taxRate both specify the tax rate percentage (e.g. 19 for 19%), not monetary tax.
When gross is provided, net price is computed as gross / (1 + taxRate / 100).
Prices are strictly scoped to the company's designated POS customer group (customergroupId returned on GET).
Empty prices clears all POS prices. Returns the same shape as GET by SKU.
Path parameters
| Param | Required | Type | Description |
|---|---|---|---|
sku |
yes | string |
Body (JSON)
| Field | Required | Type | Description |
|---|---|---|---|
prices |
yes | object[] | |
prices[].net |
no | number | Net price (excl. VAT). Either net, gross, or legacy price is required. |
prices[].gross |
no | number | Gross price (incl. VAT). Net is computed as gross / (1 + taxRate / 100). |
prices[].price |
no | number | Legacy alias for net. |
prices[].taxRate |
no | number | Tax rate percentage (e.g. 19 for 19%, 7 for 7%, 0 for 0%). |
prices[].tax |
no | number | Alias for taxRate percentage. |
prices[].minmultiplier |
no | number | Defaults to 1; must be unique per request. |
{
"prices": [
{
"net": 10.5,
"taxRate": 19
},
{
"gross": 11.9,
"taxRate": 19,
"minmultiplier": 10
}
]
}
Signals
On success, emits SSE signal: article-<sku> (see GET /events).
Response 200
Updated article detail
{
"article": {
"id": 1,
"sku": "…",
"name": "…",
"slug": "…",
"desc": "…",
"seo": "…",
"track_stock": true,
"unitamount": 1,
"weight": 1,
"unit": {
"si": "…",
"basesi": "…",
"basesifactor": 1,
"symbol": "…",
"name": "…"
},
"brand": {
"id": 1,
"name": "…",
"fullHash": "…",
"thumbW": 1,
"thumbH": 1,
"thumbHash": "…"
},
"categoryIds": [
1
],
"photos": [
{
"sort": 1,
"fullHash": "…",
"fullW": 1,
"fullH": 1,
"fullSize": 1,
"thumbW": 1,
"thumbH": 1,
"thumbHash": "…"
}
],
"eans": [
"…"
],
"prices": [
{
"minmultiplier": 1,
"net": 1,
"taxRate": 1,
"customergroupId": 1
}
],
"suppliers": [
{
"id": 1,
"articleId": 1,
"entityId": 1,
"supplierName": "…",
"sku": "…",
"pu": 1,
"stock": 1,
"sort": 1,
"priceId": 1,
"price": {
"net": 1,
"taxId": 1,
"taxRate": 1
},
"incoming": [
{
"date": "2026-08-10T00:00:00.000Z",
"amount": 1
}
]
}
]
}
}
Errors
| Status | Description |
|---|---|
| 400 | Invalid prices, POS customer group required, or parent article cannot have prices — {"error":"…"} |
| 401 | Unauthorized — {"error":"…"} |
| 403 | Not authorized — {"error":"…"} |
| 404 | Article not found — {"error":"…"} |
Generated from @openapi JSDoc. Do not edit by hand — run npm run docs:api.