Multilager — API und MCP
Überblick
Dieser Bereich stellt 42 Operationen bereit. Jede davon ist zugleich ein MCP-Werkzeug.
Der Bereich hängt am Modul-Schalter module.warehouses. Ist das Modul aus, antworten diese Operationen mit 404.
Operationen
| Methode | Pfad | Zweck | Recht | Parameter | ||||
|---|---|---|---|---|---|---|---|---|
GET | /api/v1/stock-transfers | Liste der StockTransfer | warehouses.transfer.manage · warehouses.stock.view | page, status, q | ||||
POST | /api/v1/stock-transfers | Eine StockTransfer anlegen | warehouses.transfer.manage | + Rumpf | ||||
GET | /api/v1/stock-transfers/{ulid} | Eine StockTransfer lesen | warehouses.transfer.manage · warehouses.stock.view | ulid | ||||
POST | /api/v1/stock-transfers/{ulid}/receive | Receive stock transfer — Receive stock transfer. Dedicated action endpoint — not a standard CRUD create. | warehouses.transfer.manage | ulid, + Rumpf | ||||
POST | /api/v1/stock-transfers/{ulid}/send | Send stock transfer — Send stock transfer. Dedicated action endpoint — not a standard CRUD create. | warehouses.transfer.manage | ulid, + Rumpf | ||||
GET | /api/v1/warehouses | Liste der Warehouse | warehouses.warehouse.view · warehouses.warehouse.manage | page, active | ||||
POST | /api/v1/warehouses | Eine Warehouse anlegen | warehouses.warehouse.manage | + Rumpf | ||||
GET | /api/v1/warehouses/replenishment-suggestions | Liste der ReplenishmentSuggestion | warehouses.stock.view · warehouses.stock.manage | — | ||||
DELETE | /api/v1/warehouses/{ulid} | Eine Warehouse löschen | warehouses.warehouse.manage | ulid | ||||
GET | /api/v1/warehouses/{ulid} | Eine Warehouse lesen | warehouses.warehouse.view · warehouses.warehouse.manage | ulid | ||||
PATCH | /api/v1/warehouses/{ulid} | Eine Warehouse ändern | warehouses.warehouse.manage | ulid, + Rumpf | ||||
GET | /api/v1/warehouses/{warehouseUlid}/bin-stocks | Liste der BinStock | warehouses.stock.view · warehouses.stock.manage | warehouseUlid, page, productId, binCode, condition | ||||
POST | /api/v1/warehouses/{warehouseUlid}/bin-stocks/move-bin | Ganzen Lagerplatz umlagern — Payload {fromBinCode, toBinCode}. Verschiebt ALLES, was auf dem Quellplatz liegt — jeden Artikel in jedem Zustand — auf den Zielplatz, in EINER Buchung. Was physisch ein Handgriff ist (Regal umgebaut, Fach gesperrt, Palette in den Reservebereich), war sonst eine Liste einzeln abgetippter Umlagerungen; jeder ausgelassene Artikel bliebe als Geisterbestand auf einem leeren Platz stehen. Ganz oder gar nicht: scheitert eine Zeile, steht der Platz unveraendert. Der Lagerbestand aendert sich nicht — nur seine Verteilung. | warehouses.stock.manage | warehouseUlid, + Rumpf | ||||
POST | /api/v1/warehouses/{warehouseUlid}/bin-stocks/putaway | Einlagern bzw. Platz zu Platz umlagern — Payload `{productId\ | barcode, qty, binCode, fromBinCode?, condition?}. Ohne fromBinCode wird nicht verortete Menge eingelagert (422, wenn so viel gar nicht frei ist); mit fromBinCode von Platz zu Platz umgelagert. condition` (new\ | refurbished\ | used\ | damaged, Vorgabe new) waehlt den Artikelzustand: B-Ware wird nur aus B-Ware-Bestand verortet. Der Lagerbestand ändert sich in keinem Fall — nur seine Verteilung. | warehouses.stock.manage | warehouseUlid, + Rumpf |
GET | /api/v1/warehouses/{warehouseUlid}/bins | Liste der WarehouseBin | warehouses.warehouse.view · warehouses.warehouse.manage | warehouseUlid, page, type | ||||
POST | /api/v1/warehouses/{warehouseUlid}/bins | Lagerplatz anlegen — Legt einen Lagerplatz (Bin) in diesem Lagerort an. | warehouses.warehouse.manage | warehouseUlid, + Rumpf | ||||
DELETE | /api/v1/warehouses/{warehouseUlid}/bins/{ulid} | Eine WarehouseBin löschen | warehouses.warehouse.manage | warehouseUlid, ulid | ||||
PATCH | /api/v1/warehouses/{warehouseUlid}/bins/{ulid} | Eine WarehouseBin ändern | warehouses.warehouse.manage | warehouseUlid, ulid, + Rumpf | ||||
GET | /api/v1/warehouses/{warehouseUlid}/consignment-consumptions | Liste der ConsignmentConsumption | warehouses.stock.view · warehouses.stock.manage | warehouseUlid, page, productId, openOnly | ||||
POST | /api/v1/warehouses/{warehouseUlid}/consignment-consumptions | Verbrauch aus einem Konsignationslager melden — Bucht den Bestandsabgang im Konsignationslager und meldet den Verbrauch als Ausloeser der Fakturierung (Ereignis ConsignmentConsumed). Nutzlast {productId, qty, reference?}. Solange die Ware im Konsignationsregal liegt, gehoert sie uns — Erloes entsteht erst hier. | warehouses.stock.manage | warehouseUlid, + Rumpf | ||||
GET | /api/v1/warehouses/{warehouseUlid}/consignment-consumptions/{ulid} | Eine ConsignmentConsumption lesen | warehouses.stock.view · warehouses.stock.manage | warehouseUlid, ulid | ||||
POST | /api/v1/warehouses/{warehouseUlid}/consignment-consumptions/{ulid}/mark-invoiced | Verbrauchsmeldung als berechnet vermerken — Der Rueckweg der Fakturierung ins Lager: die Meldung faellt aus der Liste „verbraucht und noch nicht berechnet" (?openOnly=true). Nutzlast {invoiceDocumentId?} — der Beleg, der den Verbrauch berechnet hat. Idempotent: ein zweiter Aufruf aendert weder Zeitpunkt noch Beleg. Ohne Handarbeit schliesst den Weg die Automations-Aktion consignment_mark_invoiced am Ereignis ConsignmentConsumed. | warehouses.stock.manage | warehouseUlid, ulid, + Rumpf | ||||
GET | /api/v1/warehouses/{warehouseUlid}/default-bins | Liste der ProductDefaultBin | warehouses.warehouse.view · warehouses.warehouse.manage | warehouseUlid, page, productId | ||||
POST | /api/v1/warehouses/{warehouseUlid}/default-bins | Vorgabeplatz für einen Artikel anlegen — Legt einen festen Vorgabeplatz für einen Artikel in diesem Lager an; mehrere je Artikel sind zulässig. | warehouses.warehouse.manage | warehouseUlid, + Rumpf | ||||
DELETE | /api/v1/warehouses/{warehouseUlid}/default-bins/{ulid} | Eine ProductDefaultBin löschen | warehouses.warehouse.manage | warehouseUlid, ulid | ||||
PATCH | /api/v1/warehouses/{warehouseUlid}/default-bins/{ulid} | Eine ProductDefaultBin ändern | warehouses.warehouse.manage | warehouseUlid, ulid, + Rumpf | ||||
GET | /api/v1/warehouses/{warehouseUlid}/fulfillment-orders | Liste der FulfillmentOrder | warehouses.fulfillment.view · warehouses.fulfillment.manage | warehouseUlid, page, status, openOnly, sourceRef, reference | ||||
POST | /api/v1/warehouses/{warehouseUlid}/fulfillment-orders | Auslagerungsauftrag anlegen (Entwurf) — Legt einen Auftrag an den Logistikdienstleister an. Er geht noch NICHT hinaus und bucht keinen Bestand — dafuer ist die Freigabe da. items sind {productId, qty}; shipTo ist die Lieferanschrift, die eingefroren wird. | warehouses.fulfillment.manage | warehouseUlid, + Rumpf | ||||
GET | /api/v1/warehouses/{warehouseUlid}/fulfillment-orders/{ulid} | Eine FulfillmentOrder lesen | warehouses.fulfillment.view · warehouses.fulfillment.manage | warehouseUlid, ulid | ||||
POST | /api/v1/warehouses/{warehouseUlid}/fulfillment-orders/{ulid}/acknowledge | Annahme durch den Dienstleister melden — Der Dienstleister bestaetigt den Auftrag und nennt seine eigene Auftragsnummer. Nutzlast {externalRef?}. Idempotent. | warehouses.fulfillment.report · warehouses.fulfillment.manage | warehouseUlid, ulid, + Rumpf | ||||
POST | /api/v1/warehouses/{warehouseUlid}/fulfillment-orders/{ulid}/cancel | Auslagerungsauftrag zurueckziehen — Nur, solange nichts versendet ist — ein bereits (teil-)versendeter Auftrag laesst sich nicht wegdefinieren. | warehouses.fulfillment.manage | warehouseUlid, ulid, + Rumpf | ||||
POST | /api/v1/warehouses/{warehouseUlid}/fulfillment-orders/{ulid}/release | Auslagerungsauftrag freigeben — Gibt den Auftrag zur Uebertragung frei und meldet FulfillmentOrderReleased. Uebertragen wird ueber einen Ausgabeweg bzw. den Ablauf-Baukasten — nicht von hier aus. KEIN Bestandsabgang: die Ware liegt noch beim Dienstleister. | warehouses.fulfillment.manage | warehouseUlid, ulid, + Rumpf | ||||
POST | /api/v1/warehouses/{warehouseUlid}/fulfillment-orders/{ulid}/shipment | Versandmeldung des Dienstleisters — Bucht den Bestandsabgang im Dienstleister-Lager und meldet FulfillmentShipmentReported. Nutzlast {carrier?, trackingNumber?, shippedAt?, externalRef?, items?[{productId, qty}]}; ohne items gilt die volle Restmenge. Eine Uebermeldung ueber die offene Menge hinaus wird abgewiesen (doppelte Meldung leert den Bestand nicht zweimal). | warehouses.fulfillment.report · warehouses.fulfillment.manage | warehouseUlid, ulid, + Rumpf | ||||
GET | /api/v1/warehouses/{warehouseUlid}/putaway-suggestions | Liste der PutawaySuggestion | warehouses.stock.view · warehouses.stock.manage | warehouseUlid, productId, barcode, condition | ||||
GET | /api/v1/warehouses/{warehouseUlid}/replenishment-rules | Liste der ReplenishmentRule | warehouses.warehouse.view · warehouses.warehouse.manage | warehouseUlid | ||||
POST | /api/v1/warehouses/{warehouseUlid}/replenishment-rules | Nachschubregel anlegen — Legt eine Min/Max-Nachschubregel an. Genau eine je Lager, Produkt und Zielplatz — ein Duplikat scheitert (409). | warehouses.warehouse.manage | warehouseUlid, + Rumpf | ||||
DELETE | /api/v1/warehouses/{warehouseUlid}/replenishment-rules/{ulid} | Eine ReplenishmentRule löschen | warehouses.warehouse.manage | warehouseUlid, ulid | ||||
PATCH | /api/v1/warehouses/{warehouseUlid}/replenishment-rules/{ulid} | Eine ReplenishmentRule ändern | warehouses.warehouse.manage | warehouseUlid, ulid, + Rumpf | ||||
GET | /api/v1/warehouses/{warehouseUlid}/stock | Liste der WarehouseStock | warehouses.stock.view · warehouses.stock.manage | warehouseUlid, page, onlyUnvalued, condition, productId | ||||
GET | /api/v1/warehouses/{warehouseUlid}/stock-reports | Liste der FulfillmentStockReport | warehouses.fulfillment.view · warehouses.fulfillment.manage · warehouses.stock.view | warehouseUlid, page, productId, deviationsOnly, reference | ||||
POST | /api/v1/warehouses/{warehouseUlid}/stock-reports | Bestandsmeldung eines Logistikdienstleisters — Nutzlast {items: [{productId, qty}], reference?, reportedAt?} oder eine einzelne Zeile {productId, qty, reference?, reportedAt?}. qty ist der ABSOLUTE Stand beim Dienstleister; die Differenz zu unserem Buch wird als Inventur-Korrektur gebucht. Weitergemeldet (FulfillmentStockReported) wird nur, was abweicht. Die Antwort traegt die ERSTE erzeugte Meldung; ein ganzer Meldelauf liest sich ueber GET .../stock-reports?reference=… zurueck. | warehouses.fulfillment.report · warehouses.fulfillment.manage | warehouseUlid, + Rumpf | ||||
GET | /api/v1/warehouses/{warehouseUlid}/stock-value | Retrieves a WarehouseStockValue resource. — Bestandswert dieses Lagers nach gleitendem Durchschnitt: Gesamtsumme, Zeilen je Artikel und — ausdrücklich — die Zahl der Artikel ohne bekannten Einstandspreis. | warehouses.stock.view · warehouses.stock.manage | warehouseUlid, onlyUnvalued, limit |
Zweckangaben, die nicht dem Standardmuster folgen, stammen unverändert aus der Schnittstellen-Beschreibung im Code.