Launchbase API
Das Launchbase API bietet Zugriff auf die Stammdaten des Artikelstamms und ihre Metadaten wie Produktmerkmale, Produktvarianten, Bilder, etc.
CODE
openapi: 3.0.0
info:
description: Produkte, Varianten, Kategorien
version: 1.0.1
title: Launchbase API
contact:
email: support@centauri.at
license:
name: Apache 2.0
url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
servers:
- description: SwaggerHub API Auto Mocking
url: https://virtserver.swaggerhub.com/medientank/Launchbase/1.0.0
- description: SPIRAL Testserver
url: https://shoplayout2023.spiral.co.at/Launchbase/1.0.0
tags:
- name: Produktverwaltung
description: Endpunkte zum Anlegen und Verknüpfen von Produkten
- name: Kategorieverwaltung
description: Endpunkte zum Anlegen und Erweitern des Kategorienbaums
- name: Medienverwaltung
description: Endpunkte zum Hochladen von Dokumenten und Bildern
security:
- ApiKeyAuth: []
paths:
/products:
get:
tags:
- Produktverwaltung
summary: Durchsucht die Artikeldaten
operationId: searchProduct
description: |
Mit Suchbegriffen und Paging kann die Produktdatenank durchsucht werden
parameters:
- in: query
name: sku
description: Artikelnummer
required: false
schema:
type: string
- in: query
name: searchString
description: Begriff für die Volltextuche
required: false
schema:
type: string
- in: query
name: category
description: Id einer Kategorie, die Produkte enthält
schema:
type: integer
format: int32
minimum: 0
- in: query
name: skip
description: Anzahl der Datensätze im Suchergebnis die übersprungen werden
schema:
type: integer
format: int32
minimum: 0
- in: query
name: limit
description: Maximale Anzahl an Datensätzen, die zurückgegeben werden
schema:
type: integer
format: int32
minimum: 0
maximum: 50
responses:
'200':
description: Liste von Produkten passend zum Suchkriterium
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ProductItem'
'400':
description: Ungültige Eigenschaften
post:
tags:
- Produktverwaltung
summary: Erzeugt ein neues Produkt in der Datenbank
operationId: postProduct
description: Erzeugt ein neues Produkt in der Datenbank - egal ob Simple, Parent oder Child
responses:
'201':
description: Produkt angelegt
'400':
description: 'Ungültige Eigenschaften'
'409':
description: Dieses Produkt besteht bereits
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ProductItem'
description: Produktdaten zum Hinzufügen
/products/{sku}:
get:
tags:
- Produktverwaltung
summary: Holt ein Produkt aus der Datenbank
operationId: getProduct
description: Holt die Daten eines Produkts aus der Datenbank
parameters:
- in: path
name: sku
description: Artikelnummer
required: true
schema:
type: string
responses:
'200':
description: Produkt mit der Artikelnummer
content:
application/json:
schema:
$ref: '#/components/schemas/ProductItem'
'400':
description: 'Ungültige Eigenschaften'
'404':
description: Dieses Produkt besteht nicht
delete:
tags:
- Produktverwaltung
summary: Löscht ein vorhandenes Produkt aus der Datenbank
operationId: deleteProduct
description: Löscht ein bestehendes Produkt aufgrund der Artikelnummer aus der Datenbank. Variantenartikel werden bei einem Kopf mitgelöscht.
parameters:
- in: path
name: sku
description: Artikelnummer
required: true
schema:
type: string
responses:
'204':
description: Produkt wurde gelöscht
'400':
description: 'Ungültige Eigenschaften'
'404':
description: Dieses Produkt besteht nicht
put:
tags:
- Produktverwaltung
summary: Aktualisiert ein bestehendes Produkt in der Datenbank
operationId: putProduct
description: Aktualisiert ein bestehendes Produkt in der Datenbank - egal ob Simple, Parent oder Child
parameters:
- in: path
name: sku
description: Artikelnummer
required: true
schema:
type: string
responses:
'201':
description: Produkt aktualisiert
'400':
description: 'Ungültige Eigenschaften'
'404':
description: Dieses Produkt besteht nicht
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ProductItem'
/categories:
post:
tags:
- Kategorieverwaltung
summary: Erzeugt eine Kategorie in der Datenbank
operationId: postCategory
responses:
'201':
description: Kategorie angelegt
'400':
description: 'Ungültige Eigenschaften'
'409':
description: Diese Kategorie besteht bereits
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CategoryItem'
/categories:
get:
tags:
- Kategorieverwaltung
summary: Listet die Kategorien auf Top-Ebene
operationId: searchCategories
responses:
'200':
description: Liste von Kategorien passend zum Suchkriterium
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CategoryItem'
'400':
description: Ungültige Eigenschaften
get:
tags:
- Kategorieverwaltung
summary: Listet die Kategorien auf Top-Ebene
operationId: searchCategories
responses:
'200':
description: Liste von Kategorien passend zum Suchkriterium
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CategoryItem'
'400':
description: Ungültige Eigenschaften
/categories/{id}:
get:
tags:
- Kategorieverwaltung
summary: Holt die Daten einer Kategorie
operationId: getCategory
parameters:
- name: id
in: path
required: true
schema:
type: integer
responses:
'200':
description: Kategorien aus Datenbank holen
content:
application/json:
schema:
$ref: '#/components/schemas/CategoryItem'
'400':
description: 'Ungültige Eigenschaften'
'404':
description: Diese Kategorie besteht nicht
put:
tags:
- Kategorieverwaltung
summary: Aktualisiert die Daten einer Kategorie
operationId: updateCategory
parameters:
- name: id
in: path
required: true
schema:
type: integer
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CategoryItem'
responses:
'201':
description: Kategorie aktualisiert
'400':
description: 'Ungültige Eigenschaften'
'404':
description: Dieses Kategorie besteht nicht
delete:
tags:
- Kategorieverwaltung
summary: Löscht eine Kategorie
operationId: deleteCategory
parameters:
- name: id
in: path
required: true
schema:
type: integer
responses:
'204':
description: Kategorie gelöscht
'400':
description: 'Ungültige Eigenschaften'
'404':
description: Dieses Kategorie nicht vorhanden
/categories/{id}/categories:
post:
tags:
- Kategorieverwaltung
summary: Legt zusätzliche Unterkategorien unterhalb der Kategorie an
operationId: postCategories
parameters:
- name: id
in: path
required: true
schema:
type: integer
responses:
'201':
description: Kategorien angelegt
'400':
description: 'Ungültige Eigenschaften'
'409':
description: Diese Kategorie besteht bereits
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CategoryItem'
get:
tags:
- Kategorieverwaltung
summary: Listet alle Kategorien unterhalb der Kategorie mit der angegebenen Id
operationId: getCategories
parameters:
- name: id
in: path
required: true
schema:
type: integer
responses:
'200':
description: Kategorien aus Datenbank holen
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CategoryItem'
'400':
description: 'Ungültige Eigenschaften'
'404':
description: Dieses Produkt besteht nicht
put:
tags:
- Kategorieverwaltung
summary: Aktualisiert die Daten der Subkategorie unterhalb der Kategorie
operationId: updateCategories
parameters:
- name: id
in: path
required: true
schema:
type: integer
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CategoryItem'
responses:
'201':
description: Kategorie aktualisiert
'400':
description: 'Ungültige Eigenschaften'
'404':
description: Dieses Produkt besteht bereits
delete:
tags:
- Kategorieverwaltung
summary: Löscht alle Kategorie unterhalb der angegebenen Kategorie
operationId: deleteCategories
parameters:
- name: id
in: path
required: true
schema:
type: integer
responses:
'204':
description: Kategorie gelöscht
'400':
description: 'Ungültige Eigenschaften'
'404':
description: Dieses Kategorie nicht vorhanden
/products/{sku}/variations:
get:
tags:
- Produktverwaltung
summary: Holt alle Varianten aus einem Produkt
operationId: getProductVariations
parameters:
- name: sku
in: path
required: true
schema:
type: string
responses:
'200':
description: Varianten für Produkt
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/VariationItem'
'400':
description: 'Ungültige Eigenschaften'
'404':
description: Dieses Produkt besteht nicht
delete:
tags:
- Produktverwaltung
summary: Löscht alle Varianten aus einem Produkt
operationId: deleteProductVariations
parameters:
- name: sku
in: path
required: true
schema:
type: string
responses:
'204':
description: Alle Varianten wurden gelöscht
'400':
description: 'Ungültige Eigenschaften'
'404':
description: Dieses Produkt ist nicht vorhanden
put:
tags:
- Produktverwaltung
summary: Aktualisiert eine Variante dieses Produkts
operationId: putProductVariations
parameters:
- name: sku
in: path
required: true
schema:
type: string
responses:
'201':
description: Variante wurde aktualisiert
'400':
description: 'Ungültige Eigenschaften'
'404':
description: Dieses Produkt ist nicht vorhanden
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/VariationItem'
post:
tags:
- Produktverwaltung
summary: Ergänzt eine Variante am Produkt
operationId: postProductVariations
parameters:
- name: sku
in: path
required: true
schema:
type: string
responses:
'201':
description: Variante wurde eingeführt
'400':
description: 'Ungültige Eigenschaften'
'409':
description: Dieses Produkt ist nicht vorhanden
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/VariationItem'
/products/{sku}/variations/{id}:
delete:
tags:
- Produktverwaltung
summary: Löscht das Merkmal aus dem Produkt
operationId: deleteProductVariation
parameters:
- name: sku
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
responses:
'204':
description: Variante des Produkts wurde gelöscht
'400':
description: 'Ungültige Eigenschaften'
'404':
description: Dieses Produkt ist nicht vorhanden
/products/{sku}/categories:
get:
tags:
- Produktverwaltung
summary: Holt alle Kategorien aus einem Produkt
operationId: getProductCategories
parameters:
- name: sku
in: path
required: true
schema:
type: string
responses:
'200':
description: Kategorien für Produkt
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CategoryItem'
'400':
description: 'Ungültige Eigenschaften'
'404':
description: Dieses Produkt ist nicht vorhanden
delete:
tags:
- Produktverwaltung
summary: Löscht alle Kategorien aus einem Produkt
operationId: deleteProductCategories
parameters:
- name: sku
in: path
required: true
schema:
type: string
responses:
'204':
description: Alle Kategorien wurden gelöscht
'400':
description: 'Ungültige Eigenschaften'
'404':
description: Dieses Produkt ist nicht vorhanden
/products/{sku}/categories/{id}:
delete:
tags:
- Produktverwaltung
summary: Löscht die Kategorie aus dem Produkt
operationId: deleteProductCategory
parameters:
- name: sku
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
responses:
'204':
description: Kategorie des Produkts wurde gelöscht
'400':
description: 'Ungültige Eigenschaften'
'404':
description: Dieses Produkt ist nicht vorhanden
post:
tags:
- Produktverwaltung
summary: Ergänzt eine Kategorie am Produkt
operationId: postProductCategory
parameters:
- name: sku
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
responses:
'201':
description: Kategorie wurde eingeführt
'400':
description: 'Ungültige Eigenschaften'
'409':
description: Dieses Produkt ist nicht vorhanden
/products/{sku}/properties:
get:
tags:
- Produktverwaltung
summary: Holt alle Merkmale aus einem Produkt
operationId: getProductProperties
parameters:
- name: sku
in: path
required: true
schema:
type: string
responses:
'200':
description: Merkmale für Produkt
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/PropertyItem'
'400':
description: 'Ungültige Eigenschaften'
'404':
description: Dieses Produkt ist nicht vorhanden
delete:
tags:
- Produktverwaltung
summary: Löscht alle Merkmale aus einem Produkt
operationId: deleteProductProperties
parameters:
- name: sku
in: path
required: true
schema:
type: string
responses:
'204':
description: Alle Merkmale wurden gelöscht
'400':
description: 'Ungültige Eigenschaften'
'404':
description: Dieses Produkt ist nicht vorhanden
put:
tags:
- Produktverwaltung
summary: Aktualisiert ein Merkmale dieses Produkts
operationId: putProductProperties
parameters:
- name: sku
in: path
required: true
schema:
type: string
responses:
'201':
description: Merkmale wurde aktualisiert
'400':
description: 'Ungültige Eigenschaften'
'404':
description: Dieses Produkt ist nicht vorhanden
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PropertyItem'
post:
tags:
- Produktverwaltung
summary: Ergänzt ein Merkmal am Produkt
operationId: postProductProperties
parameters:
- name: sku
in: path
required: true
schema:
type: string
responses:
'201':
description: Merkmal wurde eingeführt
'400':
description: 'Ungültige Eigenschaften'
'409':
description: Dieses Produkt ist nicht vorhanden
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PropertyItem'
/products/{sku}/properties/{id}:
delete:
tags:
- Produktverwaltung
summary: Löscht das Merkmal aus dem Produkt
operationId: deleteProductProperty
parameters:
- name: sku
in: path
required: true
schema:
type: string
- name: id
in: path
required: true
schema:
type: string
responses:
'204':
description: Merkmale des Produkts wurde gelöscht
'400':
description: 'Ungültige Eigenschaften'
'404':
description: Dieses Produkt ist nicht vorhanden
/products/{sku}/relations:
get:
tags:
- Produktverwaltung
summary: Holt alle Verknüpfungen zu anderen Produkten aus einem Produkt
operationId: getProductRelations
parameters:
- name: sku
in: path
required: true
schema:
type: string
responses:
'200':
description: Verknüpfungen für Produkt
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RelationItem'
'400':
description: 'Ungültige Eigenschaften'
'404':
description: Dieses Produkt ist nicht vorhanden
delete:
tags:
- Produktverwaltung
summary: Löscht alle Verknüpfungen aus einem Produkt
operationId: deleteProductRelations
parameters:
- name: sku
in: path
required: true
schema:
type: string
responses:
'204':
description: Alle Verknüpfungen wurden gelöscht
'400':
description: 'Ungültige Eigenschaften'
'404':
description: Dieses Produkt ist nicht vorhanden
put:
tags:
- Produktverwaltung
summary: Aktualisiert eine Verknüpfung dieses Produkts
operationId: putProductRelations
parameters:
- name: sku
in: path
required: true
schema:
type: string
responses:
'201':
description: Verknüpfung wurde aktualisiert
'400':
description: 'Ungültige Eigenschaften'
'404':
description: Dieses Produkt ist nicht vorhanden
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RelationItem'
post:
tags:
- Produktverwaltung
summary: Ergänzt eine Verknüpfung am Produkt
operationId: postProductRelations
parameters:
- name: sku
in: path
required: true
schema:
type: string
responses:
'201':
description: Verknüpfung wurde eingeführt
'400':
description: 'Ungültige Eigenschaften'
'409':
description: Dieses Produkt ist nicht vorhanden
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RelationItem'
/products/{sku}/relations/{relation}:
delete:
tags:
- Produktverwaltung
summary: Löscht eine Verknüpfung aus dem Produkt
operationId: deleteProductRelation
parameters:
- name: sku
in: path
required: true
schema:
type: string
- name: relation
in: path
required: true
schema:
type: string
responses:
'204':
description: Verknüpfung des Produkts wurde gelöscht
'400':
description: 'Ungültige Eigenschaften'
'404':
description: Dieses Produkt ist nicht vorhanden
/products/{sku}/pictures:
get:
tags:
- Produktverwaltung
summary: Holt alle Bilder aus einem Produkt
operationId: getProductPictures
parameters:
- name: sku
in: path
required: true
schema:
type: string
responses:
'200':
description: Bilder für Produkt
content:
application/json:
schema:
type: array
items:
type: string
'400':
description: 'Ungültige Eigenschaften'
'404':
description: Dieses Produkt ist nicht vorhanden
delete:
tags:
- Produktverwaltung
summary: Löscht alle Bilder aus einem Produkt
operationId: deleteProductPictures
parameters:
- name: sku
in: path
required: true
schema:
type: string
responses:
'204':
description: Alle Bilder wurden gelöscht
'400':
description: 'Ungültige Eigenschaften'
'404':
description: Dieses Produkt ist nicht vorhanden
/products/{sku}/documents:
get:
tags:
- Produktverwaltung
summary: Holt alle Dokumente aus einem Produkt
operationId: getProductDocuments
parameters:
- name: sku
in: path
required: true
schema:
type: string
responses:
'200':
description: Dokumente für Produkt
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/DocumentItem'
'400':
description: 'Ungültige Eigenschaften'
'404':
description: Dieses Produkt ist nicht vorhanden
delete:
tags:
- Produktverwaltung
summary: Löscht alle Dokumente aus einem Produkt
operationId: deleteProductDocuments
parameters:
- name: sku
in: path
required: true
schema:
type: string
responses:
'204':
description: Alle Dokuments wurden gelöscht
'400':
description: 'Ungültige Eigenschaften'
'404':
description: Dieses Produkt ist nicht vorhanden
/pictures:
post:
tags:
- Medienverwaltung
summary: Lädt ein neues Bild auf den Server
operationId: postPicture
parameters:
- name: folder
in: query
required: false
example: thumbnails
schema:
type: string
- name: sku
in: query
required: false
example: AB02016
schema:
type: string
- name: type
in: query
required: false
example: thumbnail
schema:
type: string
enum:
- detail
- thumbnail
requestBody:
content:
image/jpeg:
schema:
type: string
format: binary
responses:
'200':
description: Bild wurde hochgeladen
content:
text/plain:
schema:
type: string
example: /img/thumbnails/02021-3d393-39189-fe290.jpg
'400':
description: 'Ungültige Eigenschaften'
/documents:
post:
tags:
- Medienverwaltung
summary: Lädt ein neues Dokument auf den Server
operationId: postDocument
parameters:
- name: folder
in: query
required: false
example: usermanuals
schema:
type: string
- name: sku
in: query
required: false
example: AB02016
schema:
type: string
- name: type
in: query
required: false
example: usermanual
schema:
type: string
enum:
- usermanual
- datasheet
- safetysheet
- cedeclaration
- name: title
in: query
required: false
example: Aufbauanleitung
schema:
type: string
requestBody:
content:
image/jpeg:
schema:
type: string
format: binary
responses:
'200':
description: Dokument wurde hochgeladen
content:
text/plain:
schema:
type: string
example: /img/usermanuals/02021-3d393-39189-fe290.pdf
'400':
description: 'Ungültige Eigenschaften'
components:
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: Authorization
schemas:
ProductItem:
type: object
required:
- sku
- name1
properties:
sku:
type: string
example: AB02016
gtin:
type: string
example: 0123456789123
successor:
type: string
example: 0123456789123
brand:
type: string
example: Makita
orderunit:
type: string
example: Flasche
contentunit:
type: string
example: Liter
contentinorderunit:
type: integer
example: 1
name1:
type: string
example: Taschenschiebelehre 150mm Nonius 1/20mm
name2 :
type: string
example: rostfrei,mattverchromt,gehärtet
shortdescription :
type: string
example: rostfrei,mattverchromt,gehärtet
longdescription :
type: string
example: rostfrei,mattverchromt,gehärtet
keywords:
type: array
description: Schlagworte für das Produkt
items:
type: string
categories:
type: array
items:
$ref: '#/components/schemas/CategoryItem'
properties:
type: array
items:
$ref: '#/components/schemas/PropertyItem'
documents:
type: array
items:
$ref: '#/components/schemas/DocumentItem'
relations:
type: array
items:
$ref: '#/components/schemas/RelationItem'
variations:
type: array
items:
$ref: '#/components/schemas/VariationItem'
pictures:
type: array
items:
type: string
colorname :
type: string
example: Farbe Obermaterial
sizename :
type: string
example: Schuhgröße EU
colortype:
type: string
enum:
- text
- color
- dropdown
sizetype:
type: string
enum:
- text
- color
- dropdown
CategoryItem:
required:
- id
properties:
id:
type: integer
example: 21040112
name:
type: string
example: Zündkerzenschlüssel
parent:
type: integer
example: 21040100
DocumentItem:
required:
- file
properties:
id:
type: integer
example: 210
title:
type: string
example: Sicherheitsdatenblatt
type:
type: string
enum:
- usermanual
- datasheet
- safetysheet
- cedeclaration
example: safetysheet
file:
type: string
example: /img/documents/02021-3d393-39189-fe290.pdf
VariationItem:
required:
- id
- description
properties:
id:
type: string
example: 38
description:
type: string
example: Arbeitsschuh Gr. 38
position:
type: integer
example: 1
color:
type: string
example: Schwarz
size:
type: string
example: 38
sku:
type: string
example: AB02017
MappingItem:
required:
- sku
- category
properties:
sku:
type: string
example: AB02016
category:
type: integer
example: 21040112
RelationItem:
required:
- sku
- type
properties:
sku:
type: string
example: AB02016
type:
type: string
example: Ersatzteil
PropertyItem:
required:
- id
properties:
id:
type: string
example: 0173-1#02-AAH896#002
name:
type: string
example: Spindelsteigung
value:
type: string
example: 0,5
unit:
type: string
example: mm