Introduzione
Bentornati, amici lettori e sviluppatori :)
Nella mia ultima storia ho descritto come muovere i primi passi verso la creazione di prodotti su Amazon. Solo per riassumere brevemente, se non vuoi rileggerlo tutto, parliamo di:
- come è organizzato il catalogo di Amazon
- come viene identificato un prodotto in quel catalogo
- come capire se un prodotto è già a catalogo
- come verificare se tu, come venditore, hai l'autorizzazione a vendere quel prodotto
Passiamo quindi al compito successivo: capiamo come pubblicare un'offerta (ovvero un elenco di offerte) per un prodotto che è già nel catalogo di Amazon
Seguimi in questa immersione profonda :)
Tipi di prodotto: le basi
Il Catalogo Amazon è molto complesso: la tassonomia è molto approfondita, per ogni categoria ci sono molti attributi diversi e ognuno di questi attributi è di tipo diverso (es. stringhe, numeri, selezioni e così via). Alcuni di questi attributi sono obbligatori, mentre altri lo sono se è stato specificato un valore per un insieme di un gruppo di attributi particolari. Considera che tutte queste regole possono cambiare mercato per mercato (ovvero potrebbe funzionare in un certo senso in Amazon Italia, mentre in modo totalmente diverso in Amazon USA). Essere un gestore di cataloghi in Amazon deve essere un lavoro molto difficile. Ma affrontare questa complessità è molto peggio.
Questa complessità può essere gestita, grazie alla nuova SP-API di Amazon, integrandosi con la nuova e potente API Product Type Definitions, qualcosa che non è affatto disponibile nelle vecchie API MWS. Quindi, qui non stiamo parlando del porting su questo nuovo set di API. Questo è un prodotto completamente nuovo: un nuovo strumento nella tua potente cintura degli strumenti per sviluppatori!
Fondamentalmente, Amazon definisce una serie di informazioni per ciascun tipo di prodotto. Un tipo di prodotto è, come suggeriscono queste parole, un particolare tipo di prodotto. Molti tipi di prodotti sono disponibili nella tassonomia di Amazon e molti vengono aggiunti giorno dopo giorno.
Ehi, aspetta un momento! Ci avevi detto che avremmo aggiunto un'offerta ad un prodotto già presente nel catalogo! Perché dovremmo preoccuparci dei tipi di prodotto?
Hai perfettamente ragione. Ma.
I tipi di prodotto Amazon funzionano in modo gerarchico: ogni tipo di prodotto eredita da un tipo di prodotto di base comune chiamato PRODOTTO. E, per promuovere un'offerta, devi aderire a quel tipo di prodotto.
Ehi, aspetta un momento! Cosa intendi per aderire?
Hai assolutamente ragione, ancora una volta.
Ogni tipologia di prodotto è descritta attraverso uno schema JSON (ne parleremo tra poco) e ogni richiesta fatta ad Amazon deve rispettare quel particolare schema. Questo è quello che intendevo per “aderire”.
Quindi, rullo di tamburi, alzatevi tutti, e diamo il benvenuto in casa al nostro nuovo ospite: gli schemi JSON!
Schema JSON: le basi
JSON Schema è una specifica formale che, cito il loro sito web:
consente la coerenza, la validità e l'interoperabilità dei dati JSON su larga scala.
Tutti sanno come funziona JSON. Molti di noi sono innamorati di JSON. Ma la sua flessibilità ha un costo: come posso essere sicuro che ciò che mi invii rispetti un formato particolare concordato? In altre parole: come puoi dire, in modo formale a una terza parte, come ti aspetti il JSON che ti sta rispedendo? Sì, puoi sicuramente telefonargli, fornirgli un PDF contenente tutte le specifiche e così via. Ma il modo migliore è sicuramente utilizzare uno schema JSON, perché tu e il tuo amico potete controllarlo in modo programmatico.
Fondamentalmente, JSON Schema è ciò che XSD è per XML. È molto potente e ti consiglio davvero di approfondire questa tecnologia. La guida passo passo sul sito web è davvero ben fatta e dovresti assolutamente giocarci.
Ora: poiché JSON Schema è una specifica formale, troverai moltissime librerie, sia gratuite che a pagamento, sia open source che chiuse, per qualsiasi tipo di linguaggio di programmazione. E queste librerie ti permetteranno di prendere il tuo JSON, quello che stai costruendo (vedremo molto presto come fare), fornire lo schema JSON corrispondente e chiedere: “il mio JSON è valido?” Lo stesso farà Amazon dalla loro parte e il magico mondo dell'amore e della pace potrà finalmente essere raggiunto!
Se la risposta è sì: sei pronto per inviare il tuo messaggio pieno d'amore ad Amazon e, si spera, andrà tutto bene. Se la risposta è no, capirai subito cosa c’è che non va. E con “immediatamente” intendo immediatamente. Utilizzando MWS dovevi attendere che Amazon elaborasse il feed, comprendesse il messaggio di errore, correggesse, risciacquasse e riprovasse. Con JSON Schemas capirai i problemi in tempo reale, lato client, anche senza inviare nulla sulla tua rete, disturbando Amazon e aumentando l'impronta di carbonio della tua applicazione.
In passato era un processo lungo, noioso e soggetto a errori. E molti clienti si sono arrabbiati per questo motivo, anche perché i messaggi di errore di Amazon non erano abbastanza chiari per capire veramente cosa non andava. Posso sicuramente raccontarvi molte storie di nostri vecchi clienti che hanno abbandonato la nostra soluzione a causa di questo problema. Dicevano: “non funziona. I miei prodotti non vanno su Amazon e non so perché”. Ancora peggio, se hanno provato a elencarli direttamente utilizzando Seller Central, ci sono riusciti.
Ottenere il tipo di prodotto PRODUCT
Troppe parole! È tempo di mettere le nostre mani magiche da sviluppatore nel fango e divertirci.
La nostra prima chiamata SP-API in getDefinitionsProductType, che è il posto giusto per chiedere un particolare tipo di prodotto. In questo caso chiederemo la tipologia di prodotto PRODOTTO che è quella base.