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.
1. Lagerartikel anlegen
Abschnitt betitelt „1. Lagerartikel anlegen“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.
2. Versandliste prüfen (optional)
Abschnitt betitelt „2. Versandliste prüfen (optional)“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.
3. Anlieferung ankündigen
Abschnitt betitelt „3. Anlieferung ankündigen“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.
4. Dokumente anhängen
Abschnitt betitelt „4. Dokumente anhängen“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.
Ändern und stornieren
Abschnitt betitelt „Ändern und stornieren“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 StatusANNOUNCED, sonst409mitSHIPMENT_NOT_EDITABLE. Die Anlieferung bleibt mit StatusCANCELEDabrufbar.
Alle Endpunkte mit Beispielen findest du in der API-Referenz.