# Dane dostawców do Ergonode, zmapowane wizualnie

Ergonode udostępnia wyłącznie GraphQL, a każdy rodzaj atrybutu ma własną typowaną mutację. SDM Portal wie, której użyć, zapisuje Twoje warianty w kolejności wymaganej przez Ergonode i odtwarza te same reguły na każdym pliku, który przysyła ten dostawca.

Wersja web: https://sdmportal.com/pl/ergonode/

## Połączenie

- **Protokół:** Wyłącznie GraphQL, /api/graphql/
- **Uwierzytelnianie:** Klucz API w nagłówku X-API-KEY
- **Struktura:** Template
- **Zapis:** Mutacje GraphQL z aliasami, 25 operacji na żądanie
- **Warianty:** Najpierw simple products, potem variable product z bindings
- **Delta sync:** Hash na operację zapisu

## Gdzie naprawdę zacina się feed dostawcy do Ergonode

### Każdy rodzaj ma własną mutację

Text, numeric, select, multi select, unit, price i relation wymagają każdy innej typowanej mutacji. Wyślij wartość przez niewłaściwą i Ergonode odpowie nieznanym błędem bez żadnych szczegółów.

### Warianty wymagają kolejności

Dzieci muszą istnieć, zanim variable product będzie mógł je powiązać. Pomyl kolejność i bindings się nie udadzą.

### Status to graf, nie pole

Ergonode waliduje przejścia workflow po stronie serwera, więc nie da się po prostu ustawić statusu, który chcesz, z miejsca, w którym produkt jest teraz.

## Jak SDM Portal zapisuje do Ergonode

### Mapowanie w obrębie szablonu

Wybierz szablon, a szyna atrybutów ogranicza się do jego atrybutów. Szablony nie mają w API nazwy wyświetlanej, więc lista wyboru pokazuje kod szablonu. Wbudowany SKU nie jest częścią strumienia atrybutów, więc dodawane jest pole esa_sku i SKU mapujesz jak każdą inną kolumnę.

### Typowane zapisy, rozstrzygane na żywo

Text, textarea i date wychodzą jako łańcuch znaków, numeric, price i unit jako float, select jako kod opcji, multi select jako lista kodów opcji, a relation jako lista SKU. Rodzaj pochodzi z Twojego katalogu na żywo, nie z kształtu wartości, więc numer artykułu, który wygląda na liczbę, i tak trafia jako tekst.

### Wartości per lokalizacja

Lokalizacja jest właściwością połączenia, które rysujesz. Trzy kolumny opisu zasilają jeden atrybut w trzech językach, a język uruchomienia decyduje o wartości domyślnej.

### Warianty z osiami i bindings

Oznacz parent key, jedną lub więcej osi wariantu oraz SKU wariantu na kolumnach źródłowych. Najpierw tworzone są simple products, potem variable product z jego bindings, co jest kolejnością wymaganą przez Ergonode. Wartości osi, które przechodzą przez ValueMap, wciąż trafiają na kody bindings.

### Status workflow najkrótszą ścieżką

Ponieważ Ergonode wymusza graf przejść, najkrótsza ścieżka od aktualnego statusu produktu do tego, który zmapowałeś, jest wyliczana i przechodzona krok po kroku, a nie ustawiana jednym skokiem.

### Kategorie z wielu taksonomii

Przepływ może zawierać więcej niż jeden węzeł taksonomii. Każdy mapuje wartość źródłową na kategorię, a produkt otrzymuje sumę bez duplikatów wszystkiego, co zostało rozstrzygnięte, w jednym wywołaniu kategorii.

### Opcje, tworzone i wzbogacane

Brakujące opcje są tworzone z krótkim proponowanym kodem, małymi literami, który możesz edytować dla każdej wartości. Custom fields opcji typu text, textarea i rich text mogą być wypełniane z innych kolumn tego samego wiersza, więc długi tekst pielęgnacyjny trafia do custom field, a opcja zachowuje czytelną nazwę. Nazwy opcji kończą się na 255 znakach.

### Nowe atrybuty z edytora

Twórz atrybuty typu text, textarea, numeric, date, select, multi select, unit, price i relation z kanwy. Ergonode nie ma API do dodania atrybutu do szablonu, więc utworzony atrybut obowiązuje w całej instancji, a do szablonu dodajesz go już w Ergonode. Edytor mówi o tym w chwili, gdy tworzysz atrybut.

### Batche, które przetrwają błędną komórkę

Zapisy wychodzą jako mutacje GraphQL z aliasami, 25 operacji na żądanie, z kontrolowanym tempem. Jedna odrzucona wartość może wywalić cały dokument w batchu, więc batch, w którym każda operacja zawiodła z tym samym błędem, jest ponawiany po jednej operacji. Zawodzi tylko prawdziwy sprawca, a szczegół walidacji z Ergonode jest pokazywany w wierszu.

### Miękkie błędy pozostają miękkie

Wartość w rodzaju nvt na atrybucie liczbowym jest pomijana z ostrzeżeniem wskazującym SKU. Zduplikowana wartość na atrybucie unique, na przykład wspólny kod taryfowy, jest zapisywana jako pominięcie, a nie porażka produktu. Relacja do SKU, które jeszcze nie istnieje, jest usuwana z tego zapisu i wskazywana w ostrzeżeniu, więc reszta relacji i tak trafia na miejsce.

## Co możemy zapisać do Ergonode

Select i multi select są mapowane na kody opcji, a brakujące opcje można tworzyć i wzbogacać. Atrybut ceny to pojedynczy float, którego waluta jest konfigurowana na atrybucie w Ergonode, a atrybut unit czyta swój symbol z atrybutu.

- Tekst
- Textarea
- Numeric
- Data
- Select
- Multi select
- Unit
- Price
- Relacja produktowa
- Kategorie
- Status workflow
- Bindings wariantów

## Czego konektor Ergonode jeszcze nie robi

### Obrazy, galerie, pliki (bez możliwości zapisu)

Atrybuty mediów są widoczne w szynie, ale nie są zapisywane. Custom fields opcji typu obraz są z tego samego powodu odfiltrowywane.

### Ceny (jedna waluta)

Atrybut ceny w Ergonode zawiera jeden float, a jego waluta jest konfigurowana na atrybucie w Ergonode. Waluta na połączenie, gdzie kilka kolumn łączy się w jedną kolekcję, jest funkcją Akeneo.

### Grouping products (poza zakresem)

Tylko simple i variable products. Grouping products nie są tworzone.

### Dodanie atrybutu do szablonu (krok ręczny)

Ergonode nie ma do tego API. Atrybut utworzony z edytora istnieje w całej instancji, a do szablonu dodajesz go w Ergonode, zanim pojawi się w zawężonej szynie.

### Nazwy opcji powyżej 255 znaków (ograniczenie api)

Ergonode odrzuca dłuższe nazwy opcji nieprzejrzystym błędem, więc nazwy są skracane do 255. Pełny tekst umieść w custom field opcji.

### Nazwy szablonów (kosmetyczne)

API Ergonode nie zwraca nazwy wyświetlanej szablonu, więc listy wyboru i ostrzeżenia pokazują kod szablonu.

## FAQ

### Jak SDM Portal łączy się z Ergonode?

Ergonode udostępnia wyłącznie GraphQL, pod /api/graphql/. Podajesz adres instancji i klucz API, który jest wysyłany jako nagłówek X-API-KEY, a połączenie jest weryfikowane rzeczywistym handshake'iem. Klucz jest przechowywany zaszyfrowany i nigdy nie wchodzi w skład eksportowanego mapowania.

### Czy SDM Portal obsługuje warianty Ergonode?

Tak. Oznaczasz parent key, osie wariantu i SKU wariantu na kolumnach źródłowych. Najpierw tworzone są simple products, a potem variable product z jego bindings, co jest kolejnością wymaganą przez Ergonode. Wartości osi, które przechodzą przez ValueMap, wciąż trafiają na kody bindings.

### Czy może ustawić status workflow w Ergonode?

Tak. Ergonode waliduje przejścia statusu po stronie serwera, więc SDM Portal wylicza najkrótszą ścieżkę od aktualnego statusu produktu do tego, który zmapowałeś, i przechodzi ją krok po kroku.

### Jak jedna błędna komórka nie wywala całego batcha?

Zapisy są grupowane w mutacje GraphQL z aliasami, 25 operacji na żądanie. Jedna odrzucona wartość może wywalić cały dokument w batchu, więc batch, w którym każda operacja zawiodła z tym samym błędem, jest ponawiany po jednej operacji. Zawodzi tylko prawdziwy sprawca, a powód zwrócony przez Ergonode jest pokazywany w wierszu.

### Czy drugie uruchomienie wyśle wszystko ponownie?

Nie. Każdy zapis jest hashowany per operacja, więc ponowne uruchomienie na niezmienionym pliku raportuje produkty jako niezmienione i nie zapisuje niczego. Wymuszona pełna resynchronizacja jest dostępna na te sytuacje, gdy naprawdę chcesz wysłać wszystko ponownie.

## Zacznij

Wypróbuj bezpłatnie 14 dni: https://app.sdmportal.com/signup?lang=pl

Inne systemy PIM: https://sdmportal.com/pl/ergonode/ · https://sdmportal.com/pl/akeneo/ · https://sdmportal.com/pl/pimcore/

SDM Portal.
