# Dati dei fornitori in Ergonode, mappati visivamente

Ergonode è solo GraphQL, e ogni tipo di attributo ha la sua mutation tipizzata. SDM Portal sa quale usare, scrive le tue varianti nell'ordine che Ergonode richiede e ripete le stesse regole su ogni file che quel fornitore invia.

Versione web: https://sdmportal.com/it/ergonode/

## La connessione

- **Protocollo:** Solo GraphQL, /api/graphql/
- **Autenticazione:** API key in un header X-API-KEY
- **Struttura:** Template
- **Scritture:** Mutation GraphQL con alias, 25 operazioni per richiesta
- **Varianti:** Prima i simple product, poi il variable product con i bindings
- **Delta sync:** Hash per operazione di scrittura

## Dove si blocca davvero un feed fornitore per Ergonode

### Ogni tipo ha la sua mutation

Text, numeric, select, multi select, unit, price e relation richiedono ognuno una mutation tipizzata diversa. Manda un valore in quella sbagliata e Ergonode risponde con un errore sconosciuto e nessun dettaglio.

### Le varianti hanno un ordine

I figli devono esistere prima che il variable product possa collegarli. Sbaglia l'ordine e i bindings falliscono.

### Lo stato è un grafo, non un campo

Ergonode valida le transizioni di workflow lato server, quindi non puoi semplicemente impostare lo stato che vuoi partendo da dove si trova il prodotto adesso.

## Come SDM Portal scrive in Ergonode

### Mapping per template

Scegli il template e la barra degli attributi si limita ai suoi attributi. Nell'API i template non hanno un nome visualizzato, quindi il selettore mostra il codice del template. Lo SKU integrato non fa parte dello stream degli attributi, quindi viene inserito un campo chiamato esa_sku e mappi lo SKU come qualsiasi altra colonna.

### Scritture tipizzate, risolte in tempo reale

Text, textarea e date partono come stringa, numeric, price e unit come float, select come codice opzione, multi select come elenco di codici opzione e relation come elenco di SKU. Il tipo arriva dal tuo catalogo in tempo reale, non dalla forma del valore, quindi un codice articolo che sembra numerico arriva comunque come testo.

### Valori per locale

La locale è una proprietà della connessione che disegni. Tre colonne di descrizione riempiono un attributo in tre lingue, e la lingua dell'esecuzione decide il valore predefinito.

### Varianti con assi e bindings

Segna una parent key, uno o più assi di variante e lo SKU della variante sulle colonne di origine. Prima vengono creati i simple product, poi il variable product con i suoi bindings, che è l'ordine richiesto da Ergonode. I valori degli assi che passano per una ValueMap arrivano comunque a codici di binding.

### Stato del workflow per percorso più breve

Poiché Ergonode fa rispettare il grafo delle transizioni, il percorso più breve dallo stato attuale del prodotto a quello che hai mappato viene calcolato e percorso passo per passo, invece di essere impostato in un solo salto.

### Categorie da più tassonomie

Un flusso può contenere più di un nodo tassonomia. Ognuno mappa un valore di origine su una categoria, e un prodotto riceve l'unione senza duplicati di tutto ciò che è stato risolto, in una sola chiamata sulle categorie.

### Opzioni, create e arricchite

Le opzioni mancanti vengono create con un codice breve proposto, in minuscolo, che puoi modificare valore per valore. I custom field delle opzioni di tipo text, textarea e rich text possono essere riempiti da altre colonne della stessa riga, così il testo lungo di manutenzione finisce in un custom field mentre l'opzione mantiene un nome leggibile. I nomi delle opzioni si fermano a 255 caratteri.

### Nuovi attributi dall'editor

Crea attributi di tipo text, textarea, numeric, date, select, multi select, unit, price e relation dal canvas. Ergonode non ha un'API per aggiungere un attributo a un template, quindi un attributo creato vale per tutta l'istanza e lo aggiungi al template dentro Ergonode. L'editor te lo dice nel momento in cui ne crei uno.

### Batch che sopravvivono a una cella sbagliata

Le scritture partono come mutation GraphQL con alias, 25 operazioni per richiesta, con un ritmo controllato. Un solo valore rifiutato può far fallire un intero documento in batch, quindi un batch in cui ogni operazione è fallita con lo stesso errore viene ritentato un'operazione alla volta. Fallisce solo il vero colpevole, e il dettaglio di validazione di Ergonode viene mostrato sulla riga.

### Gli errori non bloccanti restano non bloccanti

Un valore come nvt su un attributo numerico viene saltato con un avviso che nomina lo SKU. Un valore duplicato su un attributo unique, per esempio un codice doganale condiviso, viene registrato come salto invece di far fallire il prodotto. Una relazione verso uno SKU che non esiste ancora viene rimossa da quella scrittura e nominata nell'avviso, così il resto della relazione arriva comunque.

## Cosa possiamo scrivere in Ergonode

Select e multi select vengono mappati su codici opzione, e le opzioni mancanti possono essere create e arricchite. Un attributo prezzo è un singolo float la cui valuta è configurata sull'attributo dentro Ergonode, e un attributo unit legge il suo simbolo dall'attributo.

- Testo
- Textarea
- Numeric
- Data
- Select
- Multi select
- Unit
- Price
- Relazione tra prodotti
- Categorie
- Stato del workflow
- Bindings delle varianti

## Cosa non fa ancora il connettore Ergonode

### Immagini, gallerie, file (non scrivibile)

Gli attributi media sono visibili nella barra ma non vengono scritti. I custom field delle opzioni di tipo immagine sono filtrati per lo stesso motivo.

### Prezzi (valuta singola)

Un attributo prezzo di Ergonode contiene un solo float e la sua valuta è configurata sull'attributo dentro Ergonode. La valuta per connessione, con più colonne che si uniscono in una collezione, è una funzione di Akeneo.

### Grouping products (fuori perimetro)

Solo simple e variable product. I grouping product non vengono creati.

### Aggiungere un attributo a un template (passaggio manuale)

Ergonode non ha un'API per farlo. Un attributo creato dall'editor esiste per tutta l'istanza, e lo aggiungi al template dentro Ergonode prima che compaia nella barra limitata al template.

### Nomi delle opzioni oltre 255 caratteri (limite dell'api)

Ergonode rifiuta i nomi di opzione più lunghi con un errore opaco, quindi i nomi vengono tagliati a 255. Metti il testo completo in un custom field dell'opzione.

### Nomi dei template (estetico)

L'API di Ergonode non restituisce un nome visualizzato per un template, quindi selettori e avvisi mostrano il codice del template.

## FAQ

### Come si collega SDM Portal a Ergonode?

Ergonode espone solo GraphQL, su /api/graphql/. Aggiungi l'URL dell'istanza e una API key, che viene inviata come header X-API-KEY, e la connessione viene verificata con un handshake reale. La chiave è salvata cifrata e non fa mai parte di un mapping esportato.

### SDM Portal gestisce le varianti di Ergonode?

Sì. Segni la parent key, gli assi di variante e lo SKU della variante sulle colonne di origine. Prima vengono creati i simple product e poi il variable product con i suoi bindings, che è l'ordine richiesto da Ergonode. I valori degli assi che passano per una ValueMap arrivano comunque a codici di binding.

### Può impostare lo stato del workflow in Ergonode?

Sì. Ergonode valida le transizioni di stato lato server, quindi SDM Portal calcola il percorso più breve dallo stato attuale del prodotto a quello che hai mappato e lo percorre passo per passo.

### Come si evita che una cella sbagliata faccia fallire un intero batch?

Le scritture vengono raggruppate in mutation GraphQL con alias, 25 operazioni per richiesta. Un solo valore rifiutato può far fallire l'intero documento in batch, quindi un batch in cui ogni operazione è fallita con lo stesso errore viene ritentato un'operazione alla volta. Fallisce solo il vero colpevole, e il motivo restituito da Ergonode viene mostrato sulla riga.

### Una seconda esecuzione ripubblica tutto?

No. Ogni scrittura viene hashata per operazione, quindi una nuova esecuzione su un file identico segnala i prodotti come non modificati e non scrive nulla. Esiste una risincronizzazione completa forzata per le volte in cui vuoi davvero ripubblicare tutto.

## Inizia

Prova gratis per 14 giorni: https://app.sdmportal.com/signup?lang=it

Altri PIM: https://sdmportal.com/it/ergonode/ · https://sdmportal.com/it/akeneo/ · https://sdmportal.com/it/pimcore/

SDM Portal.
