Ressourcen: suppliers und supplier-articles #
Lieferanten sind in EULANDA freigeschaltete Adressen: Die Prozedur
cn_KrCre legt zur Adresse den Kreditor-Satz mit den
Einkaufskonditionen an (und erzeugt dabei das Lieferanten-Lagerkonto),
cn_KrDel nimmt die Freischaltung zurück. Die Lieferantenartikel
(KrArtikel) ordnen EULANDA-Artikel dem Lieferanten zu - mit dessen
Artikelnummer und Einkaufspreis.
Hinweis Vertraulichkeit: Die suppliers-Scopes sind die
Einkaufs-Scopes - suppliers:read sieht Einkaufspreise. Shop- oder
Sync-Clients bekommen diesen Scope nicht.
Endpunkte #
| Methode | Pfad | Scope | Zweck |
|---|---|---|---|
| GET | /api/v1/suppliers | suppliers:read | Liste inkl. addressMatch/addressName |
| GET | /api/v1/suppliers/{id} | suppliers:read | Einzelner Lieferant |
| POST | /api/v1/suppliers | suppliers:write | Adresse als Lieferant freischalten (cn_KrCre) |
| PATCH | /api/v1/suppliers/{id} | suppliers:write | Einkaufskonditionen ändern |
| DELETE | /api/v1/suppliers/{id} | suppliers:write | Freischaltung zurücknehmen (cn_KrDel; 409 bei Lieferantenartikeln) |
| GET | /api/v1/suppliers/{supplierId}/articles | suppliers:read | Lieferantenartikel |
| POST | /api/v1/suppliers/{supplierId}/articles | suppliers:write | Artikel zuordnen |
| PATCH | /api/v1/suppliers/{supplierId}/articles/{id} | suppliers:write | Konditionen/EK ändern |
| DELETE | /api/v1/suppliers/{supplierId}/articles/{id} | suppliers:write | Zuordnung entfernen |
DMS-Dateien des Lieferanten: /api/v1/suppliers/{id}/files (Scopes
dms:*, Ordner LIEFERANTEN\<Match>).
Felder (Glossar Entwurf) #
Lieferant (Kreditor): id, addressId (ro), code (Kuerzel),
externalRef (FremdRefNr), minOrderValue (MindestBestellwert),
shortfallSurcharge (MindermengenZuschlag), freight (Fracht),
freightFreeFrom (FrachtFreiAb), discount (Rabatt), deliveryDays
(BeschaffungsZeit), procurementType (BeschaffungsTyp), createdAt,
changedAt - plus angereichert addressMatch/addressName.
Lieferantenartikel (KrArtikel): id, supplierId, articleId (ro),
supplierArticleNumber (ArtNummer des Lieferanten),
match (ArtMatch), purchasePrice (EkNetto),
previousPurchasePrice/priceChangedAt (Preis-Historie, pflegt der
EULANDA-Trigger), currency, priceUnit, packagingUnit,
deliveryDays, catalogPage, stock (ro), createdAt, changedAt.
Beispiele #
Lieferanten listen und freischalten:
$h = @{ Authorization = "Bearer $key" }
Invoke-RestMethod 'http://localhost:8100/api/v1/suppliers' -Headers $h
$body = @{ addressMatch = 'CONRAD'; code = 'CON'; minOrderValue = 50; deliveryDays = 3 } | ConvertTo-Json
Invoke-RestMethod 'http://localhost:8100/api/v1/suppliers' -Method Post -Headers $h -ContentType 'application/json' -Body $body
curl.exe -H "Authorization: Bearer %KEY%" "http://localhost:8100/api/v1/suppliers"
curl.exe -X POST -H "Authorization: Bearer %KEY%" -H "Content-Type: application/json" -d "{ \"addressMatch\": \"CONRAD\", \"code\": \"CON\", \"minOrderValue\": 50 }" "http://localhost:8100/api/v1/suppliers"
Artikel zuordnen und Einkaufspreis pflegen:
$item = @{ articleNumber = '1100'; supplierArticleNumber = 'C-4711'; purchasePrice = 199.5 } | ConvertTo-Json
Invoke-RestMethod 'http://localhost:8100/api/v1/suppliers/4/articles' -Method Post -Headers $h -ContentType 'application/json' -Body $item
Invoke-RestMethod 'http://localhost:8100/api/v1/suppliers/4/articles/7' -Method Patch -Headers $h -ContentType 'application/json' -Body (@{ purchasePrice = 189.0 } | ConvertTo-Json)
curl.exe -X POST -H "Authorization: Bearer %KEY%" -H "Content-Type: application/json" -d "{ \"articleNumber\": \"1100\", \"supplierArticleNumber\": \"C-4711\", \"purchasePrice\": 199.5 }" "http://localhost:8100/api/v1/suppliers/4/articles"
curl.exe -X PATCH -H "Authorization: Bearer %KEY%" -H "Content-Type: application/json" -d "{ \"purchasePrice\": 189.0 }" "http://localhost:8100/api/v1/suppliers/4/articles/7"
Fehlercodes dieser Ressourcen #
| HTTP | Code | Bedeutung |
|---|---|---|
| 404 | NOT_FOUND | Lieferant bzw. Lieferantenartikel existiert nicht |
| 409 | SUPPLIER_EXISTS | Adresse ist bereits Lieferant |
| 409 | SUPPLIER_IN_USE | Lieferant hat noch Lieferantenartikel |
| 409 | SUPPLIER_ARTICLE_EXISTS | Artikel ist dem Lieferanten bereits zugeordnet |
| 422 | REFERENCE_NOT_FOUND | Adresse bzw. Artikel existiert nicht |