This commit is contained in:
seb
2026-09-30 19:29:13 +02:00
parent d6fe6ff1d2
commit e358eccca9
80 changed files with 1185 additions and 225 deletions

View File

@@ -14,6 +14,10 @@ Configures the article as a Stückliste covering a list of count * article. A fa
## Body (JSON)
| Field | Required | Type | Description |
|-------|----------|------|-------------|
| `items` | yes | object[] | |
```json
{
"items": [

View File

@@ -14,6 +14,10 @@ Replaces all attribute values for an article. Enforces exclusive constraint (max
## Body (JSON)
| Field | Required | Type | Description |
|-------|----------|------|-------------|
| `attributevalues` | yes | any[] | |
```json
{
"attributevalues": [

View File

@@ -14,6 +14,12 @@ Automatically generates SKU as fatherSku-attributeValueId and assigns the varian
## Body (JSON)
| Field | Required | Type | Description |
|-------|----------|------|-------------|
| `attributeValueId` | no | integer | ID of existing attribute value for the father's attribute |
| `value` | no | string | String value to find or create under the father's attribute |
| `name` | no | string | Optional custom variant name |
```json
{
"attributeValueId": 1,
@@ -28,7 +34,13 @@ Created child article
```json
{
"article": {}
"article": {
"id": 1,
"categoryId": 1,
"name": "…",
"sku": "…",
"track_stock": true
}
}
```

View File

@@ -14,6 +14,11 @@ Enables or disables father article status. Enabling requires specifying an attri
## Body (JSON)
| Field | Required | Type | Description |
|-------|----------|------|-------------|
| `isFather` | yes | boolean | True to make article a father, false to revert to regular article |
| `attributeNameId` | no | integer | Required when isFather is true. The attributename id for variants. |
```json
{
"isFather": true,
@@ -27,7 +32,13 @@ Updated article
```json
{
"article": {}
"article": {
"id": 1,
"categoryId": 1,
"name": "…",
"sku": "…",
"track_stock": true
}
}
```

View File

@@ -14,6 +14,10 @@ Configures options for an article. Some options can be mandated (come with the a
## Body (JSON)
| Field | Required | Type | Description |
|-------|----------|------|-------------|
| `options` | yes | object[] | |
```json
{
"options": [

View File

@@ -14,6 +14,12 @@ Prints a label for the article using a label template.
## Body (JSON)
| Field | Required | Type | Description |
|-------|----------|------|-------------|
| `templateId` | yes | integer | |
| `printerId` | yes | integer | |
| `quantity` | yes | integer | |
```json
{
"templateId": 1,

View File

@@ -14,6 +14,10 @@ Replaces all properties for an article.
## Body (JSON)
| Field | Required | Type | Description |
|-------|----------|------|-------------|
| `properties` | yes | object[] | |
```json
{
"properties": [

View File

@@ -15,6 +15,10 @@ Enables or disables inventory stock tracking for this article.
## Body (JSON)
| Field | Required | Type | Description |
|-------|----------|------|-------------|
| `track_stock` | yes | boolean | Whether to track inventory stock for this article |
```json
{
"track_stock": true
@@ -31,7 +35,32 @@ Updated article detail
```json
{
"article": {}
"article": {
"id": 1,
"sku": "…",
"name": "…",
"slug": "…",
"track_stock": true,
"unitamount": 1,
"weight": 1,
"unit": {},
"brand": {},
"categoryIds": [
1
],
"photos": [
{}
],
"eans": [
"…"
],
"prices": [
{}
],
"suppliers": [
{}
]
}
}
```

View File

@@ -2,15 +2,21 @@
Protected. Requires a valid session cookie (`credentials: 'include'`).
Create article
Create article in category
Creates an article under an authorized category (`parentId`).
## Body (JSON)
| Field | Required | Type | Description |
|-------|----------|------|-------------|
| `categoryId` | yes | integer | Category ID under which to create the article |
| `name` | yes | string | |
| `track_stock` | no | boolean | Whether to track inventory stock (defaults to true) |
```json
{
"parentId": 10,
"categoryId": 10,
"name": "New article"
}
```
@@ -27,7 +33,7 @@ Created
{
"article": {
"id": 1,
"parentId": 1,
"categoryId": 1,
"name": "…",
"sku": "…",
"track_stock": true

View File

@@ -18,7 +18,32 @@ Article detail
```json
{
"article": {}
"article": {
"id": 1,
"sku": "…",
"name": "…",
"slug": "…",
"track_stock": true,
"unitamount": 1,
"weight": 1,
"unit": {},
"brand": {},
"categoryIds": [
1
],
"photos": [
{}
],
"eans": [
"…"
],
"prices": [
{}
],
"suppliers": [
{}
]
}
}
```

View File

@@ -16,6 +16,10 @@ Sets `articlepic.sort` to `0..n-1` in the given order.
## Body (JSON)
| Field | Required | Type | Description |
|-------|----------|------|-------------|
| `fullHashes` | yes | string[] | |
```json
{
"fullHashes": [

View File

@@ -16,6 +16,10 @@ Pass `null` to clear the brand. Returns the same shape as GET by SKU.
## Body (JSON)
| Field | Required | Type | Description |
|-------|----------|------|-------------|
| `brandId` | yes | integer | |
```json
{
"brandId": 3
@@ -32,7 +36,32 @@ Updated article detail
```json
{
"article": {}
"article": {
"id": 1,
"sku": "…",
"name": "…",
"slug": "…",
"track_stock": true,
"unitamount": 1,
"weight": 1,
"unit": {},
"brand": {},
"categoryIds": [
1
],
"photos": [
{}
],
"eans": [
"…"
],
"prices": [
{}
],
"suppliers": [
{}
]
}
}
```

View File

@@ -17,6 +17,10 @@ article from all categories. Returns the same shape as GET by SKU.
## Body (JSON)
| Field | Required | Type | Description |
|-------|----------|------|-------------|
| `categoryIds` | yes | integer[] | |
```json
{
"categoryIds": [
@@ -36,7 +40,32 @@ Updated article detail
```json
{
"article": {}
"article": {
"id": 1,
"sku": "…",
"name": "…",
"slug": "…",
"track_stock": true,
"unitamount": 1,
"weight": 1,
"unit": {},
"brand": {},
"categoryIds": [
1
],
"photos": [
{}
],
"eans": [
"…"
],
"prices": [
{}
],
"suppliers": [
{}
]
}
}
```

View File

@@ -16,6 +16,10 @@ empty array clears all EANs. Returns the same shape as GET by SKU.
## Body (JSON)
| Field | Required | Type | Description |
|-------|----------|------|-------------|
| `eans` | yes | string[] | |
```json
{
"eans": [
@@ -34,7 +38,32 @@ Updated article detail
```json
{
"article": {}
"article": {
"id": 1,
"sku": "…",
"name": "…",
"slug": "…",
"track_stock": true,
"unitamount": 1,
"weight": 1,
"unit": {},
"brand": {},
"categoryIds": [
1
],
"photos": [
{}
],
"eans": [
"…"
],
"prices": [
{}
],
"suppliers": [
{}
]
}
}
```

View File

@@ -17,6 +17,10 @@ Empty `prices` clears all POS prices. Returns the same shape as GET by SKU.
## Body (JSON)
| Field | Required | Type | Description |
|-------|----------|------|-------------|
| `prices` | yes | object[] | |
```json
{
"prices": [
@@ -43,7 +47,32 @@ Updated article detail
```json
{
"article": {}
"article": {
"id": 1,
"sku": "…",
"name": "…",
"slug": "…",
"track_stock": true,
"unitamount": 1,
"weight": 1,
"unit": {},
"brand": {},
"categoryIds": [
1
],
"photos": [
{}
],
"eans": [
"…"
],
"prices": [
{}
],
"suppliers": [
{}
]
}
}
```

View File

@@ -16,6 +16,10 @@ Returns the same shape as GET by SKU.
## Body (JSON)
| Field | Required | Type | Description |
|-------|----------|------|-------------|
| `weight` | yes | number | |
```json
{
"weight": 1.5
@@ -32,7 +36,32 @@ Updated article detail
```json
{
"article": {}
"article": {
"id": 1,
"sku": "…",
"name": "…",
"slug": "…",
"track_stock": true,
"unitamount": 1,
"weight": 1,
"unit": {},
"brand": {},
"categoryIds": [
1
],
"photos": [
{}
],
"eans": [
"…"
],
"prices": [
{}
],
"suppliers": [
{}
]
}
}
```

View File

@@ -15,6 +15,17 @@ Assigns a supplier to an article with optional purchase price, stock, and suppli
## Body (JSON)
| Field | Required | Type | Description |
|-------|----------|------|-------------|
| `entityId` | yes | integer | Supplier entity ID (in Lieferanten group) |
| `sku` | no | string | Supplier's item number |
| `pu` | no | number | Packaging unit (VPE) |
| `stock` | no | number | Supplier stock |
| `sort` | no | integer | Display sort order (defaults to next sort) |
| `netPrice` | no | number | Net purchase price |
| `taxId` | no | integer | Tax ID for purchase price |
| `taxRate` | no | number | Tax rate in percent |
```json
{
"entityId": 88,

View File

@@ -16,6 +16,10 @@ Expects an array of all assigned `articlesupplier` IDs in the desired order.
## Body (JSON)
| Field | Required | Type | Description |
|-------|----------|------|-------------|
| `ids` | yes | integer[] | Full list of articlesupplier ids in their new order |
```json
{
"ids": [

View File

@@ -16,6 +16,16 @@ Updates an existing article-supplier association (supplier SKU, packaging unit,
## Body (JSON)
| Field | Required | Type | Description |
|-------|----------|------|-------------|
| `sku` | no | string | |
| `pu` | no | number | |
| `stock` | no | number | |
| `sort` | no | integer | Display sort order |
| `netPrice` | no | number | |
| `taxId` | no | integer | |
| `taxRate` | no | number | |
```json
{
"sku": "MET-44910-B",

View File

@@ -16,6 +16,13 @@ Patches article fields. At least one of `name`, `unitamount`, `unitSi` required.
## Body (JSON)
| Field | Required | Type | Description |
|-------|----------|------|-------------|
| `name` | no | string | |
| `unitamount` | no | number | Must be finite and `> 0` |
| `unitSi` | no | string | Existing company unit `si` |
| `track_stock` | no | boolean | Whether to track inventory stock |
```json
{
"unitamount": 0.24,
@@ -33,7 +40,32 @@ Updated article detail
```json
{
"article": {}
"article": {
"id": 1,
"sku": "…",
"name": "…",
"slug": "…",
"track_stock": true,
"unitamount": 1,
"weight": 1,
"unit": {},
"brand": {},
"categoryIds": [
1
],
"photos": [
{}
],
"eans": [
"…"
],
"prices": [
{}
],
"suppliers": [
{}
]
}
}
```