This commit is contained in:
seb
2026-08-15 03:04:14 +02:00
parent 6abe2032e8
commit e1a009ba5c
21 changed files with 751 additions and 10 deletions

49
API.md
View File

@@ -134,6 +134,7 @@ Returns how many entities changed since each cursor. Poll this; only fetch list
|---|---|---|
| `lastChangedProduct` | `0` | Products |
| `lastChangedCategory` | `0` | Categories |
| `lastChangedCustomer` | `0` | Customers |
| `lastChangedCustomerGroup` | `0` | Customer groups |
| `lastChangedCompositeProduct` | `0` | Composite (Stückliste) products |
| `lastChangedDeletedEntity` | `0` | Deleted entities |
@@ -293,6 +294,53 @@ No `limit` — returns all groups newer than the cursor.
]
```
### `GET /v1/customer`
Customer deltas. Only customers of customer group `1` are returned, scoped to the active shop (`vCustomer.kShop = active kShop`) and its subshop (`tInetKundeShop.kSubShop = active kShopSubshop`). Rows are ordered by `bLastChanged` ascending, and only rows with `bLastChanged <= nMaxLastChanged` of the active subshop are returned.
| Param | Default |
|---|---|
| `lastChangedCustomer` | `0` |
| `limit` | `20` |
```json
[
{
"id": "5",
"customerNumber": "K-1005",
"firstname": "Max",
"lastname": "Mustermann",
"title": null,
"company": null,
"address": "Musterstraße 1",
"addressSupplement": null,
"city": "Musterstadt",
"postalCode": "12345",
"state": null,
"country": null,
"phone": null,
"email": "max@example.com",
"customerGroupId": "1",
"salutation": null,
"birthday": null,
"discount": "0.00",
"taxIdNumber": null,
"lastChanged": "2822123",
"debtorNumber": "0"
}
]
```
| Field | Source |
|---|---|
| `id` | `vCustomer.kId` |
| `customerNumber` | `tInetKundeShop.cShopKundenNr` ?? `vCustomer.cCustomerNumber` |
| `birthday` | Parsed from `cDateOfBirth` (`dd.MM.yyyy``yyyy-MM-dd HH:mm:ss`) |
| `customerGroupId` | `tInetKundeShop.kKundenGruppe` ?? `vCustomer.kCustomerGroupId` |
| `discount` | `vCustomer.fDiscount`, 2 decimals |
| `lastChanged` | `vCustomer.bLastChanged` rowversion |
| `debtorNumber` | `vCustomer.nDebtorNumber` |
### `GET /v1/deletedentity`
| Param | Default |
@@ -488,6 +536,7 @@ Invalid JSON body → `500` with `[]`.
| `GET` | `/v1/product` | Product deltas |
| `GET` | `/v1/productcomposite` | Composite BOM deltas |
| `GET` | `/v1/customergroup` | Customer group deltas |
| `GET` | `/v1/customer` | Customer deltas |
| `GET` | `/v1/deletedentity` | Deletion deltas |
| `GET` | `/v1/pimage` | Product image by hash |
| `GET` | `/v1/cimage` | Category image by hash |