# Lieferantendaten nach Ergonode, visuell gemappt

Ergonode bietet nur GraphQL, und jede Attributart hat ihre eigene typisierte Mutation. SDM Portal weiß, welche zu nehmen ist, schreibt Ihre Varianten in der Reihenfolge, die Ergonode verlangt, und wiederholt die gleichen Regeln bei jeder Datei, die dieser Lieferant schickt.

Webversion: https://sdmportal.com/de/ergonode/

## Die Verbindung

- **Protokoll:** Nur GraphQL, /api/graphql/
- **Authentifizierung:** API-Key in einem X-API-KEY-Header
- **Struktur:** Template
- **Schreiben:** Aliasierte GraphQL-Mutationen, 25 Operationen pro Request
- **Varianten:** Zuerst die Simple Products, dann das Variable Product mit Bindings
- **Delta sync:** Hash pro Schreiboperation

## Wo ein Ergonode-Lieferantenfeed wirklich hängen bleibt

### Jede Art hat ihre eigene Mutation

Text, numeric, select, multi select, unit, price und relation brauchen jeweils eine andere typisierte Mutation. Schicken Sie einen Wert durch die falsche, antwortet Ergonode mit einem unbekannten Fehler und ohne Detail.

### Varianten brauchen eine Reihenfolge

Die Kinder müssen existieren, bevor das Variable Product sie binden kann. Stimmt die Reihenfolge nicht, scheitern die Bindings.

### Status ist ein Graph, kein Feld

Ergonode validiert Workflow-Übergänge serverseitig, Sie können den gewünschten Status also nicht einfach von dort setzen, wo das Produkt gerade steht.

## Wie SDM Portal nach Ergonode schreibt

### Mapping pro Template

Wählen Sie das Template, und die Attributleiste beschränkt sich auf seine Attribute. Templates tragen in der API keinen Anzeigenamen, deshalb zeigt der Picker den Template-Code. Die eingebaute SKU ist nicht Teil des Attributstreams, deshalb kommt ein Feld namens esa_sku hinzu und Sie mappen SKU wie jede andere Spalte.

### Typisierte Schreibvorgänge, live aufgelöst

Text, textarea und date gehen als String hinaus, numeric, price und unit als Float, select als Optionscode, multi select als Liste von Optionscodes und relation als Liste von SKUs. Die Art kommt aus Ihrem Live-Katalog, nicht aus der Form des Werts, deshalb landet eine Artikelnummer, die numerisch aussieht, trotzdem als Text.

### Werte pro Locale

Locale ist eine Eigenschaft der Verbindung, die Sie ziehen. Drei Beschreibungsspalten füllen ein Attribut in drei Sprachen, und die Sprache des Laufs entscheidet über den Standard.

### Varianten mit Achsen und Bindings

Markieren Sie auf Quellspalten einen Parent Key, eine oder mehrere Variantenachsen und die Varianten-SKU. Zuerst werden die Simple Products angelegt, dann das Variable Product mit seinen Bindings, was die Reihenfolge ist, die Ergonode verlangt. Achsenwerte, die durch eine ValueMap laufen, lösen trotzdem auf Binding-Codes auf.

### Workflow-Status über den kürzesten Pfad

Weil Ergonode den Übergangsgraphen erzwingt, wird der kürzeste Pfad vom aktuellen Status des Produkts zu dem gemappten Status berechnet und Schritt für Schritt gegangen, statt in einem Sprung gesetzt zu werden.

### Kategorien aus mehreren Taxonomien

Ein Flow kann mehr als einen Taxonomie-Knoten enthalten. Jeder mappt einen Quellwert auf eine Kategorie, und ein Produkt bekommt die bereinigte Vereinigung von allem, was aufgelöst wurde, in einem Kategorie-Aufruf.

### Optionen, angelegt und angereichert

Fehlende Optionen werden mit einem kurzen vorgeschlagenen Code in Kleinbuchstaben angelegt, den Sie pro Wert bearbeiten können. Custom Fields einer Option vom Typ text, textarea und rich text können aus anderen Spalten derselben Zeile gefüllt werden, sodass der lange Pflegetext in einem Custom Field landet und die Option einen lesbaren Namen behält. Optionsnamen sind auf 255 Zeichen begrenzt.

### Neue Attribute aus dem Editor

Legen Sie Attribute der Typen text, textarea, numeric, date, select, multi select, unit, price und relation direkt auf der Leinwand an. Ergonode hat keine API, um ein Attribut zu einem Template hinzuzufügen, ein angelegtes Attribut gilt daher instanzweit und Sie fügen es in Ergonode selbst zum Template hinzu. Der Editor sagt Ihnen das in dem Moment, in dem Sie eines anlegen.

### Batches, die eine schlechte Zelle überleben

Schreibvorgänge gehen als aliasierte GraphQL-Mutationen hinaus, 25 Operationen pro Request, mit Pausen. Ein abgewiesener Wert kann ein ganzes gebündeltes Dokument scheitern lassen, deshalb wird ein Batch, in dem jede Operation mit dem gleichen Fehler gescheitert ist, Operation für Operation wiederholt. Nur der echte Verursacher scheitert, und Ergonodes eigenes Validierungsdetail steht in der Zeile.

### Weiche Fehler bleiben weich

Ein Wert wie nvt auf einem numerischen Attribut wird mit einer Warnung übersprungen, die die SKU nennt. Ein doppelter Wert auf einem Unique-Attribut, etwa ein gemeinsamer Zolltarifcode, wird als Skip verbucht, statt das Produkt scheitern zu lassen. Eine Relation auf eine SKU, die noch nicht existiert, wird aus diesem Schreibvorgang entfernt und in der Warnung genannt, sodass der Rest der Relation trotzdem landet.

## Was wir nach Ergonode schreiben können

Select und Multi Select werden auf Optionscodes gemappt, und fehlende Optionen können angelegt und angereichert werden. Ein Preisattribut ist ein einzelner Float, dessen Währung am Attribut in Ergonode konfiguriert ist, und ein Unit-Attribut liest sein Symbol am Attribut.

- Text
- Textarea
- Numeric
- Datum
- Select
- Multi select
- Unit
- Price
- Produktrelation
- Kategorien
- Workflow-Status
- Varianten-Bindings

## Was der Ergonode-Connector noch nicht tut

### Bilder, Galerien, Dateien (nicht schreibbar)

Medienattribute sind in der Leiste sichtbar, werden aber nicht geschrieben. Custom Fields einer Option vom Typ image werden aus demselben Grund herausgefiltert.

### Preise (eine Währung)

Ein Ergonode-Preisattribut hält einen Float, und seine Währung ist am Attribut in Ergonode konfiguriert. Eine Währung pro Verbindung, bei der mehrere Spalten in einer Kollektion zusammenlaufen, ist eine Akeneo-Funktion.

### Grouping Products (nicht im Umfang)

Nur Simple und Variable Products. Grouping Products werden nicht angelegt.

### Ein Attribut zu einem Template hinzufügen (manueller Schritt)

Ergonode hat dafür keine API. Ein im Editor angelegtes Attribut existiert instanzweit, und Sie fügen es in Ergonode zum Template hinzu, bevor es in der eingeschränkten Leiste erscheint.

### Optionsnamen über 255 Zeichen (API-Grenze)

Ergonode weist längere Optionsnamen mit einem undurchsichtigen Fehler ab, deshalb werden Namen bei 255 abgeschnitten. Legen Sie den vollständigen Text in ein Custom Field der Option.

### Template-Namen (kosmetisch)

Die Ergonode-API gibt für ein Template keinen Anzeigenamen zurück, deshalb zeigen Picker und Warnungen den Template-Code.

## FAQ

### Wie verbindet sich SDM Portal mit Ergonode?

Ergonode bietet nur GraphQL, unter /api/graphql/. Sie tragen die Instanz-URL und einen API-Key ein, der als X-API-KEY-Header gesendet wird, und die Verbindung wird mit einem echten Handshake geprüft. Der Key wird verschlüsselt gespeichert und ist niemals Teil eines exportierten Mappings.

### Kommt SDM Portal mit Ergonode-Varianten zurecht?

Ja. Sie markieren auf Quellspalten den Parent Key, die Variantenachsen und die Varianten-SKU. Zuerst werden die Simple Products angelegt und dann das Variable Product mit seinen Bindings, was die Reihenfolge ist, die Ergonode verlangt. Achsenwerte, die durch eine ValueMap laufen, lösen trotzdem auf Binding-Codes auf.

### Kann es den Ergonode-Workflow-Status setzen?

Ja. Ergonode validiert Statusübergänge serverseitig, deshalb berechnet SDM Portal den kürzesten Pfad vom aktuellen Status des Produkts zu dem gemappten Status und geht ihn Schritt für Schritt.

### Wie lässt eine schlechte Zelle nicht den ganzen Batch scheitern?

Schreibvorgänge werden als aliasierte GraphQL-Mutationen gebündelt, 25 Operationen pro Request. Ein einzelner abgewiesener Wert kann das ganze gebündelte Dokument scheitern lassen, deshalb wird ein Batch, in dem jede Operation mit dem gleichen Fehler gescheitert ist, Operation für Operation wiederholt. Nur der echte Verursacher scheitert, und der Grund, den Ergonode zurückgegeben hat, steht in der Zeile.

### Pusht ein zweiter Lauf alles erneut?

Nein. Jeder Schreibvorgang wird pro Operation gehasht, deshalb meldet ein erneuter Lauf einer unveränderten Datei die Produkte als unverändert und schreibt nichts. Für die Fälle, in denen Sie doch alles erneut pushen wollen, gibt es einen erzwungenen vollständigen Resync.

## Loslegen

14 Tage kostenlos testen: https://app.sdmportal.com/signup?lang=de

Andere PIMs: https://sdmportal.com/de/ergonode/ · https://sdmportal.com/de/akeneo/ · https://sdmportal.com/de/pimcore/

SDM Portal.
