Zum Inhalt springen

Anlieferung ins Lager melden

Mit den Lager-Endpunkten verwaltest du eigene Artikel im Shirtee-Lager und meldest Anlieferungen an. Der Ablauf besteht aus vier Schritten.

Benötigte Scopes: warehouse:read zum Lesen, warehouse:write zum Anlegen und Ändern. Feiner geht es mit warehouse:shipment_write, warehouse:shipment_cancel und warehouse:document_write.

POST /api/warehouse/products legt einen Lagerartikel mit seinen Varianten als Entwurf (DRAFT) an. Die Artikel-SKU vergibt der Server (SWP_ plus 8 Zeichen), die Varianten-SKU lautet <Artikel-SKU>__<Farbe>__<Größe> und ändert sich nie. Der Artikel gehört immer dem Kunden deines Schlüssels. Mit GET /api/warehouse/products listest du deine Artikel samt Bestand.

Hast du eine Excel-Versandliste, liest POST /api/warehouse/shipments/import sie ein und liefert einen Vorschlag für die Anlieferung. Der Aufruf legt nichts an. Die Datei kommt als multipart/form-data im Feld file, .xlsx, höchstens 20 MB. Gelesen wird nur das erste Tabellenblatt.

POST /api/warehouse/shipments kündigt die Anlieferung an. Sie entsteht im Status ANNOUNCED mit der Nummer WHS_<id>. Jede Variante darf höchstens einmal vorkommen, sonst antwortet die API mit 400 und extra.error = INVALID_ITEMS.

Der Aufruf ist nicht idempotent: jeder erfolgreiche Aufruf legt eine weitere Anlieferung an. Wiederhole ihn nach einem Timeout nicht blind, sondern prüfe zuerst mit GET /api/warehouse/shipments.

POST /api/warehouse/shipments/{shipment_id}/documents hängt eine Versandliste oder einen Lieferschein an (.xlsx oder PDF, höchstens 20 MB, eine Datei je Aufruf). Der Dateityp wird am Inhalt geprüft; CSV und .xls werden mit 400 und INVALID_FILE_TYPE abgewiesen. Eine signierte Download-URL (15 Minuten gültig) liefert GET …/documents/{document_id}/url.

  • PUT /api/warehouse/shipments/{shipment_id} ersetzt den gesamten Stand. Fehlende Felder werden geleert, fehlende Positionen entfernt.
  • DELETE /api/warehouse/shipments/{shipment_id} storniert. Das gelingt nur im Status ANNOUNCED, sonst 409 mit SHIPMENT_NOT_EDITABLE. Die Anlieferung bleibt mit Status CANCELED abrufbar.

Alle Endpunkte mit Beispielen findest du in der API-Referenz.