← Alle Themen · API

In diesem Artikel 3 Kapitel
  1. GET /warehouse/stockoverview
  2. GET /warehouse/locationstock
  3. GET /warehouse/locations

API: Lager/Bestands-Endpunkte

Zurück zur API-Übersicht


GET /warehouse/stock_overview

Ruft die aggregierte Bestandsübersicht ab. Die Daten zeigen den physischen Bestand, den Nettobestand (abzüglich Reservierungen) und die reservierte Menge pro Artikel und Lager.

URL: GET /public_api/<token>/warehouse/stock_overview

Request-Parameter (Query-String)

ParameterTypPflichtBeschreibung
warehouseIdIntegerNeinFilter nach Lager-ID. Ohne diesen Parameter werden Bestände aller Lager zurückgegeben.

Beispiel-Request

curl -X GET "https://meinefirma.scanalot.io/public_api/<token>/warehouse/stock_overview?warehouseId=1" \
  -H "Authorization: <api-token>"

Erfolgreiche Antwort

{
  "valid": true,
  "data": [
    {
      "id": 1,
      "itemId": 123,
      "warehouseId": 1,
      "stockPhy": 50,
      "stockNet": 45,
      "stockReserved": 5,
      "updatedAt": 1700100000
    },
    {
      "id": 2,
      "itemId": 124,
      "warehouseId": 1,
      "stockPhy": 100,
      "stockNet": 90,
      "stockReserved": 10,
      "updatedAt": 1700100000
    }
  ]
}

Antwort-Felder

FeldTypBeschreibung
idIntegerDatensatz-ID
itemIdIntegerArtikel-ID
warehouseIdIntegerLager-ID (0 = lagerübergreifend, z.B. für Bundle-Artikel)
stockPhyIntegerPhysischer Bestand (tatsächlich auf Lager)
stockNetIntegerNettobestand (physischer Bestand abzüglich Reservierungen)
stockReservedIntegerReservierter Bestand (für offene Aufträge)
updatedAtIntegerUnix-Timestamp der letzten Aktualisierung

Fehler-Antwort

{
  "valid": false,
  "error": "Keine Daten gefunden"
}

GET /warehouse/location_stock

Ruft den Bestand eines bestimmten Lagerorts per QR-Code/Barcode ab. Gibt alle Artikel zurück, die auf diesem Lagerort mit Bestand > 0 liegen.

URL: GET /public_api/<token>/warehouse/location_stock

Request-Parameter (Query-String)

ParameterTypPflichtBeschreibung
barcodeStringJaQR-Code des Lagerorts

Beispiel-Request

curl -X GET "https://meinefirma.scanalot.io/public_api/<token>/warehouse/location_stock?barcode=a1b2c3d4e5f6g7h" \
  -H "Authorization: <api-token>"

Erfolgreiche Antwort

{
  "valid": true,
  "data": {
    "location": {
      "id": 10,
      "warehouseId": 1,
      "name": "A-01-01",
      "position": 1,
      "qrCode": "a1b2c3d4e5f6g7h"
    },
    "items": [
      {
        "stock": 50,
        "sku": "T-SHIRT-001-M",
        "itemId": 123,
        "name": "T-Shirt Blau"
      },
      {
        "stock": 20,
        "sku": "HOODIE-001-L",
        "itemId": 456,
        "name": "Hoodie Schwarz"
      }
    ]
  }
}

Antwort-Felder

location:

FeldTypBeschreibung
idIntegerLagerort-ID
warehouseIdIntegerLager-ID
nameStringLagerort-Bezeichnung
positionIntegerSortierposition
qrCodeStringQR-Code des Lagerorts

items[]:

FeldTypBeschreibung
stockIntegerBestand auf diesem Lagerort
skuStringArtikelnummer
itemIdIntegerArtikel-ID
nameStringArtikelname (deutscher Name, kann null sein)

Fehler-Antworten

{
  "valid": false,
  "error": "Lagerort nicht gefunden"
}
{
  "valid": false,
  "error": "Lagerort weist keinen Bestand auf"
}

GET /warehouse/locations

Sucht und gibt Lagerorte zurück.

URL: GET /public_api/<token>/warehouse/locations

Request-Parameter (Query-String)

ParameterTypPflichtBeschreibung
idIntegerNeinSuche nach Lagerort-ID
nameStringNeinSuche nach Lagerort-Name (LIKE-Suche, z.B. A-01% für alle Lagerorte die mit A-01 beginnen)
qrCodeStringNeinSuche nach QR-Code
warehouseIdInteger/StringNeinFilter nach Lager-ID. Wert "all" gibt Lagerorte aller Lager zurück.
sortingStringNeinSortierung. Mögliche Werte: "id_asc", "id_desc", "name_asc", "name_desc", "position_asc", "position_desc"

Beispiel-Request

curl -X GET "https://meinefirma.scanalot.io/public_api/<token>/warehouse/locations?warehouseId=1&sorting=name_asc" \
  -H "Authorization: <api-token>"

Erfolgreiche Antwort

{
  "valid": true,
  "data": [
    {
      "id": 10,
      "warehouseId": 1,
      "name": "A-01-01",
      "position": 1,
      "qrCode": "a1b2c3d4e5f6g7h"
    },
    {
      "id": 11,
      "warehouseId": 1,
      "name": "A-01-02",
      "position": 2,
      "qrCode": "h7g6f5e4d3c2b1a"
    }
  ]
}

Antwort-Felder

FeldTypBeschreibung
idIntegerLagerort-ID
warehouseIdIntegerLager-ID
nameStringLagerort-Bezeichnung
positionIntegerSortierposition
qrCodeStringQR-Code des Lagerorts

Fehler-Antwort

{
  "valid": false,
  "error": "Keine Einträge gefunden"
}