Files
dashback/docs/api/routes/article/set-prices.md
2026-10-07 21:23:10 +02:00

3.2 KiB

PUT /article/{sku}/prices

Protected. Requires a valid session cookie (credentials: 'include').

Replace POS prices by SKU

Replace-all prices for the company POS customer group. Each entry accepts net OR gross price (or legacy price), taxRate OR tax (percentage, e.g. 19 for 19%, ensured via tax.ensure), optional minmultiplier (default 1). When gross is provided, net price is computed as gross / (1 + taxRate / 100). Empty prices clears all POS prices. Returns the same shape as GET by SKU (article prices array contains { minmultiplier, net, taxRate, customergroupId }).

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": "…",
    "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
        }
      }
    ]
  }
}

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.