Lieferanten
Zuletzt geändert: 18.07.2026 15:19

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 #

MethodePfadScopeZweck
GET/api/v1/supplierssuppliers:readListe inkl. addressMatch/addressName
GET/api/v1/suppliers/{id}suppliers:readEinzelner Lieferant
POST/api/v1/supplierssuppliers:writeAdresse als Lieferant freischalten (cn_KrCre)
PATCH/api/v1/suppliers/{id}suppliers:writeEinkaufskonditionen ändern
DELETE/api/v1/suppliers/{id}suppliers:writeFreischaltung zurücknehmen (cn_KrDel; 409 bei Lieferantenartikeln)
GET/api/v1/suppliers/{supplierId}/articlessuppliers:readLieferantenartikel
POST/api/v1/suppliers/{supplierId}/articlessuppliers:writeArtikel zuordnen
PATCH/api/v1/suppliers/{supplierId}/articles/{id}suppliers:writeKonditionen/EK ändern
DELETE/api/v1/suppliers/{supplierId}/articles/{id}suppliers:writeZuordnung 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 #

HTTPCodeBedeutung
404NOT_FOUNDLieferant bzw. Lieferantenartikel existiert nicht
409SUPPLIER_EXISTSAdresse ist bereits Lieferant
409SUPPLIER_IN_USELieferant hat noch Lieferantenartikel
409SUPPLIER_ARTICLE_EXISTSArtikel ist dem Lieferanten bereits zugeordnet
422REFERENCE_NOT_FOUNDAdresse bzw. Artikel existiert nicht